17 Commits

Author SHA1 Message Date
andreja6
09c6a73e80 Made rotation closer to real 2018-04-29 18:58:22 -07:00
andreja6
3108021007 Made part selection better 2018-04-29 18:33:13 -07:00
andreja6
fa3a0f9aa4 Merge branch 'master' of https://github.com/andreja6/G3D-Fun 2018-04-29 16:31:14 -07:00
MusicalProgrammer
f45e8afb37 Quick part selection fix
A Part in front of the camera can now be selected if other parts are behind it.
2018-04-29 18:49:57 -04:00
andreja6
739f116895 Added rotate sound
Next required thing: Collision check
2018-04-29 12:00:30 -07:00
andreja6
f281103ca1 Rotation and Selection 2018-04-29 11:40:35 -07:00
andreja6
b7d14dcf2a Added part selection 2018-04-29 01:54:02 -07:00
andreja6
5659a1e13c Changed README.md 2018-04-28 23:26:17 -07:00
andreja6
fb48c4d85d Changed how camera pan works 2018-04-28 23:22:54 -07:00
andreja6
ce3ca419e8 Merge pull request #16 from andreja6/duplicate-button
Duplicate button
2018-04-28 20:18:05 -07:00
andreja6
c3b9e1f6c8 Removed unnecessary code 2018-04-28 20:16:48 -07:00
andreja6
9ba0db1ab9 semi-working pan right 2018-04-28 20:09:51 -07:00
andreja6
70d9aded42 Attempted pan left, what
Camera makes no sence
2018-04-28 19:57:51 -07:00
andreja6
a99f58b62f "Delete" key also deletes 2018-04-27 15:27:02 -07:00
andreja6
fcb1ad05fd Changed how boxes are rendered
PhysicalInstance now has a getBox() method that returns a Box the same way it would have been rendered, also added is a getCFrameRenderBased() which returns the CFrame that would have been used in the render pass
2018-04-27 15:05:51 -07:00
DarkKnight64
50f8c7ec10 create README 2018-04-27 20:28:40 +01:00
andreja6
4094631f30 Made most fake buttons actual buttons 2018-04-27 12:19:49 -07:00
6 changed files with 262 additions and 78 deletions

View File

