summaryrefslogtreecommitdiff
path: root/include/map_matrix.h
diff options
context:
space:
mode:
authorAkira Akashi <rubenru09@aol.com>2021-07-05 17:50:58 +0100
committerGitHub <noreply@github.com>2021-07-05 17:50:58 +0100
commit7a2362a15aade4fde583b6612cff3d6613a5eaa4 (patch)
treeb4d547f092ec9fedf15c2e2a4fb0be4e55b438e5 /include/map_matrix.h
parent97efa5f28e697c85d0a47c45f04b0b69dbf699b0 (diff)
parent042e8e5a558d3fb9470234f1ffdfa42d3556d5d3 (diff)
Merge pull request #423 from Gogume1er/map_matrix
decompile unk_020343A8 to map_matrix
Diffstat (limited to 'include/map_matrix.h')
-rw-r--r--include/map_matrix.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/include/map_matrix.h b/include/map_matrix.h
new file mode 100644
index 00000000..87e732dc
--- /dev/null
+++ b/include/map_matrix.h
@@ -0,0 +1,54 @@
+#ifndef POKEDIAMOND_MAP_MATRIX_H
+#define POKEDIAMOND_MAP_MATRIX_H
+
+#define MAP_MATRIX_MAX_WIDTH 30
+#define MAP_MATRIX_MAX_HEIGHT 30
+#define MAP_MATRIX_MAX_SIZE (MAP_MATRIX_MAX_WIDTH * MAP_MATRIX_MAX_HEIGHT)
+
+#define MAP_MATRIX_MAX_NAME_LENGTH 16
+
+struct MapData
+{
+ u16 data[MAP_MATRIX_MAX_SIZE];
+};
+
+struct MapMatrixData
+{
+ u8 height;
+ u8 width;
+ u16 headers[MAP_MATRIX_MAX_SIZE];
+ u8 altitudes[MAP_MATRIX_MAX_SIZE];
+ struct MapData maps;
+ u8 name[MAP_MATRIX_MAX_NAME_LENGTH];
+};
+
+struct MapMatrix
+{
+ u8 width;
+ u8 height;
+ u8 matrix_id;
+ struct MapMatrixData data;
+};
+
+struct MapMatrix *MapMatrix_New(void);
+void MapMatrix_Load(u16 map_id, struct MapMatrix *map_matrix);
+void MapMatrix_Free(struct MapMatrix *map_matrix);
+u16 MapMatrix_GetMapData(s32 map_id, struct MapMatrix *map_matrix);
+u8 MapMatrix_GetWidth(struct MapMatrix *map_matrix);
+u8 MapMatrix_GetHeight(struct MapMatrix *map_matrix);
+u16 MapMatrix_GetMapHeader(struct MapMatrix *map_matrix, s32 x, s32 y);
+u16 MapMatrix_GetMapHeaderFromID(struct MapMatrix *map_matrix, s32 map_id);
+u8 MapMatrix_GetMatrixID(struct MapMatrix *map_matrix);
+u32 MapMatrix_GetMapAltitude(
+ struct MapMatrix *map_matrix, u8 param1, s16 x, s16 y, int matrix_width);
+
+struct MapData *MapMatrix_MapData_New(u32 heap_id);
+void MapMatrix_MapData_Free(struct MapData *map_data);
+u16 MapMatrix_MapData_GetData(struct MapData *map_data, s32 x, s32 y);
+
+u16 GetMapHeader(u32 file_id, u16 x, u16 y);
+u16 GetMapData(s32 map_id, struct MapMatrix *map_matrix);
+void FUN_02034678(struct MapMatrix *map_matrix);
+void FUN_020346CC(struct MapMatrix *map_matrix);
+
+#endif // POKEDIAMOND_MAP_MATRIX_H