/* KoopAtlas Map Engine * Created by Treeki */ #ifndef __KOOPATLAS_H #define __KOOPATLAS_H #include #include #include #include #include "levelinfo.h" #include "koopatlas/mapdata.h" #include "koopatlas/pathmanager.h" #define WM_DEBUGGING // #define WM_SPAMMY_DEBUGGING #ifdef WM_DEBUGGING #define MapReport OSReport #else #define MapReport(...) #endif #ifdef WM_SPAMMY_DEBUGGING #define SpammyReport OSReport #else #define SpammyReport(...) #endif void NewerMapDrawFunc(); #define WM_HUD WM_DANCE_PAKKUN class daWMPlayer_c; class dWMHud_c; class dWMMap_c; class dWorldCamera_c; class dScKoopatlas_c : public dScene_c { public: dScKoopatlas_c(); FunctionChain initChain; dStateWrapper_c state; USING_STATES(dScKoopatlas_c); DECLARE_STATE(Limbo); DECLARE_STATE(ContinueWait); DECLARE_STATE(Normal); DECLARE_STATE(CSMenu); DECLARE_STATE(TitleConfirmOpenWait); DECLARE_STATE(TitleConfirmSelect); DECLARE_STATE(TitleConfirmHitWait); DECLARE_STATE(PlayerChangeWait); DECLARE_STATE(EasyPairingWait); DECLARE_STATE(PowerupsWait); DECLARE_STATE(SaveOpen); DECLARE_STATE(SaveSelect); DECLARE_STATE(SaveWindowClose); DECLARE_STATE(SaveDo); DECLARE_STATE(SaveEndWindow); DECLARE_STATE(SaveEndCloseWait); DECLARE_STATE(QuickSaveOpen); DECLARE_STATE(QuickSaveSelect); DECLARE_STATE(QuickSaveWindowClose); DECLARE_STATE(QuickSaveDo); DECLARE_STATE(QuickSaveEndWindow); DECLARE_STATE(QuickSaveEndCloseWait); DECLARE_STATE(SaveError); void *csMenu; void *selectCursor; void *numPeopleChange; void *yesNoWindow; void *continueObj; void *stockItem; void *stockItemShadow; void *easyPairing; int onCreate(); int onDelete(); int onExecute(); static dScKoopatlas_c *build(); static dScKoopatlas_c *instance; daWMPlayer_c *player; dWMHud_c *hud; dWMMap_c *map; int currentMapID; const char *mapPath; dKPMapData_c mapData; dWMPathManager_c pathManager; dDvdLoader_c mapListLoader; u32 iterateMapList(u32(*callback)(u32,const char *,int,int), u32 userData, int *ptrIndex = 0); const char *getMapNameForIndex(int index); int getIndexForMapName(const char *name); dDvdLoader_c levelInfoLoader; dLevelInfo_c levelInfo; void startLevel(dLevelInfo_c::entry_s *level); bool canDoStuff(); }; #endif