@@ -1,5 +1,4 @@
#include "PhysicalInstance.h"
bool canCollide = true;
bool anchored = false;
Vector3 size;
@@ -8,6 +7,8 @@ Vector3 velocity;
Vector3 rotVelocity;
CoordinateFrame cFrame;
Color3 color;
bool changed = true;
Box itemBox = Box();
PhysicalInstance::PhysicalInstance(void)
{
@@ -31,6 +32,7 @@ void PhysicalInstance::setPosition(Vector3 pos)
{
position = pos;
cFrame = CoordinateFrame(pos);
changed = true;
}
CoordinateFrame PhysicalInstance::getCFrame()
{
@@ -40,8 +42,24 @@ void PhysicalInstance::setCFrame(CoordinateFrame coordinateFrame)
{
cFrame = coordinateFrame;
position = coordinateFrame.translation;
changed = true;
}
CoordinateFrame PhysicalInstance::getCFrameRenderBased()
{
return CoordinateFrame(getCFrame().rotation,Vector3(getCFrame().translation.x/2, getCFrame().translation.y/2, getCFrame().translation.z/2));
}
Box PhysicalInstance::getBox()
{
if(changed)
{
Box box = Box(Vector3(0+size.x/4, 0+size.y/4, 0+size.z/4) ,Vector3(0-size.x/4,0-size.y/4,0-size.z/4));
CoordinateFrame c = getCFrameRenderBased();
itemBox = c.toWorldSpace(box);
}
return itemBox;
}
PhysicalInstance::~PhysicalInstance(void)
{

View File

@@ -16,6 +16,8 @@ public:
void setPosition(Vector3);
CoordinateFrame getCFrame();
void setCFrame(CoordinateFrame);
Box getBox();
CoordinateFrame getCFrameRenderBased();
private:
Vector3 position;
};

14
README.md Normal file
View File

@@ -0,0 +1,14 @@
# G3D-Fun
Despite its name, this is actually a recreation of ROBLOX as it was in 2005. Early development. Uses roughly time-accurate development tools.
# COMPILE WITH
Graphics3D 6.10 (Released July 21, 2006)
SDL 1.2.7 (1.2.9 could work as well)
Visual Studio 2005 Professional or Visual Studio 2005 Express with Platform SDK
# NOTE
Please know that there currently is no documentation and minimal commenting. As such, it may be confusing to follow the code.
Code for this project is written quickly at random intervals, where each individual thinks of a solution to a problem and adds it.

Binary file not shown.

BIN
content/sounds/switch.wav Normal file

Binary file not shown.

304
main.cpp
View File

@@ -17,7 +17,7 @@
#include "TextButtonInstance.h"
#include "ImageButtonInstance.h"
#include "AudioPlayer.h"
#include <limits.h>
#if G3D_VER < 61000
#error Requires G3D 6.10
@@ -31,13 +31,17 @@ static std::vector<Instance*> instances_2D;
static Instance* dataModel;
GFontRef fntdominant = NULL;
GFontRef fntlighttrek = NULL;
Ray testRay;
static bool democ = true;
static std::string message = "";
static G3D::RealTime messageTime = 0;
static std::string tempPath = "";
static G3D::RealTime inputTime = 0;
static int FPSVal[8] = {10, 20, 30, 60, 120, 240, INT_MAX,1};
static int index = 2;
static std::string cameraSound = "";
static std::string clickSound = "";
static std::string dingSound = "";
static float TIMERVAL = 60.0F;
static int SCOREVAL = 0;
static G3D::TextureRef go = NULL;
@@ -264,16 +268,49 @@ void CameraButtonListener::onButton1MouseClick(BaseButtonInstance* button)
tiltUp = true;
}
class DeleteListener : public ButtonListener {
class GUDButtonListener : public ButtonListener {
public:
void onButton1MouseClick(BaseButtonInstance*);
};
void DeleteListener::onButton1MouseClick(BaseButtonInstance* button)
void GUDButtonListener::onButton1MouseClick(BaseButtonInstance* button)
{
if(selectedInstance != NULL)
{
AudioPlayer::PlaySound(dingSound);
if(button->name == "Duplicate")
{
}
}
}
class RotateButtonListener : public ButtonListener {
public:
void onButton1MouseClick(BaseButtonInstance*);
};
void RotateButtonListener::onButton1MouseClick(BaseButtonInstance* button)
{
if(selectedInstance != NULL)
{
AudioPlayer::PlaySound(clickSound);
if(selectedInstance->className == "Part")
{
PhysicalInstance* part = (PhysicalInstance*) selectedInstance;
if(button->name == "Tilt")
part->setCFrame(part->getCFrame()*Matrix3::fromEulerAnglesXYZ(0,0,toRadians(90)));
else if(button->name == "Rotate")
part->setCFrame(part->getCFrame()*Matrix3::fromEulerAnglesXYZ(0,toRadians(90),0));
}
}
}
void deleteInstance()
{
if(selectedInstance != NULL)
{
for(size_t i = 0; i < instances.size(); i++)
@@ -285,19 +322,31 @@ void DeleteListener::onButton1MouseClick(BaseButtonInstance* button)
delete deleting;
selectedInstance = NULL;
AudioPlayer::PlaySound(GetFileInPath("/content/sounds/pageturn.wav"));
}
}
}
}
class DeleteListener : public ButtonListener {
public:
void onButton1MouseClick(BaseButtonInstance*);
};
void DeleteListener::onButton1MouseClick(BaseButtonInstance* button)
{
deleteInstance();
}
class ModeSelectionListener : public ButtonListener {
public:
void onButton1MouseClick(BaseButtonInstance*);
};
void ModeSelectionListener::onButton1MouseClick(BaseButtonInstance* button)
{
CoordinateFrame frame = usableApp->debugCamera.getCoordinateFrame();
@@ -449,6 +498,51 @@ void initGUI()
button->fontLocationRelativeTo = Vector2(10, 0);
button->setAllColorsSame();
button = makeTextButton();
button->boxBegin = Vector2(0,215);
button->boxEnd = Vector2(80,235);
button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
button->textColor = Color3::white();
button->boxColor = Color4::clear();
button->textSize = 12;
button->title = "Group";
button->setAllColorsSame();
button->font = fntlighttrek;
button->fontLocationRelativeTo = Vector2(10, 0);
button->parent = dataModel;
button = makeTextButton();
button->boxBegin = Vector2(0,240);
button->boxEnd = Vector2(80,260);
button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
button->textColor = Color3::white();
button->boxColor = Color4::clear();
button->textSize = 12;
button->title = "UnGroup";
button->setAllColorsSame();
button->font = fntlighttrek;
button->fontLocationRelativeTo = Vector2(10, 0);
button->parent = dataModel;
button = makeTextButton();
button->boxBegin = Vector2(0,265);
button->boxEnd = Vector2(80,285);
button->textOutlineColor = Color4(0.5F,0.5F,0.5F,0.5F);
button->textColor = Color3::white();
button->boxColor = Color4::clear();
button->textSize = 12;
button->title = "Duplicate";
button->setAllColorsSame();
button->font = fntlighttrek;
button->fontLocationRelativeTo = Vector2(10, 0);
button->parent = dataModel;
button->name = "Duplicate";
button->setButtonListener(new GUDButtonListener());
ImageButtonInstance* instance = makeImageButton(go, go_ovr, go_dn);
instance->name = "go";
instance->size = Vector2(65,65);
@@ -495,6 +589,8 @@ void initGUI()
instance->size = Vector2(30,30);
instance->position = Vector2(10, 175);
instance->parent = dataModel;
instance->name = "Rotate";
instance->setButtonListener(new RotateButtonListener());
instance = makeImageButton(
Texture::fromFile(GetFileInPath("/content/images/SelectionTilt.png")),
@@ -504,6 +600,8 @@ void initGUI()
instance->size = Vector2(30,30);
instance->position = Vector2(40, 175);
instance->parent = dataModel;
instance->name = "Tilt";
instance->setButtonListener(new RotateButtonListener());
instance = makeImageButton(
@@ -619,27 +717,22 @@ void Demo::onInit() {
test->parent = dataModel;
test->color = Color3(0.2F,0.3F,1);
test->size = Vector3(24,1,24);
test->setCFrame(CoordinateFrame(Matrix3::fromEulerAnglesXYZ(toRadians(90),toRadians(45),toRadians(45)), Vector3(0,0,0)));
selectedInstance = test;
test->setPosition(Vector3(0,0,0));
test->setCFrame(test->getCFrame() * Matrix3::fromEulerAnglesXYZ(0,toRadians(90),0));
//selectedInstance = test;
test = makePart();
test->parent = dataModel;
test->color = Color3(.5F,1,.5F);
test->size = Vector3(4,1,2);
test->setPosition(Vector3(10,1,0));
test = makePart();
test->parent = dataModel;
test->color = Color3(.5F,1,.5F);
test->size = Vector3(4,1,2);
test->setPosition(Vector3(-10,1,0));
test = makePart();
test->parent = dataModel;
test->color = Color3::gray();
test->color = Color3(.5F,1,.5F);
test->size = Vector3(4,1,2);
test->setPosition(Vector3(-7,2,0));
test->setPosition(Vector3(10,1,0));
test = makePart();
test->parent = dataModel;
@@ -651,31 +744,38 @@ void Demo::onInit() {
test->parent = dataModel;
test->color = Color3::gray();
test->size = Vector3(4,1,2);
test->setPosition(Vector3(-4,3,0));
test->setPosition(Vector3(-7,2,0));
test = makePart();
test->parent = dataModel;
test->color = Color3::gray();
test->size = Vector3(4,1,2);
test->setPosition(Vector3(5,3,0));
test->setPosition(Vector3(4,3,0));
test = makePart();
test->parent = dataModel;
test->color = Color3::gray();
test->size = Vector3(4,1,2);
test->setPosition(Vector3(-1,4,0));
test->setPosition(Vector3(-5,3,0));
test = makePart();
test->parent = dataModel;
test->color = Color3::gray();
test->size = Vector3(4,1,2);
test->setPosition(Vector3(3,4,0));
test->setPosition(Vector3(1,4,0));
test = makePart();
test->parent = dataModel;
test->color = Color3::gray();
test->size = Vector3(4,1,2);
test->setPosition(Vector3(2,5,0));
test->setPosition(Vector3(-3,4,0));
test = makePart();
test->parent = dataModel;
test->color = Color3::gray();
test->size = Vector3(4,1,2);
test->setPosition(Vector3(-2,5,0));
@@ -688,8 +788,8 @@ void Demo::onInit() {
test = makePart();
test->parent = dataModel;
test->color = Color3::gray();
test->size = Vector3(4,1,2);
test->setPosition(Vector3(-2,7,0));
test->size = Vector3(-4,-1,-2);
test->setPosition(Vector3(2,7,0));
@@ -750,6 +850,11 @@ void Demo::onNetwork() {
}
double getVectorDistance(Vector3 vector1, Vector3 vector2)
{
return pow(pow((double)vector1.x - (double)vector2.x, 2) + pow((double)vector1.y - (double)vector2.y, 2) + pow((double)vector1.z - (double)vector2.z, 2), 0.5);
}
void Demo::onSimulation(RealTime rdt, SimTime sdt, SimTime idt) {
if(dataModel->name != title)
{
@@ -794,14 +899,48 @@ void Demo::onSimulation(RealTime rdt, SimTime sdt, SimTime idt) {
if(panRight)
{
panRight = false;
CoordinateFrame frame = CoordinateFrame(app->debugCamera.getCoordinateFrame().rotation, app->debugCamera.getCoordinateFrame().translation);
CoordinateFrame frame = app->debugCamera.getCoordinateFrame();
Vector3 camerapoint = frame.translation;
Vector3 angles;
float radian = 0;
frame.rotation.toAxisAngle(angles, radian);
message = Convert(angles.x) + ", " + Convert(angles.y) + ", " + Convert(angles.z) + ", " + Convert(radian);
Vector3 focalPoint = camerapoint + frame.lookVector() * 25;
float distb = getVectorDistance(Vector3(focalPoint.x, camerapoint.y, focalPoint.z), Vector3(camerapoint.x, camerapoint.y, focalPoint.z));
float distc = abs(((float)getVectorDistance(Vector3(focalPoint.x, camerapoint.y, focalPoint.z), camerapoint)));
float angle = toRadians(90);
//message = Convert(angle);
messageTime = System::time();
//frame.rotation.toEulerAnglesXYZ(x, angle, z);
//angle = toDegrees(angle);
// if(camerapoint.z < focalPoint.z)
// {
// float angleadd = abs(angle - 90);
// angle = angleadd + 5 + 90;
// }
// else
// {
// angle = angle + 5;
// }
messageTime = System::time();
//abs(((float)(getVectorDistance(Vector3(focalPoint.x, camerapoint.y, focalPoint.z), camerapoint))));
float x = distc * cos(angle-toRadians(2)) + focalPoint.x;
float z = distc * sin(angle-toRadians(2)) + focalPoint.z;
message = "NOT 0, " + Convert(x) + ", " + Convert(z);
//camerapoint = Vector3(sin(angle)*distc,camerapoint.y,cos(angle)*distc);
camerapoint = Vector3(x,camerapoint.y,z);
CoordinateFrame newFrame = CoordinateFrame(camerapoint);
newFrame.lookAt(focalPoint);
cameraPos = camerapoint;
app->debugController.setCoordinateFrame(newFrame);
}
if(tiltUp)
{
@@ -820,6 +959,7 @@ void Demo::onSimulation(RealTime rdt, SimTime sdt, SimTime idt) {
cameraPos = camerapoint;
app->debugController.setCoordinateFrame(newFrame);
}
}
@@ -841,6 +981,7 @@ double getOSVersion() {
return ::atof(version.c_str());
}
//User Input
void Demo::onUserInput(UserInput* ui) {
if (ui->keyPressed(SDLK_ESCAPE)) {
@@ -890,6 +1031,11 @@ void Demo::onUserInput(UserInput* ui) {
cameraPos = cameraPos - frame.lookVector()*2;
}
if(ui->keyPressed(SDLK_DELETE))
{
deleteInstance();
}
if(ui->keyDown(SDLK_LCTRL))
{
if(ui->keyPressed('d'))
@@ -960,6 +1106,30 @@ void Demo::onUserInput(UserInput* ui) {
if(!onGUI)
{
selectedInstance = NULL;
testRay = app->debugCamera.worldRay(mousex, mousey, app->renderDevice->getViewport());
float nearest=std::numeric_limits<float>::infinity();
Vector3 camPos = app->debugCamera.getCoordinateFrame().translation;
for(size_t i = 0; i < instances.size(); i++)
{
if(instances.at(i)->className == "Part" && instances.at(i)->parent == dataModel)
{
PhysicalInstance* test = (PhysicalInstance*)instances.at(i);
float time = testRay.intersectionTime(test->getBox());
if (time != inf())
{
if (nearest>time)
{
nearest=time;
selectedInstance = test;
}
}
}
}
//message = Convert(closest);
}
}
@@ -1144,7 +1314,13 @@ void makeBeveledBox(Box box, RenderDevice* rd, Color4 color, CoordinateFrame cFr
void Demo::onGraphics(RenderDevice* rd) {
float angle, x, z;
app->debugCamera.getCoordinateFrame().rotation.toEulerAnglesXYZ(x, angle, z);
//message = Convert(toDegrees(angle)) + " X: " + Convert(app->debugCamera.getCoordinateFrame().translation.x) + " Z: " + Convert(app->debugCamera.getCoordinateFrame().translation.z);
//messageTime = System::time();
CoordinateFrame frame = CoordinateFrame(app->debugCamera.getCoordinateFrame().rotation, app->debugCamera.getCoordinateFrame().translation);
Vector2 mousepos = Vector2(0,0);
G3D::uint8 num = 0;
rd->window()->getRelativeMouseState(mousepos, num);
@@ -1183,12 +1359,10 @@ void Demo::onGraphics(RenderDevice* rd) {
app->renderDevice->setShadeMode(RenderDevice::SHADE_SMOOTH);
app->renderDevice->setAmbientLightColor(Color3(1,1,1));
Draw::axes(CoordinateFrame(Vector3(0, 0, 0)), app->renderDevice);
makeFlag(Vector3(-1, 3.5, 0), rd);
//Draw::axes(CoordinateFrame(Vector3(0, 0, 0)), app->renderDevice);
//makeFlag(Vector3(-1, 3.5, 0), rd);
//Vector3 vector = app->debugCamera.getCoordinateFrame().translation + app->debugCamera.getCoordinateFrame().lookVector()*20;
Draw::axes(CoordinateFrame(focalPointT) , rd);
app->renderDevice->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
app->renderDevice->setAmbientLightColor(lighting.ambient);
@@ -1201,54 +1375,24 @@ void Demo::onGraphics(RenderDevice* rd) {
Instance* instance = instances.at(i);
if(instance->className == "Part" && instance->parent != NULL)
{
PhysicalInstance* part = (PhysicalInstance*)instance;
Vector3 size = part->size;
Vector3 pos = part->getCFrame().translation;
rd->setObjectToWorldMatrix(CoordinateFrame());
Vector3 pos2 = Vector3((pos.x-size.x/2)/2,(pos.y-size.y/2)/2,(pos.z-size.z/2)/2);
Vector3 pos3 = Vector3((pos.x+size.x/2)/2,(pos.y+size.y/2)/2,(pos.z+size.z/2)/2);
Box box = Box(Vector3(0+size.x/4, 0+size.y/4, 0+size.z/4) ,Vector3(0-size.x/4,0-size.y/4,0-size.z/4));
CoordinateFrame c = CoordinateFrame(part->getCFrame().rotation,Vector3(part->getCFrame().translation.x/2, part->getCFrame().translation.y/2, part->getCFrame().translation.z/2));
//Box wsb = c.toWorldSpace(box);
//makeBeveledBox(c.toWorldSpace(box), app->renderDevice, part->color, part->getCFrame());
//G3D::MeshBuilder builder = G3D::MeshBuilder();
//for(int i = 0; i < 6; i++)
//{
// Vector3 v1, v2, v3, v4;
// wsb.getFaceCorners(i, v1, v2, v3, v4);
// builder.addQuad(v1, v2, v3, v4);
//}
//std::string str;
//G3D::Array<int> arrayInd;
//G3D::Array<Vector3> arrayVector;
//builder.commit(str, arrayInd, arrayVector);
//IFSModel::save(ExePath() + "/content/model.ifs", str, arrayInd, arrayVector, NULL);
//IFSModelRef model = IFSModel::create(ExePath() + "/content/model.ifs");
//app->renderDevice->setLight(0, GLight::directional(lighting.lightDirection, lighting.lightColor));
//app->renderDevice->beginIndexedPrimitives();
//{
// app->renderDevice->setNormalArray(G3D::VAR(arrayVector, varStatic));
//app->renderDevice->setVertexArray(G3D::VAR(arrayVector, varStatic));
//app->renderDevice->sendIndices(RenderDevice::TRIANGLES, arrayInd);
//}
//app->renderDevice->endIndexedPrimitives();
Draw::box(c.toWorldSpace(box), app->renderDevice, part->color, Color4::clear());
Draw::box(part->getBox(), app->renderDevice, part->color, Color4::clear());
if(selectedInstance == part)
{
drawOutline(Vector3(0+size.x/4, 0+size.y/4, 0+size.z/4) ,Vector3(0-size.x/4,0-size.y/4,0-size.z/4), rd, lighting, Vector3(size.x/2, size.y/2, size.z/2), Vector3(pos.x/2, pos.y/2, pos.z/2), c);
Vector3 size = part->size;
Vector3 pos = part->getCFrame().translation;
drawOutline(Vector3(0+size.x/4, 0+size.y/4, 0+size.z/4) ,Vector3(0-size.x/4,0-size.y/4,0-size.z/4), rd, lighting, Vector3(size.x/2, size.y/2, size.z/2), Vector3(pos.x/2, pos.y/2, pos.z/2), part->getCFrameRenderBased());
}
}
}
Box box;
//Draw::ray(testRay, rd, Color3::orange(), 1);
Vector3 gamepoint = Vector3(0, 5, 0);
/*Vector3 gamepoint = Vector3(0, 5, 0);
Vector3 camerapoint = rd->getCameraToWorldMatrix().translation;
float distance = pow(pow((double)gamepoint.x - (double)camerapoint.x, 2) + pow((double)gamepoint.y - (double)camerapoint.y, 2) + pow((double)gamepoint.z - (double)camerapoint.z, 2), 0.5);
if(distance < 50 && distance > -50)
@@ -1257,7 +1401,8 @@ void Demo::onGraphics(RenderDevice* rd) {
if(distance < 0)
distance = distance*-1;
fntdominant->draw3D(rd, "Testing", CoordinateFrame(rd->getCameraToWorldMatrix().rotation, gamepoint), 0.04*distance, Color3::yellow(), Color3::black(), G3D::GFont::XALIGN_CENTER, G3D::GFont::YALIGN_CENTER);
}
}*/
app->renderDevice->disableLighting();
if (app->sky.notNull()) {
@@ -1307,9 +1452,6 @@ void Demo::onGraphics(RenderDevice* rd) {
//Tools menu
Draw::box(G3D::Box(Vector3(5, 185+offset,0),Vector3(75, 185+offset,0)),rd,Color4(0.6F,0.6F,0.6F,0.4F), Color4(0.6F,0.6F,0.6F,0.4F));
fntlighttrek->draw2D(rd,"Group", Vector2(10,190+offset), 12, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
fntlighttrek->draw2D(rd,"UnGroup", Vector2(10,215+offset), 12, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
fntlighttrek->draw2D(rd,"Duplicate", Vector2(10,240+offset), 12, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
fntlighttrek->draw2D(rd,"MENU", Vector2(10,307+offset), 14, Color3::white(), Color4(0.5F,0.5F,0.5F,0.5F));
//G3D::GFont::draw2D("Debug Mode Enabled", Vector2(0,30), 20, Color3::white(), Color3::black());
//app->debugFont->draw2D("Dynamica 2004-2005 Simulation Client version " + VERSION + str, Vector2(0,0), 20, Color3::white(), Color3::black());
@@ -1375,6 +1517,8 @@ void App::main() {
fntdominant = GFont::fromFile(GetFileInPath("/content/font/dominant.fnt"));
fntlighttrek = GFont::fromFile(GetFileInPath("/content/font/lighttrek.fnt"));
cameraSound = GetFileInPath("/content/sounds/SWITCH3.wav");
clickSound = GetFileInPath("/content/sounds/switch.wav");
dingSound = GetFileInPath("/content/sounds/electronicpingshort.wav");
sky = Sky::create(NULL, ExePath() + "/content/sky/");
cursorid = cursor->openGLID();
applet->run();
@@ -1469,11 +1613,17 @@ int main(int argc, char** argv) {
//_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
//_CrtSetBreakAlloc(1279);
try{
tempPath = ((std::string)getenv("temp")) + "/Dynamica";
CreateDirectory(tempPath.c_str(), NULL);
message = tempPath;
messageTime = System::time();
AudioPlayer::init();
GAppSettings settings;
settings.window.resizable = true;
//settings.window.fsaaSamples = 8;
settings.writeLicenseFile = false;
settings.logFilename = tempPath + "/g3dlog.txt";
settings.window.center = true;
//Using the damned SDL window now
G3D::SDLWindow* wnd = new SDLWindow(settings.window);