Added: Uses version.h
Changed: No longer renders just a triangle. Hopefully it will now graphically look like the windows version. This version probably won't compile though. ~g2k
This commit is contained in:
357
src/linux.cpp
357
src/linux.cpp
@@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
//include necessary header files
|
//include necessary header files
|
||||||
#include "../include/main.h"
|
#include "../include/main.h"
|
||||||
|
#include "../include/version.h"
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
void InitControls();
|
void InitControls();
|
||||||
@@ -250,12 +251,43 @@ int main(int argc, char** argv)
|
|||||||
XEvent event;
|
XEvent event;
|
||||||
bool done = false;
|
bool done = false;
|
||||||
|
|
||||||
g_Screen.fullscreen = false;
|
String commandLine = "";
|
||||||
CreateGLWindow("Blah Blah BLah", 640, 480, 24, false);
|
int i;
|
||||||
|
for(i=1; i<argc; i++)
|
||||||
|
{
|
||||||
|
commandLine = commandLine + " " + argv[i];
|
||||||
|
}
|
||||||
|
level.ParseCmds(commandLine.c_str());
|
||||||
|
|
||||||
|
InitControls();
|
||||||
|
|
||||||
|
level.glFont.SetScreenDimensions(level.screen.width*2, level.screen.height*2);
|
||||||
|
|
||||||
|
if(level.nextLevel == "")
|
||||||
|
{
|
||||||
|
level.LoadMap("intro.map");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
level.LoadMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Hack for now
|
||||||
|
if(level.screen.bpp == 32)
|
||||||
|
{
|
||||||
|
level.screen.bpp = 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!CreateGLWindow(OPENARENA_VERSION, level.screen.width, level.screen.height, level.screen.bpp, level.screen.fullscreen))
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
while(!done)
|
while(!done)
|
||||||
{
|
{
|
||||||
while(XPending(g_Screen.display) > 0)
|
while(XPending(g_Screen.display) > 0)
|
||||||
{
|
{
|
||||||
|
//Equivalent of WNDPROC
|
||||||
XNextEvent(g_Screen.display, &event);
|
XNextEvent(g_Screen.display, &event);
|
||||||
switch(event.type)
|
switch(event.type)
|
||||||
{
|
{
|
||||||
@@ -300,9 +332,328 @@ int main(int argc, char** argv)
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
//End Equivalent of WNDPROC
|
||||||
|
if(active)
|
||||||
|
{
|
||||||
|
if(keys[KEY_ESCAPE])
|
||||||
|
{
|
||||||
|
done = true;
|
||||||
}
|
}
|
||||||
DrawGLScene();
|
else
|
||||||
|
{
|
||||||
|
level.defaultPlayer[0].camera.Update();
|
||||||
|
|
||||||
|
if(!level.showConsole)
|
||||||
|
{
|
||||||
|
if(level.mlook)
|
||||||
|
{
|
||||||
|
level.defaultPlayer[0].camera.SetViewByMouse(g_Screen);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#ifdef WIN32
|
||||||
|
SetCursorPos(g_Screen.width/2, g_Screen.height/2);//Shit this may be windows specific
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//Maybe some of these if not almost all should be moved into Level
|
||||||
|
//////////
|
||||||
|
//Move Backward
|
||||||
|
if(!level.defaultPlayer->controls.backward.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.backward.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.backward.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.MoveCamera(-level.moveSpeed);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.backward.NextPosition() && (keys[level.defaultPlayer->controls.backward.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.backward.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.MoveCamera(-level.moveSpeed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Move forward
|
||||||
|
if(!level.defaultPlayer->controls.forward.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.forward.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.forward.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.MoveCamera(level.moveSpeed);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.forward.NextPosition() && (keys[level.defaultPlayer->controls.forward.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.forward.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.MoveCamera(level.moveSpeed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Strafe Left
|
||||||
|
if(!level.defaultPlayer->controls.moveLeft.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.moveLeft.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.moveLeft.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.StrafeCamera(-level.moveSpeed);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.moveLeft.NextPosition() && (keys[level.defaultPlayer->controls.moveLeft.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.moveLeft.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.StrafeCamera(-level.moveSpeed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Strafe Right
|
||||||
|
if(!level.defaultPlayer->controls.moveRight.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.moveRight.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.moveRight.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer[0].camera.StrafeCamera(level.moveSpeed);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.moveRight.NextPosition() && (keys[level.defaultPlayer->controls.moveRight.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.moveRight.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.StrafeCamera(level.moveSpeed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Keyboard Look Left
|
||||||
|
if(!level.defaultPlayer->controls.lookLeft.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.lookLeft.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.lookLeft.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer[0].camera.RotateView(level.turnSpeed, 0, 1, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.lookLeft.NextPosition() && (keys[level.defaultPlayer->controls.lookLeft.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.lookLeft.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer[0].camera.RotateView(level.turnSpeed, 0, 1, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Keyboard Look Right
|
||||||
|
if(!level.defaultPlayer->controls.lookRight.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.lookRight.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.lookRight.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.RotateView(-level.turnSpeed, 0, 1, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.lookRight.NextPosition() && (keys[level.defaultPlayer->controls.lookRight.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.lookRight.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.RotateView(-level.turnSpeed, 0, 1, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Keyboard Look Up
|
||||||
|
if(!level.defaultPlayer->controls.lookUp.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.lookUp.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.lookUp.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.RotateView(level.turnSpeed, 1, 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.lookUp.NextPosition() && (keys[level.defaultPlayer->controls.lookUp.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.lookUp.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.RotateView(level.turnSpeed, 1, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Keyboard Look Down
|
||||||
|
if(!level.defaultPlayer->controls.lookDown.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.lookDown.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.lookDown.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.RotateView(-level.turnSpeed, 1, 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.lookDown.NextPosition() && (keys[level.defaultPlayer->controls.lookDown.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.lookDown.Retrieve()])
|
||||||
|
{
|
||||||
|
level.defaultPlayer->camera.RotateView(-level.turnSpeed, 1, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Toggle Show FPS
|
||||||
|
if(!level.defaultPlayer->controls.toggleFPS.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.toggleFPS.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.toggleFPS.Retrieve()])
|
||||||
|
{
|
||||||
|
if(!keys2[level.defaultPlayer->controls.toggleFPS.Retrieve()])
|
||||||
|
{
|
||||||
|
level.showFPS = !level.showFPS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.toggleFPS.NextPosition() && (keys[level.defaultPlayer->controls.toggleFPS.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.toggleFPS.Retrieve()])
|
||||||
|
{
|
||||||
|
if(!keys2[level.defaultPlayer->controls.toggleFPS.Retrieve()])
|
||||||
|
{
|
||||||
|
level.showFPS = !level.showFPS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Toggle MouseLook
|
||||||
|
if(!level.defaultPlayer->controls.toggleMouseLook.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.toggleMouseLook.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.toggleMouseLook.Retrieve()])
|
||||||
|
{
|
||||||
|
if(keys2[level.defaultPlayer->controls.toggleMouseLook.Retrieve()])
|
||||||
|
{
|
||||||
|
level.mlook = ! level.mlook;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.toggleMouseLook.NextPosition() && (keys[level.defaultPlayer->controls.toggleMouseLook.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.toggleMouseLook.Retrieve()])
|
||||||
|
{
|
||||||
|
if(keys2[level.defaultPlayer->controls.toggleMouseLook.Retrieve()])
|
||||||
|
{
|
||||||
|
level.mlook = ! level.mlook;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Toggle Console
|
||||||
|
if(!level.defaultPlayer[0].controls.toggleConsole.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer[0].controls.toggleConsole.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer[0].controls.toggleConsole.Retrieve()])
|
||||||
|
{
|
||||||
|
if(!keys2[level.defaultPlayer[0].controls.toggleConsole.Retrieve()])
|
||||||
|
{
|
||||||
|
level.showConsole = !level.showConsole;
|
||||||
|
keys2[level.defaultPlayer[0].controls.toggleConsole.Retrieve()] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer[0].controls.toggleConsole.NextPosition() && (keys[level.defaultPlayer[0].controls.toggleConsole.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer[0].controls.toggleConsole.Retrieve()])
|
||||||
|
{
|
||||||
|
if(!keys2[level.defaultPlayer[0].controls.toggleConsole.Retrieve()])
|
||||||
|
{
|
||||||
|
level.showConsole = !level.showConsole;
|
||||||
|
keys2[level.defaultPlayer[0].controls.toggleConsole.Retrieve()] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////
|
||||||
|
//Quick MouseLook
|
||||||
|
if(!level.defaultPlayer->controls.quickMouseLook.IsEmpty())
|
||||||
|
{
|
||||||
|
level.defaultPlayer->controls.quickMouseLook.FirstPosition();
|
||||||
|
if(keys[level.defaultPlayer->controls.quickMouseLook.Retrieve()])
|
||||||
|
{
|
||||||
|
if(keys2[level.defaultPlayer->controls.quickMouseLook.Retrieve()])
|
||||||
|
{
|
||||||
|
level.mlook = ! level.mlook;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while(level.defaultPlayer->controls.quickMouseLook.NextPosition() && (keys[level.defaultPlayer->controls.quickMouseLook.Retrieve()] != true));
|
||||||
|
{
|
||||||
|
if(keys[level.defaultPlayer->controls.quickMouseLook.Retrieve()])
|
||||||
|
{
|
||||||
|
if(keys2[level.defaultPlayer->controls.quickMouseLook.Retrieve()])
|
||||||
|
{
|
||||||
|
level.mlook = ! level.mlook;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
level.Render();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SwapBuffers(hDC);
|
||||||
|
|
||||||
|
if(keys[KEY_F1])
|
||||||
|
{
|
||||||
|
keys[KEY_F1] = false;
|
||||||
|
KillGLWindow();
|
||||||
|
g_Screen.fullscreen = !g_Screen.fullscreen;
|
||||||
|
if(!CreateGLWindow(OPENARENA_VERSION, level.screen.width, level.screen.height, level.screen.bpp, level.screen.fullscreen))
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
level.UnloadMap();
|
||||||
KillGLWindow();
|
KillGLWindow();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user