mirror of
https://github.com/simtactics/mysimulation.git
synced 2025-07-04 13:47:04 -04:00
Added eagames.bmp reading to the LoginScreen scene.
Added BCON parsing functionality contributed by Propeng.
This commit is contained in:
parent
cb751c0bb8
commit
7d9259b63d
13 changed files with 157 additions and 54 deletions
|
@ -19,8 +19,6 @@
|
|||
|
||||
namespace Audio {
|
||||
|
||||
HANDLE Thread;
|
||||
|
||||
IXAudio2 *pXAudio2 = NULL;
|
||||
IXAudio2MasteringVoice *MasterVoice = NULL;
|
||||
|
||||
|
|
|
@ -1,17 +1,19 @@
|
|||
cmake_minimum_required(VERSION 2.6)
|
||||
project(NiotsoClient)
|
||||
|
||||
if(WIN32)
|
||||
set(NIOTSOCLIENT_SOURCES
|
||||
Client.cpp
|
||||
MessageHandler.cpp
|
||||
Audio/Startup.cpp
|
||||
Audio/windows/XAudio2.cpp
|
||||
Graphics/Startup.cpp
|
||||
Graphics/Viewport.cpp
|
||||
resources/Resource.rc
|
||||
System/System.cpp
|
||||
)
|
||||
add_executable(TSO WIN32 ${NIOTSOCLIENT_SOURCES})
|
||||
target_link_libraries(TSO ole32 opengl32)
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
project(NiotsoClient)
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR}/Libraries/FileHandler)
|
||||
|
||||
if(WIN32)
|
||||
set(NIOTSOCLIENT_SOURCES
|
||||
Client.cpp
|
||||
MessageHandler.cpp
|
||||
Audio/Startup.cpp
|
||||
Audio/windows/XAudio2.cpp
|
||||
Graphics/Startup.cpp
|
||||
Graphics/Viewport.cpp
|
||||
resources/Resource.rc
|
||||
System/System.cpp
|
||||
)
|
||||
add_executable(TSO WIN32 ${NIOTSOCLIENT_SOURCES})
|
||||
target_link_libraries(TSO FileHandler_shared ole32 opengl32)
|
||||
endif()
|
|
@ -69,7 +69,8 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int)
|
|||
}
|
||||
|
||||
CurrentScene = new LoginScreen();
|
||||
if(CurrentScene == NULL){
|
||||
if(System::SceneFailed || CurrentScene == NULL){
|
||||
if(System::SceneFailed) delete CurrentScene;
|
||||
Shutdown();
|
||||
return ERROR_INIT | ERROR_INIT_LOGIC | ERROR_LOGIC_CREATE_SCENE;
|
||||
}
|
||||
|
@ -110,8 +111,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int)
|
|||
}
|
||||
|
||||
ShowWindow(Window::hWnd, SW_HIDE);
|
||||
Audio::Shutdown();
|
||||
Graphics::Shutdown();
|
||||
delete CurrentScene;
|
||||
|
||||
Shutdown();
|
||||
return 0;
|
||||
|
@ -193,10 +193,12 @@ int CreateWindowInvisible(HINSTANCE hInst, unsigned Width, unsigned Height, bool
|
|||
|
||||
void Shutdown()
|
||||
{
|
||||
Audio::Shutdown();
|
||||
Graphics::Shutdown();
|
||||
|
||||
if(Window::hWnd){
|
||||
DestroyWindow(Window::hWnd);
|
||||
Window::hWnd = NULL;
|
||||
}
|
||||
|
||||
UnregisterClass("TSO_NIOTSO", System::hInst);
|
||||
}
|
|
@ -23,13 +23,7 @@
|
|||
#undef NULL
|
||||
#define NULL 0
|
||||
|
||||
#include "version.h"
|
||||
#include "System/System.hpp"
|
||||
#include "Resources/Resource.h"
|
||||
|
||||
#include "Audio/Audio.hpp"
|
||||
#include "Graphics/Graphics.hpp"
|
||||
#include "Scene/Scene.hpp"
|
||||
#include "FileHandler.hpp"
|
||||
|
||||
//IsometricEngine.cpp
|
||||
namespace Window {
|
||||
|
@ -39,4 +33,12 @@ namespace Window {
|
|||
}
|
||||
|
||||
//MessageHandler.cpp
|
||||
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
|
||||
#include "version.h"
|
||||
#include "System/System.hpp"
|
||||
#include "Resources/Resource.h"
|
||||
|
||||
#include "Audio/Audio.hpp"
|
||||
#include "Graphics/Graphics.hpp"
|
||||
#include "Scene/Scene.hpp"
|
|
@ -19,7 +19,6 @@
|
|||
|
||||
namespace Graphics {
|
||||
|
||||
HANDLE Thread;
|
||||
HDC hDC;
|
||||
HGLRC hRC;
|
||||
|
||||
|
|
|
@ -15,6 +15,11 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#define EXIT_SCENE() do { System::SceneFailed = true; delete this; return; } while(0)
|
||||
#define SCENE_EXIT 0
|
||||
#define SCENE_NEED_REDRAW 1
|
||||
#define SCENE_NO_REDRAW -1
|
||||
|
||||
class Scene {
|
||||
const float TickPeriod;
|
||||
float TimeDelta;
|
||||
|
@ -45,15 +50,43 @@ class Scene {
|
|||
};
|
||||
|
||||
class LoginScreen : public Scene {
|
||||
public: LoginScreen() : Scene(1.0f/15) {}
|
||||
public:
|
||||
LoginScreen() : Scene(1.0f/15){
|
||||
Image_t * Image = File::ReadImageFile("eagames.bmp");
|
||||
if(!Image){
|
||||
const char * Message;
|
||||
switch(File::Error){
|
||||
case FERR_NOT_FOUND:
|
||||
Message = "%s does not exist.";
|
||||
break;
|
||||
case FERR_OPEN:
|
||||
Message = "%s could not be opened for reading.";
|
||||
break;
|
||||
case FERR_BLANK:
|
||||
case FERR_UNRECOGNIZED:
|
||||
case FERR_INVALIDDATA:
|
||||
Message = "%s is corrupt or invalid.";
|
||||
break;
|
||||
case FERR_MEMORY:
|
||||
Message = "Memory for %s could not be allocated.";
|
||||
break;
|
||||
default:
|
||||
Message = "%s could not be read.";
|
||||
}
|
||||
|
||||
char Buffer[1024];
|
||||
sprintf(Buffer, Message, "eagames.bmp");
|
||||
MessageBox(Window::hWnd, Buffer, NULL, MB_OK | MB_ICONERROR);
|
||||
EXIT_SCENE();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
int Run(float){
|
||||
if(System::UserInput.CloseWindow){
|
||||
System::Shutdown = true;
|
||||
return 0;
|
||||
return SCENE_EXIT;
|
||||
}
|
||||
return 1;
|
||||
return SCENE_NEED_REDRAW;
|
||||
}
|
||||
|
||||
public:
|
||||
|
|
|
@ -18,13 +18,13 @@
|
|||
#include "../EngineInterface.hpp"
|
||||
|
||||
namespace System {
|
||||
bool Shutdown = false;
|
||||
HINSTANCE hInst = NULL;
|
||||
HANDLE Process;
|
||||
HANDLE ProcessHeap;
|
||||
LARGE_INTEGER ClockFreq;
|
||||
float FramePeriod;
|
||||
UserInput_t UserInput;
|
||||
bool SceneFailed = false;
|
||||
|
||||
int Initialize(){
|
||||
memset(&UserInput, 0, sizeof(UserInput));
|
||||
|
|
|
@ -18,13 +18,11 @@
|
|||
//System/System.cpp
|
||||
namespace System {
|
||||
int Initialize();
|
||||
extern bool Shutdown;
|
||||
extern HINSTANCE hInst;
|
||||
extern HANDLE Process;
|
||||
extern HANDLE ProcessHeap;
|
||||
extern LARGE_INTEGER ClockFreq;
|
||||
extern float FramePeriod;
|
||||
extern bool Keys[256];
|
||||
|
||||
struct UserInput_t {
|
||||
bool Keys[256];
|
||||
|
@ -33,6 +31,8 @@ namespace System {
|
|||
};
|
||||
extern UserInput_t UserInput;
|
||||
|
||||
extern bool SceneFailed;
|
||||
|
||||
//Constants
|
||||
enum {
|
||||
SHUTDOWN = 0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue