From dc525da6d899a9c2644ef48fe7383c4c77021c61 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Thu, 14 Jul 2005 19:22:08 -0400 Subject: [PATCH] Changed: Made OpenArena::Screen more abstract. Changed: Updated OPENARENA_VERSION to CVS this should be set to a number for release builds. ~g2k --- include/screen.h | 37 ++++++++++++---------- include/version.h | 3 +- oa.vcproj | 3 ++ src/camera.cpp | 4 +-- src/level.cpp | 28 +++++++++-------- src/screen.cpp | 79 +++++++++++++++++++++++++++++++++++++++++++++++ src/window.cpp | 34 ++++++++++---------- src/windows.cpp | 10 +++--- 8 files changed, 144 insertions(+), 54 deletions(-) create mode 100644 src/screen.cpp diff --git a/include/screen.h b/include/screen.h index 30ba984..cf84c53 100644 --- a/include/screen.h +++ b/include/screen.h @@ -8,22 +8,27 @@ namespace OpenArena class Screen { public: - Screen() - { - width=640; - height=480; - bpp=16; - fullscreen=false; - name = ""; - } - - short width; - short height; - char bpp; - bool fullscreen; - string name; - - + Screen(); + int GetWidth(); + int GetHeight(); + int GetColorDepth(); + bool GetFullscreen(); + const char* GetName(); + void SetWidth(int); + void SetHeight(int); + void Resize(int, int); + void SetColorDepth(int); + void SetFullscreen(bool); + void ToggleFullscreen(); + void SetName(const char*); + void SetName(string); + protected: + short _width; + short _height; + char _colorDepth; + bool _fullscreen; +// public: + string _name; }; }; #endif diff --git a/include/version.h b/include/version.h index 289c5bf..3aca94b 100644 --- a/include/version.h +++ b/include/version.h @@ -1 +1,2 @@ -#define OPENARENA_VERSION "OpenArena v0.1.2" +//#define OPENARENA_VERSION "OpenArena: v0.1.2" +#define OPENARENA_VERSION "OpenArena: CVS" diff --git a/oa.vcproj b/oa.vcproj index aebb5c7..5fa5719 100644 --- a/oa.vcproj +++ b/oa.vcproj @@ -177,6 +177,9 @@ + + diff --git a/src/camera.cpp b/src/camera.cpp index 64f1679..cb6a83c 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -112,8 +112,8 @@ namespace OpenArena POINT mpos; POINT middle; double angleZ; - middle.x = window.width / 2; - middle.y = window.height / 2; + middle.x = window.GetWidth() / 2; + middle.y = window.GetHeight() / 2; GetCursorPos(&mpos); SetCursorPos(middle.x, middle.y); if(mpos.x != middle.x || mpos.y != middle.y) diff --git a/src/level.cpp b/src/level.cpp index fd5c610..4707da8 100644 --- a/src/level.cpp +++ b/src/level.cpp @@ -25,6 +25,7 @@ //////////////////////////////////////////////////////////////////////////////// #include "../include/level.h" +#include "../include/version.h" #pragma comment(lib, "bass.lib") @@ -38,7 +39,7 @@ namespace OpenArena numTextures = 0; textures = NULL; - screen.name = "OpenArena"; + screen.SetName(OPENARENA_VERSION); showFPS = false; showConsole = false; @@ -345,7 +346,7 @@ namespace OpenArena glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); - glOrtho(0, screen.width, 0, screen.height, -1, 1); + glOrtho(0, screen.GetWidth(), 0, screen.GetHeight(), -1, 1); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); @@ -353,13 +354,13 @@ namespace OpenArena glBegin(GL_QUADS); glTexCoord2f(0,0); - glVertex2i(0,screen.height/2); + glVertex2i(0,screen.GetHeight()/2); glTexCoord2f(0,1); - glVertex2i(0,screen.height); + glVertex2i(0,screen.GetHeight()); glTexCoord2f(1,1); - glVertex2i(screen.width,screen.height); + glVertex2i(screen.GetWidth(),screen.GetHeight()); glTexCoord2f(1,0); - glVertex2i(screen.width,screen.height/2); + glVertex2i(screen.GetWidth(),screen.GetHeight()/2); glEnd(); glMatrixMode(GL_PROJECTION); @@ -523,19 +524,19 @@ namespace OpenArena } else if(command == "screenwidth") { - screen.width = Integer(word(cmd, ++i)); + screen.SetWidth(Integer(word(cmd, ++i))); } else if(command == "screenheight") { - screen.height = Integer(word(cmd, ++i)); + screen.SetHeight(Integer(word(cmd, ++i))); } else if(command == "fullscreen") { - screen.fullscreen = Truth(word(cmd, ++i)); + screen.SetFullscreen(Truth(word(cmd, ++i))); } else if(command == "colordepth") { - screen.bpp = Integer(word(cmd, ++i)); + screen.SetColorDepth(Integer(word(cmd, ++i))); } else { @@ -1002,9 +1003,10 @@ namespace OpenArena output << "set turnspeed " << turnSpeed << endl; output << "set mousespeed " << mouseSpeed << endl; output << "set mouselook " << mlook << endl; - output << "set screenwidth " << screen.width << endl; - output << "set screenheight " << screen.height << endl; - output << "set colordepth " << screen.bpp << endl; + output << "set screenwidth " << screen.GetWidth() << endl; + output << "set screenheight " << screen.GetHeight() << endl; + output << "set colordepth " << screen.GetColorDepth() << endl; + output << "set fullscreen " << screen.GetFullscreen() << endl; output << "set maxfps " << maxFPS << endl; //Control Scheme diff --git a/src/screen.cpp b/src/screen.cpp new file mode 100644 index 0000000..00821b4 --- /dev/null +++ b/src/screen.cpp @@ -0,0 +1,79 @@ +#include "../include/screen.h" + +namespace OpenArena +{ + Screen::Screen() + { + _width=640; + _height=480; + _colorDepth=16; + _fullscreen=false; + _name = ""; + } + + int Screen::GetWidth() + { + return _width; + } + + int Screen::GetHeight() + { + return _height; + } + + int Screen::GetColorDepth() + { + return _colorDepth; + } + + bool Screen::GetFullscreen() + { + return _fullscreen; + } + + const char* Screen::GetName() + { + return _name.c_str(); + } + + void Screen::SetWidth(int width) + { + _width = width; + } + + void Screen::SetHeight(int height) + { + _height = height; + } + + void Screen::Resize(int width, int height) + { + _width = width; + _height = height; + } + + void Screen::SetColorDepth(int colorDepth) + { + _colorDepth = colorDepth; + } + + void Screen::SetFullscreen(bool status) + { + _fullscreen = status; + } + + void Screen::ToggleFullscreen() + { + _fullscreen = !_fullscreen; + } + + void Screen::SetName(const char* name) + { + _name = name; + } + + void Screen::SetName(string name) + { + _name = name; + } +}; \ No newline at end of file diff --git a/src/window.cpp b/src/window.cpp index b34ebc7..944a183 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -15,7 +15,7 @@ void OpenArena::Window::SwapBuffers() void OpenArena::Window::Close() { #ifdef WIN32 - if (fullscreen) + if (_fullscreen) { ChangeDisplaySettings(NULL, 0); ShowCursor(true/*false*/); @@ -80,9 +80,9 @@ bool OpenArena::Window::Open() DWORD dwStyle; RECT WindowRect; WindowRect.left=(long)0; - WindowRect.right=(long)width; + WindowRect.right=(long)_width; WindowRect.top=(long)0; - WindowRect.bottom=(long)height; + WindowRect.bottom=(long)_height; instance = GetModuleHandle(NULL); wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; @@ -102,21 +102,21 @@ bool OpenArena::Window::Open() return false; } - if (fullscreen) + if (_fullscreen) { DEVMODE dmScreenSettings; memset(&dmScreenSettings, 0, sizeof(dmScreenSettings)); dmScreenSettings.dmSize = sizeof(dmScreenSettings); - dmScreenSettings.dmPelsWidth = width; - dmScreenSettings.dmPelsHeight = height; - dmScreenSettings.dmBitsPerPel = bpp; + dmScreenSettings.dmPelsWidth = _width; + dmScreenSettings.dmPelsHeight = _height; + dmScreenSettings.dmBitsPerPel = _colorDepth; dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; if (ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL) { if (MessageBox(NULL,"The Requested Fullscreen Mode Is Not Supported By\nYour Video Card. Use Windowed Mode Instead?","OpenArena",MB_YESNO|MB_ICONEXCLAMATION)==IDYES) - fullscreen = false; + _fullscreen = false; else { @@ -126,7 +126,7 @@ bool OpenArena::Window::Open() } } - if (fullscreen) + if (_fullscreen) { dwExStyle = WS_EX_APPWINDOW; dwStyle = WS_POPUP; @@ -141,14 +141,14 @@ bool OpenArena::Window::Open() AdjustWindowRectEx(&WindowRect, dwStyle, false, dwExStyle); - if (!(window = CreateWindowEx(dwExStyle, "OpenArena v0.1.0", name.c_str(), WS_CLIPSIBLINGS | WS_CLIPCHILDREN | dwStyle, 0, 0, WindowRect.right-WindowRect.left, WindowRect.bottom-WindowRect.top, NULL, NULL, instance, NULL))) + if (!(window = CreateWindowEx(dwExStyle, "OpenArena v0.1.0", GetName(), WS_CLIPSIBLINGS | WS_CLIPCHILDREN | dwStyle, 0, 0, WindowRect.right-WindowRect.left, WindowRect.bottom-WindowRect.top, NULL, NULL, instance, NULL))) { Close(); MessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMATION); return false; } - static PIXELFORMATDESCRIPTOR pfd={sizeof(PIXELFORMATDESCRIPTOR), 1, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, PFD_TYPE_RGBA, bpp, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0 }; + static PIXELFORMATDESCRIPTOR pfd={sizeof(PIXELFORMATDESCRIPTOR), 1, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, PFD_TYPE_RGBA, _colorDepth, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0 }; if (!(deviceContext=GetDC(window))) { @@ -188,7 +188,7 @@ bool OpenArena::Window::Open() ShowWindow(window,SW_SHOW); SetForegroundWindow(window); SetFocus(window); - OnResize(width, height); + OnResize(_width, _height); if (!OnInit()) { @@ -304,11 +304,11 @@ bool OpenArena::Window::Open() bool OpenArena::Window::Open(string title, int width, int height, int bits, bool fullscreenflag) { - fullscreen = fullscreenflag; - width = width; - height = height; - bpp = bits; - name = title; + _fullscreen = fullscreenflag; + _width = width; + _height = height; + _colorDepth = bits; + _name = title; return Open(); } diff --git a/src/windows.cpp b/src/windows.cpp index 300fd84..535d024 100644 --- a/src/windows.cpp +++ b/src/windows.cpp @@ -239,7 +239,7 @@ int WINAPI WinMain( HINSTANCE hInstance, InitControls(); - level.glFont.SetScreenDimensions(level.screen.width*2, level.screen.height*2); + level.glFont.SetScreenDimensions(level.screen.GetWidth()*2, level.screen.GetHeight()*2); //level.glFont.BuildFont("oa\\textures\\menu\\font.bmp");//(level.gamedir + "\\textures\\menu\\font.bmp").c_str()); if (level.nextLevel == "") { @@ -252,7 +252,7 @@ int WINAPI WinMain( HINSTANCE hInstance, g_Screen.SetOnInit(InitGL); g_Screen.SetOnResize(ReSizeGLScene); - if (!g_Screen.Open(string(OPENARENA_VERSION), level.screen.width, level.screen.height, level.screen.bpp, level.screen.fullscreen)) + if (!g_Screen.Open(string(OPENARENA_VERSION), level.screen.GetWidth(), level.screen.GetHeight(), level.screen.GetColorDepth(), level.screen.GetFullscreen())) { return 0; } @@ -290,7 +290,7 @@ int WINAPI WinMain( HINSTANCE hInstance, } else { - SetCursorPos(g_Screen.width/2, g_Screen.height/2); + SetCursorPos(g_Screen.GetWidth()/2, g_Screen.GetHeight()/2); } ////////// @@ -583,8 +583,8 @@ int WINAPI WinMain( HINSTANCE hInstance, { keys[OpenArena::KEY_F1]=false; g_Screen.Close(); - g_Screen.fullscreen=!g_Screen.fullscreen; - if (!g_Screen.Open("OpenArena",g_Screen.width,g_Screen.height,g_Screen.bpp,g_Screen.fullscreen)) + g_Screen.ToggleFullscreen(); + if (!g_Screen.Open("OpenArena",g_Screen.GetWidth(),g_Screen.GetHeight(),g_Screen.GetColorDepth(),g_Screen.GetFullscreen())) { return 0; }