summaryrefslogtreecommitdiff
path: root/include/game.h
diff options
context:
space:
mode:
authorColin Noga <Tempus@Spectrum-Song.local>2011-08-14 13:38:04 -0500
committerColin Noga <Tempus@Spectrum-Song.local>2011-08-14 13:38:04 -0500
commit74a7d023469eb0a5a2dc713c74709b11e1815b8a (patch)
tree017199545fe6110e2e700907ea393a6654865cb8 /include/game.h
parentead037af2d2665e94ed8d804a1e220c47ba54db9 (diff)
parent4d482b80241de4512b68bc160dfc29b7e521134d (diff)
downloadkamek-74a7d023469eb0a5a2dc713c74709b11e1815b8a.tar.gz
kamek-74a7d023469eb0a5a2dc713c74709b11e1815b8a.zip
Merge branch 'level-select' of treeki:newergit/Kamek into level-select
Diffstat (limited to 'include/game.h')
-rw-r--r--include/game.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/include/game.h b/include/game.h
index 8bc0dc2..7412762 100644
--- a/include/game.h
+++ b/include/game.h
@@ -40,6 +40,9 @@ inline void *GetDVDClass2() {
void *DVD_GetFile(void *dvdclass2, const char *arc, const char *file);
void *DVD_GetFile(void *dvdclass2, const char *arc, const char *file, u32 *length);
+int MakeRandomNumber(int count);
+int MakeRandomNumberForTiles(int count);
+
extern int Player_Active[4];
extern int Player_ID[4];
@@ -2034,5 +2037,60 @@ namespace m2d {
}
+
+/* Tilemap related stuff */
+class TilemapClass {
+ public:
+ virtual ~TilemapClass();
+
+ u16 *allocatedBlocks[256];
+ u32 _404;
+
+ u8 blockLookup[2048];
+
+ u16 blockCount;
+
+ u32 _C0C;
+ u32 ts1ID, ts2ID, ts3ID, layerID, areaID, frmHeap, is2Castle;
+
+ // Only the public API is listed
+ u16 *getPointerToTile(int x, int y, u32 *blockNum = 0, bool unkBool = 0);
+ // TODO: more?
+};
+
+class BGDatClass {
+ public:
+ BGDatClass();
+ virtual ~BGDatClass();
+
+ u8 *bgData[4][3];
+ TilemapClass *tilemaps[4][3];
+ u8 *tsObjIndexData[4][4];
+ u8 *tsObjData[4][4];
+ char tsNames[4][4][0x20];
+ // this is fucked up!
+ // the parent heap is frmHeaps[0][0]
+ // each tileset's heap is frmHeaps[AREA][LAYER+1]
+ void *frmHeaps[4][4];
+
+ static BGDatClass *instance; // 8042A0D0
+
+ // I've only listed the public API because other stuff isn't really needed atm.
+ const char *getTilesetName(int area, int number);
+ // TODO: more?
+};
+
+struct BGRender {
+ u8 unk[0xC00];
+ u8 *objectData;
+ u8 _C04, _C05;
+ u16 _C06, _C08;
+ u16 blockNumber;
+ u16 curX, curY;
+ u16 tileToPlace;
+ u16 objDataOffset, objType, objX, objY, objWidth, objHeight;
+ u16 tileNumberWithinBlock, areaID;
+};
+
#endif