From 87f708a0fdba7cee1aebf8843a13fda5fc499f57 Mon Sep 17 00:00:00 2001 From: "False.Genesis" Date: Sun, 21 Oct 2007 20:52:29 +0000 Subject: [PATCH] * made better base for different scenes (startup, loading, world,...) * first time to display something on GUI. * corrected (again) major typo, thx bLuma! * added some sample data to display. * moved log.cpp/h to shared. * cant update vc80 files right now, sorry. --- bin/data/misc/burninglogo.png | Bin 0 -> 14035 bytes bin/data/misc/directxlogo.png | Bin 0 -> 9932 bytes bin/data/misc/irrlichtlogo.png | Bin 0 -> 15109 bytes bin/data/misc/opengllogo.png | Bin 0 -> 13339 bytes src/Client/DefScript/DefScript.cpp | 2 +- src/Client/GUI/PseuGUI.cpp | 72 +++++++++++++++++++++-------- src/Client/GUI/PseuGUI.h | 36 +++++++++++++++ src/Client/PseuWoW.cpp | 17 ++++++- src/PseuWoW.vcproj | 18 +++++--- src/shared.vcproj | 6 +++ src/shared/common.h | 1 + src/{Client => shared}/log.cpp | 29 ++++++++---- src/{Client => shared}/log.h | 5 +- 13 files changed, 145 insertions(+), 41 deletions(-) create mode 100644 bin/data/misc/burninglogo.png create mode 100644 bin/data/misc/directxlogo.png create mode 100644 bin/data/misc/irrlichtlogo.png create mode 100644 bin/data/misc/opengllogo.png rename src/{Client => shared}/log.cpp (92%) rename src/{Client => shared}/log.h (81%) diff --git a/bin/data/misc/burninglogo.png b/bin/data/misc/burninglogo.png new file mode 100644 index 0000000000000000000000000000000000000000..19cf8b3964c7c8835b1a311962363e8c186906d2 GIT binary patch literal 14035 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 literal 0 HcmV?d00001 diff --git a/bin/data/misc/irrlichtlogo.png b/bin/data/misc/irrlichtlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..9086b122c8d3951fece5d1d4fee101d1935d98c5 GIT binary patch literal 15109 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 T^J?fX7XTn9r7T$|ZXEo790z+& literal 0 HcmV?d00001 diff --git a/src/Client/DefScript/DefScript.cpp b/src/Client/DefScript/DefScript.cpp index 3006f03..f095d2d 100644 --- a/src/Client/DefScript/DefScript.cpp +++ b/src/Client/DefScript/DefScript.cpp @@ -89,7 +89,7 @@ void DefScriptPackage::_InitFunctions(void) AddFunc("shdn",&DefScriptPackage::func_shdn); AddFunc("loaddef",&DefScriptPackage::func_loaddef); AddFunc("reloaddef",&DefScriptPackage::func_reloaddef); - AddFunc("reloaddef",&DefScriptPackage::func_unloaddef); + AddFunc("unloaddef",&DefScriptPackage::func_unloaddef); AddFunc("setscriptpermission",&DefScriptPackage::func_setscriptpermission); AddFunc("toint",&DefScriptPackage::func_toint); AddFunc("add",&DefScriptPackage::func_add); diff --git a/src/Client/GUI/PseuGUI.cpp b/src/Client/GUI/PseuGUI.cpp index 0af09ce..c223182 100644 --- a/src/Client/GUI/PseuGUI.cpp +++ b/src/Client/GUI/PseuGUI.cpp @@ -3,25 +3,9 @@ #include "Object.h" #include "DrawObject.h" #include "PseuWoW.h" +#include "Scene.h" #include "PseuGUI.h" -using namespace irr; -using namespace core; -using namespace scene; -using namespace video; -using namespace io; -using namespace gui; - -enum DriverIDs -{ - NULLDEVICE = 0, - SOFTWARE = 1, - BURNINGSVIDEO = 2, - OPENGL = 3, - DIRECTX8 = 4, - DIRECTX9 = 5, -}; - PseuGUIRunnable::PseuGUIRunnable() { _gui = new PseuGUI(); @@ -53,6 +37,11 @@ PseuGUI::PseuGUI() _initialized = false; _mustdie = false; _driverType = video::EDT_BURNINGSVIDEO; // nulldevice makes not really a sense to display stuff + _scenestate = SCENESTATE_NULL; + _smgr = NULL; + _device = NULL; + _guienv = NULL; + _scene = NULL; } PseuGUI::~PseuGUI() @@ -108,6 +97,7 @@ void PseuGUI::_Init(void) _device->setWindowCaption(L"PseuWoW - Initializing"); _driver = _device->getVideoDriver(); _smgr = _device->getSceneManager(); + _guienv = _device->getGUIEnvironment(); //... _initialized = true; } @@ -115,12 +105,19 @@ void PseuGUI::_Init(void) void PseuGUI::Cancel(void) { DEBUG(logdebug("PseuGUI::Cancel()")); - _mustdie = true; + + if(_scene) + { + delete _scene; + _scene = NULL; + } if(_device) { _device->drop(); _device = NULL; + } + _mustdie = true; } void PseuGUI::Shutdown(void) @@ -149,9 +146,11 @@ void PseuGUI::Run(void) { _driver->beginScene(true, true, 0); - domgr.Update(); // iterate over DrawObjects, draw them and clean up + _UpdateSceneState(); + DrawCurrentScene(); _smgr->drawAll(); + _guienv->drawAll(); _driver->endScene(); } @@ -198,4 +197,39 @@ void PseuGUI::SetInstance(PseuInstance* in) _instance = in; } +void PseuGUI::SetSceneState(SceneState state) +{ + _scenestate_new = state; // will be applied at next cycle +} + +void PseuGUI::_UpdateSceneState(void) +{ + if(_scenestate != _scenestate_new && _smgr) + { + _smgr->clear(); + if(_scene) + delete _scene; + + _scenestate = _scenestate_new; + + logdebug("PseuGUI: switched to SceneState %u", _scenestate); + + switch (_scenestate) + { + case SCENESTATE_GUISTART: _scene = new SceneGuiStart(this); break; + case SCENESTATE_WORLD: _scene = new SceneWorld(this); break; + default: _scene = new Scene(this); // will draw nothing, just yield the gui + } + + logdebug("PseuGUI: scene created."); + } +} + +void PseuGUI::DrawCurrentScene() +{ + if(!_initialized) + return; + if(_scene) + _scene->Draw(); +} diff --git a/src/Client/GUI/PseuGUI.h b/src/Client/GUI/PseuGUI.h index 801d457..5ea49e2 100644 --- a/src/Client/GUI/PseuGUI.h +++ b/src/Client/GUI/PseuGUI.h @@ -7,6 +7,27 @@ class PseuGUI; class Object; class PseuInstance; +class Scene; + +enum SceneState +{ + SCENESTATE_NULL, + SCENESTATE_GUISTART, + SCENESTATE_LOGINSCREEN, + SCENESTATE_CHARACTERSELECTION, + SCENESTATE_LOADING, + SCENESTATE_WORLD +}; + +enum DriverIDs +{ + NULLDEVICE = 0, + SOFTWARE = 1, + BURNINGSVIDEO = 2, + OPENGL = 3, + DIRECTX8 = 4, + DIRECTX9 = 5, +}; class PseuGUIRunnable : public ZThread::Runnable { @@ -22,6 +43,12 @@ private: class PseuGUI { + // too bad friends are not inherited... + friend class Scene; + friend class SceneWorld; + friend class SceneGuiStart; + // ... + public: PseuGUI(); ~PseuGUI(); @@ -35,14 +62,21 @@ public: void UseShadows(bool); void Cancel(void); void Shutdown(void); + inline bool IsInitialized(void) { return _initialized; } + inline bool MustDie(void) { return _mustdie; } // interfaces to tell the gui what to draw void NotifyObjectDeletion(uint64 guid); void NotifyObjectCreation(Object *o); + // scenes + void DrawCurrentScene(void); + void SetSceneState(SceneState); + private: void _Init(void); + void _UpdateSceneState(void); uint16 _xres,_yres,_colordepth; bool _windowed,_vsync,_shadows; bool _initialized,_mustdie; @@ -53,6 +87,8 @@ private: irr::video::E_DRIVER_TYPE _driverType; DrawObjMgr domgr; PseuInstance *_instance; + SceneState _scenestate, _scenestate_new; + Scene *_scene; }; diff --git a/src/Client/PseuWoW.cpp b/src/Client/PseuWoW.cpp index c297096..e97be27 100644 --- a/src/Client/PseuWoW.cpp +++ b/src/Client/PseuWoW.cpp @@ -94,7 +94,8 @@ PseuInstance::~PseuInstance() bool PseuInstance::Init(void) { - log_prepare("logfile.txt",this); + log_prepare("logfile.txt","a"); + log_setloglevel(0); log(""); log("--- Initializing Instance ---"); @@ -185,10 +186,20 @@ bool PseuInstance::Init(void) void PseuInstance::Run(void) { - if(!_initialized) return; + logdetail("PseuInstance: Initialized and running!"); + + if(GetGUI()) + { + while(!GetGUI()->IsInitialized()) + Sleep(1); // wait until the gui is ready. it will crash otherwise + logdebug("GUI: switching to startup display..."); + GetGUI()->SetSceneState(SCENESTATE_GUISTART); + } + // TODO: as soon as username ans password can be inputted into the gui, wait until it was set by user. + if(GetConf()->realmlist.empty() || GetConf()->realmport==0) { logcritical("Realmlist address not set, can't connect."); @@ -404,6 +415,8 @@ void PseuInstanceConf::ApplyFromVarSet(VarSet &v) num+=opt.at(i); } } + + log_setloglevel(debug); } diff --git a/src/PseuWoW.vcproj b/src/PseuWoW.vcproj index e82068b..2af157a 100644 --- a/src/PseuWoW.vcproj +++ b/src/PseuWoW.vcproj @@ -177,12 +177,6 @@ - - - - @@ -426,6 +420,18 @@ + + + + + + + + + + + + diff --git a/src/shared/common.h b/src/shared/common.h index ff0efbb..e2707b0 100644 --- a/src/shared/common.h +++ b/src/shared/common.h @@ -26,6 +26,7 @@ #include "SysDefs.h" #include "DebugStuff.h" #include "tools.h" +#include "log.h" #include "ByteBuffer.h" diff --git a/src/Client/log.cpp b/src/shared/log.cpp similarity index 92% rename from src/Client/log.cpp rename to src/shared/log.cpp index 180e722..3851c80 100644 --- a/src/Client/log.cpp +++ b/src/shared/log.cpp @@ -1,16 +1,25 @@ #include #include "common.h" -#include "PseuWoW.h" #include "log.h" -PseuInstance *instance=NULL; +#if PLATFORM == PLATFORM_WIN32 +#include +#endif + FILE *logfile=NULL; +uint8 loglevel=0; -void log_prepare(char *fn, PseuInstance* p) +void log_prepare(char *fn, char *mode = NULL) { - logfile = fopen(fn,"a"); - instance = p; + if(!mode) + mode = "a"; + logfile = fopen(fn,mode); +} + +void log_setloglevel(uint8 lvl) +{ + loglevel = lvl; } void log(const char *str, ...) @@ -40,7 +49,7 @@ void log(const char *str, ...) void logdetail(const char *str, ...) { - if(!str || instance->GetConf()->debug < 1) + if(!str || loglevel < 1) return; va_list ap; _log_setcolor(true,LCYAN); @@ -65,7 +74,7 @@ void logdetail(const char *str, ...) void logdebug(const char *str, ...) { - if(!str || instance->GetConf()->debug < 2) + if(!str || loglevel < 2) return; va_list ap; _log_setcolor(true,LBLUE); @@ -91,7 +100,7 @@ void logdebug(const char *str, ...) void logdev(const char *str, ...) { - if(!str || instance->GetConf()->debug < 3) + if(!str || loglevel < 3) return; va_list ap; _log_setcolor(true,LMAGENTA); @@ -161,9 +170,9 @@ void logcritical(const char *str, ...) fflush(stdout); } -void logcustom(uint8 loglevel, Color color, const char *str, ...) +void logcustom(uint8 lvl, Color color, const char *str, ...) { - if(!str || instance->GetConf()->debug < loglevel) + if(!str || loglevel < lvl) return; va_list ap; _log_setcolor(true,color); diff --git a/src/Client/log.h b/src/shared/log.h similarity index 81% rename from src/Client/log.h rename to src/shared/log.h index e9e0925..d05d4e2 100644 --- a/src/Client/log.h +++ b/src/shared/log.h @@ -1,8 +1,6 @@ #ifndef _LOG_H #define _LOG_H -class PseuInstance; - enum Color { BLACK, @@ -22,7 +20,8 @@ enum Color WHITE }; -void log_prepare(char *fn, PseuInstance* p); // instance reference needed for log level determination +void log_prepare(char *fn, char *mode); +void log_setloglevel(uint8 lvl); void log(const char *str, ...); void logdetail(const char *str, ...); void logdebug(const char *str, ...);