mirror of https://github.com/zeldaret/mm.git
623 lines
21 KiB
C
623 lines
21 KiB
C
#include "global.h"
|
|
#include "z64map.h"
|
|
#include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h"
|
|
|
|
typedef struct {
|
|
/* 0x0 */ u8 texWidth;
|
|
/* 0x1 */ u8 texHeight;
|
|
/* 0x2 */ s16 offsetX;
|
|
/* 0x4 */ s16 offsetY;
|
|
/* 0x6 */ u8 drawType;
|
|
/* 0x7 */ u8 colorIndex;
|
|
/* 0x8 */ s16 scale;
|
|
} MapSpriteInfo; // size = 0xA
|
|
|
|
typedef struct {
|
|
/* 0x0 */ TexturePtr spriteTex;
|
|
/* 0x4 */ u8 width;
|
|
/* 0x5 */ u8 height;
|
|
/* 0x6 */ u8 offsetX;
|
|
/* 0x7 */ u8 offsetY;
|
|
/* 0x8 */ u8 drawType;
|
|
/* 0x9 */ u8 colorIndex;
|
|
/* 0xA */ s16 scale;
|
|
} MapSpriteInfo2; // size = 0xC
|
|
|
|
static Color_RGBA8 sMapColorTable[] = {
|
|
{ 255, 255, 255, 255 },
|
|
{ 0, 255, 255, 160 }, // Blue
|
|
{ 100, 255, 255, 255 },
|
|
};
|
|
|
|
static MapSpriteInfo2 sGameplayDangeonKeepInfo[5] = {
|
|
{ gameplay_dangeon_keep_Tex_0022C8, 96, 85, 48, 42, MAPDATA_DRAW_0, 0, 20 },
|
|
{ gameplay_dangeon_keep_Tex_0042C8, 96, 85, 48, 62, MAPDATA_DRAW_0, 0, 20 },
|
|
{ gameplay_dangeon_keep_Tex_0052C8, 96, 85, 68, 42, MAPDATA_DRAW_0, 0, 20 },
|
|
{ gameplay_dangeon_keep_Tex_0032C8, 96, 85, 48, 62, MAPDATA_DRAW_0, 0, 20 },
|
|
{ gameplay_dangeon_keep_Tex_0062C8, 96, 85, 68, 62, MAPDATA_DRAW_0, 0, 20 },
|
|
};
|
|
|
|
static MapSpriteInfo sMapGrandStaticInfo[98] = {
|
|
{ 96, 85, 48, 42, MAPDATA_DRAW_0, 0, 20 }, { 96, 85, 48, 62, MAPDATA_DRAW_0, 0, 20 },
|
|
{ 96, 85, 68, 42, MAPDATA_DRAW_0, 0, 20 }, { 96, 85, 48, 62, MAPDATA_DRAW_0, 0, 20 },
|
|
{ 96, 85, 68, 62, MAPDATA_DRAW_0, 0, 20 }, { 80, 72, 40, 35, MAPDATA_DRAW_1, 1, 52 },
|
|
{ 96, 85, 49, 43, MAPDATA_DRAW_3, 2, 20 }, { 96, 85, 49, 43, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 96, 85, 49, 43, MAPDATA_DRAW_3, 2, 20 }, { 96, 85, 49, 49, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 48, 44, 25, 23, MAPDATA_DRAW_3, 2, 20 }, { 96, 85, 49, 43, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 48, 46, 25, 24, MAPDATA_DRAW_3, 2, 20 }, { 64, 61, 32, 31, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 96, 85, 49, 50, MAPDATA_DRAW_3, 2, 20 }, { 96, 85, 49, 62, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 96, 85, 49, 43, MAPDATA_DRAW_3, 2, 20 }, { 48, 80, 21, 41, MAPDATA_DRAW_1, 1, 198 },
|
|
{ 32, 128, 17, 87, MAPDATA_DRAW_1, 1, 138 }, { 80, 53, 40, 27, MAPDATA_DRAW_1, 1, 54 },
|
|
{ 32, 81, 16, 15, MAPDATA_DRAW_3, 2, 20 }, { 80, 45, 35, 23, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 64, 87, 36, 44, MAPDATA_DRAW_3, 2, 20 }, { 64, 51, 31, 23, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 80, 79, 40, 40, MAPDATA_DRAW_3, 2, 20 }, { 96, 75, 36, 26, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 48, 41, 24, 20, MAPDATA_DRAW_3, 2, 20 }, { 64, 45, 31, 20, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 80, 52, 38, 28, MAPDATA_DRAW_3, 2, 20 }, { 48, 45, 23, 20, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 48, 59, 25, 37, MAPDATA_DRAW_3, 2, 20 }, { 48, 60, 21, 38, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 48, 81, 24, 40, MAPDATA_DRAW_3, 2, 20 }, { 48, 81, 24, 40, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 80, 89, 41, 26, MAPDATA_DRAW_3, 2, 20 }, { 80, 53, 39, 26, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 64, 78, 37, 36, MAPDATA_DRAW_3, 2, 20 }, { 64, 68, 33, 33, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 48, 68, 23, 35, MAPDATA_DRAW_3, 2, 20 }, { 48, 36, 25, 17, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 48, 25, 24, 12, MAPDATA_DRAW_3, 2, 20 }, { 64, 75, 24, 37, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 32, 53, 17, 26, MAPDATA_DRAW_3, 2, 20 }, { 80, 62, 35, 27, MAPDATA_DRAW_1, 1, 105 },
|
|
{ 64, 76, 31, 31, MAPDATA_DRAW_1, 1, 133 }, { 96, 85, 47, 43, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 80, 71, 48, 33, MAPDATA_DRAW_1, 1, 180 }, { 80, 87, 44, 44, MAPDATA_DRAW_1, 1, 72 },
|
|
{ 64, 65, 31, 36, MAPDATA_DRAW_1, 1, 57 }, { 48, 41, 28, 20, MAPDATA_DRAW_1, 1, 60 },
|
|
{ 64, 76, 17, 36, MAPDATA_DRAW_1, 1, 58 }, { 80, 60, 27, 22, MAPDATA_DRAW_1, 1, 83 },
|
|
{ 80, 47, 38, 23, MAPDATA_DRAW_1, 1, 69 }, { 80, 60, 40, 38, MAPDATA_DRAW_1, 1, 29 },
|
|
{ 48, 19, 17, 8, MAPDATA_DRAW_1, 1, 25 }, { 32, 99, 17, 16, MAPDATA_DRAW_1, 1, 88 },
|
|
{ 48, 69, 19, 28, MAPDATA_DRAW_1, 1, 76 }, { 48, 83, 34, 47, MAPDATA_DRAW_1, 1, 104 },
|
|
{ 80, 54, 45, 27, MAPDATA_DRAW_1, 1, 61 }, { 80, 92, 35, 50, MAPDATA_DRAW_1, 1, 60 },
|
|
{ 48, 75, 24, 37, MAPDATA_DRAW_3, 2, 20 }, { 64, 49, 32, 23, MAPDATA_DRAW_3, 2, 20 },
|
|
{ 64, 49, 25, 24, MAPDATA_DRAW_3, 2, 20 }, { 64, 52, 32, 24, MAPDATA_DRAW_3, 2, 34 },
|
|
{ 64, 49, 31, 24, MAPDATA_DRAW_3, 2, 34 }, { 32, 33, 18, 14, MAPDATA_DRAW_3, 2, 34 },
|
|
{ 48, 50, 25, 25, MAPDATA_DRAW_3, 2, 34 }, { 64, 52, 32, 25, MAPDATA_DRAW_3, 2, 34 },
|
|
{ 48, 35, 24, 18, MAPDATA_DRAW_3, 2, 34 }, { 64, 51, 32, 26, MAPDATA_DRAW_3, 2, 34 },
|
|
{ 48, 35, 24, 18, MAPDATA_DRAW_3, 2, 34 }, { 48, 53, 24, 28, MAPDATA_DRAW_3, 2, 34 },
|
|
{ 64, 53, 33, 25, MAPDATA_DRAW_3, 2, 34 }, { 64, 47, 31, 24, MAPDATA_DRAW_3, 2, 34 },
|
|
{ 64, 52, 32, 35, MAPDATA_DRAW_3, 2, 34 }, { 48, 48, 24, 23, MAPDATA_DRAW_3, 2, 34 },
|
|
{ 64, 87, 32, 26, MAPDATA_DRAW_3, 2, 34 }, { 48, 30, 24, 14, MAPDATA_DRAW_3, 2, 34 },
|
|
{ 80, 74, 40, 36, MAPDATA_DRAW_1, 1, 50 }, { 80, 87, 6, 41, MAPDATA_DRAW_1, 1, 42 },
|
|
{ 80, 56, 19, 27, MAPDATA_DRAW_1, 1, 40 }, { 80, 65, 25, 33, MAPDATA_DRAW_1, 1, 40 },
|
|
{ 16, 38, 8, 12, MAPDATA_DRAW_1, 1, 47 }, { 80, 78, 46, 33, MAPDATA_DRAW_1, 1, 142 },
|
|
{ 80, 55, 32, 29, MAPDATA_DRAW_1, 1, 155 }, { 80, 98, 67, 48, MAPDATA_DRAW_1, 1, 51 },
|
|
{ 80, 62, 47, 19, MAPDATA_DRAW_1, 1, 55 }, { 32, 123, 15, 83, MAPDATA_DRAW_1, 1, 140 },
|
|
{ 80, 60, 47, 14, MAPDATA_DRAW_1, 1, 170 }, { 48, 77, 18, 59, MAPDATA_DRAW_1, 1, 79 },
|
|
{ 80, 64, 35, 30, MAPDATA_DRAW_1, 1, 33 }, { 64, 50, 29, 22, MAPDATA_DRAW_1, 1, 40 },
|
|
{ 80, 65, 39, 5, MAPDATA_DRAW_1, 1, 37 }, { 32, 61, 8, 56, MAPDATA_DRAW_1, 1, 35 },
|
|
{ 80, 83, 37, 42, MAPDATA_DRAW_1, 1, 95 }, { 80, 27, 30, 21, MAPDATA_DRAW_1, 1, 134 },
|
|
{ 80, 23, 122, -18, MAPDATA_DRAW_1, 1, 53 }, { 80, 60, 27, 22, MAPDATA_DRAW_1, 1, 83 },
|
|
};
|
|
|
|
static s32 D_801BF15C[5] = {
|
|
0x50, 0x50, 0x8D, 0x50, 0x50,
|
|
};
|
|
|
|
static MapSpriteInfo sMapIStaticInfo[MAPDATA_MAP_I_MAX] = {
|
|
{ 96, 85, 73, 67, MAPDATA_DRAW_0, 0, 60 }, { 96, 85, 73, 74, MAPDATA_DRAW_0, 0, 60 },
|
|
{ 96, 85, 80, 67, MAPDATA_DRAW_0, 0, 60 }, { 96, 85, 73, 67, MAPDATA_DRAW_0, 0, 60 },
|
|
{ 96, 85, 80, 74, MAPDATA_DRAW_0, 0, 60 }, { 32, 29, 17, 14, MAPDATA_DRAW_2, 0, 50 },
|
|
{ 32, 27, 16, 13, MAPDATA_DRAW_2, 0, 50 }, { 32, 30, 16, 15, MAPDATA_DRAW_2, 0, 50 },
|
|
{ 16, 32, 8, 20, MAPDATA_DRAW_2, 0, 50 }, { 16, 12, 8, 6, MAPDATA_DRAW_2, 0, 50 },
|
|
{ 32, 27, 16, 13, MAPDATA_DRAW_2, 0, 50 }, { 16, 14, 8, 7, MAPDATA_DRAW_2, 0, 50 },
|
|
{ 32, 19, 16, 9, MAPDATA_DRAW_2, 0, 50 }, { 32, 26, 16, 16, MAPDATA_DRAW_2, 0, 50 },
|
|
{ 16, 32, 8, 22, MAPDATA_DRAW_2, 0, 50 }, { 32, 27, 16, 13, MAPDATA_DRAW_2, 0, 50 },
|
|
{ 16, 35, 9, 5, MAPDATA_DRAW_2, 0, 45 }, { 32, 18, 14, 9, MAPDATA_DRAW_2, 0, 45 },
|
|
{ 32, 38, 18, 19, MAPDATA_DRAW_2, 0, 45 }, { 32, 21, 16, 9, MAPDATA_DRAW_2, 0, 45 },
|
|
{ 32, 34, 16, 17, MAPDATA_DRAW_2, 0, 45 }, { 48, 32, 19, 11, MAPDATA_DRAW_2, 0, 45 },
|
|
{ 32, 17, 16, 8, MAPDATA_DRAW_2, 0, 45 }, { 32, 17, 16, 7, MAPDATA_DRAW_2, 0, 45 },
|
|
{ 32, 21, 16, 11, MAPDATA_DRAW_2, 0, 45 }, { 32, 18, 16, 8, MAPDATA_DRAW_2, 0, 45 },
|
|
{ 16, 24, 9, 15, MAPDATA_DRAW_2, 0, 45 }, { 16, 25, 7, 16, MAPDATA_DRAW_2, 0, 45 },
|
|
{ 32, 35, 16, 17, MAPDATA_DRAW_2, 0, 45 }, { 16, 19, 5, 9, MAPDATA_DRAW_2, 0, 80 },
|
|
{ 32, 28, 17, 7, MAPDATA_DRAW_2, 0, 66 }, { 32, 16, 16, 8, MAPDATA_DRAW_2, 0, 66 },
|
|
{ 32, 24, 18, 11, MAPDATA_DRAW_2, 0, 66 }, { 32, 21, 16, 10, MAPDATA_DRAW_2, 0, 66 },
|
|
{ 16, 21, 8, 11, MAPDATA_DRAW_2, 0, 66 }, { 16, 10, 8, 4, MAPDATA_DRAW_2, 0, 66 },
|
|
{ 16, 7, 8, 3, MAPDATA_DRAW_2, 0, 66 }, { 32, 23, 13, 11, MAPDATA_DRAW_2, 0, 66 },
|
|
{ 16, 16, 8, 8, MAPDATA_DRAW_2, 0, 66 }, { 16, 17, 8, 7, MAPDATA_DRAW_2, 0, 50 },
|
|
{ 16, 23, 9, 10, MAPDATA_DRAW_2, 0, 66 }, { 16, 15, 8, 7, MAPDATA_DRAW_2, 0, 66 },
|
|
{ 32, 15, 15, 7, MAPDATA_DRAW_2, 0, 66 }, { 32, 17, 16, 8, MAPDATA_DRAW_2, 0, 90 },
|
|
{ 32, 16, 16, 8, MAPDATA_DRAW_2, 0, 90 }, { 16, 10, 8, 5, MAPDATA_DRAW_2, 0, 90 },
|
|
{ 16, 17, 8, 8, MAPDATA_DRAW_2, 0, 90 }, { 32, 17, 17, 8, MAPDATA_DRAW_2, 0, 90 },
|
|
{ 16, 11, 8, 5, MAPDATA_DRAW_2, 0, 90 }, { 32, 17, 15, 9, MAPDATA_DRAW_2, 0, 90 },
|
|
{ 16, 12, 8, 6, MAPDATA_DRAW_2, 0, 90 }, { 16, 18, 9, 9, MAPDATA_DRAW_2, 0, 90 },
|
|
{ 32, 17, 17, 8, MAPDATA_DRAW_2, 0, 90 }, { 32, 15, 16, 8, MAPDATA_DRAW_2, 0, 90 },
|
|
{ 16, 18, 9, 13, MAPDATA_DRAW_2, 0, 90 }, { 16, 16, 8, 7, MAPDATA_DRAW_2, 0, 90 },
|
|
{ 16, 30, 9, 8, MAPDATA_DRAW_2, 0, 90 }, { 16, 9, 9, 4, MAPDATA_DRAW_2, 0, 90 },
|
|
};
|
|
|
|
static s32 sMapIForGameplayDangeonKeep[5] = {
|
|
0x00, 0x01, 0x02, 0x03, 0x04,
|
|
};
|
|
|
|
static s32 sMapIForMapGrand[98] = {
|
|
MAPDATA_MAP_I_MAX,
|
|
0x01,
|
|
0x02,
|
|
0x03,
|
|
0x04,
|
|
MAPDATA_MAP_I_MAX,
|
|
0x05,
|
|
0x06,
|
|
0x07,
|
|
0x08,
|
|
0x09,
|
|
0x0A,
|
|
0x0B,
|
|
0x0C,
|
|
0x0D,
|
|
0x0E,
|
|
0x0F,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
0x10,
|
|
0x11,
|
|
0x12,
|
|
0x13,
|
|
0x14,
|
|
0x15,
|
|
0x16,
|
|
0x17,
|
|
0x18,
|
|
0x19,
|
|
0x1A,
|
|
0x1B,
|
|
0x1C,
|
|
MAPDATA_MAP_I_MAX,
|
|
0x1E,
|
|
0x1F,
|
|
0x20,
|
|
0x21,
|
|
0x22,
|
|
0x23,
|
|
0x24,
|
|
0x25,
|
|
0x26,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
0x27,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
0x28,
|
|
0x29,
|
|
0x2A,
|
|
0x2B,
|
|
0x2C,
|
|
0x2D,
|
|
0x2E,
|
|
0x2F,
|
|
0x30,
|
|
0x31,
|
|
0x32,
|
|
0x33,
|
|
0x34,
|
|
0x35,
|
|
0x36,
|
|
0x37,
|
|
0x38,
|
|
0x39,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
MAPDATA_MAP_I_MAX,
|
|
};
|
|
|
|
void MapData_GetMapColor(s32 colorIndex, Color_RGBA8* color) {
|
|
*color = sMapColorTable[colorIndex];
|
|
}
|
|
|
|
void MapData_GetMapTexDimGameplayDangeonKeep(s32 mapId, s32* width, s32* height) {
|
|
*width = sGameplayDangeonKeepInfo[mapId].width;
|
|
*height = sGameplayDangeonKeepInfo[mapId].height;
|
|
}
|
|
|
|
void MapData_GetMapTexOffsetGameplayDangeonKeep(s32 mapId, s32* offsetX, s32* offsetY) {
|
|
*offsetX = sGameplayDangeonKeepInfo[mapId].offsetX;
|
|
*offsetY = sGameplayDangeonKeepInfo[mapId].offsetY;
|
|
}
|
|
|
|
void MapData_GetMapDrawTypeGameplayDangeonKeep(s32 mapId, s32* drawType) {
|
|
*drawType = sGameplayDangeonKeepInfo[mapId].drawType;
|
|
}
|
|
|
|
u8 MapData_GetMapColorIndexGameplayDangeonKeep(s32 mapId) {
|
|
return sGameplayDangeonKeepInfo[mapId].colorIndex;
|
|
}
|
|
|
|
s16 MapData_GetMapGameplayDangeonKeepScale(s32 mapId) {
|
|
return sGameplayDangeonKeepInfo[mapId].scale;
|
|
}
|
|
|
|
TexturePtr MapData_GetMapTexGameplayDangeonKeep(s32 mapId) {
|
|
return sGameplayDangeonKeepInfo[mapId].spriteTex;
|
|
}
|
|
|
|
void MapData_GetMapTexGameplayDangeonKeepDim(s32 mapId, s32* width, s32* height) {
|
|
*width = sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texWidth;
|
|
*height = sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texHeight;
|
|
}
|
|
|
|
void MapData_GetMapTexGameplayDangeonKeepOffset(s32 mapId, s32* offsetX, s32* offsetY) {
|
|
*offsetX = sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].offsetX;
|
|
*offsetY = sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].offsetY;
|
|
}
|
|
|
|
void MapData_GetMapGrandDrawType(s32 mapId, s32* drawType) {
|
|
*drawType = sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].drawType;
|
|
}
|
|
|
|
u8 MapData_GetMapGrandColorIndex(s32 mapId) {
|
|
return sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].colorIndex;
|
|
}
|
|
|
|
s16 MapData_GetMapGrandScale(s32 mapId) {
|
|
return sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].scale;
|
|
}
|
|
|
|
s32 MapData_MapGrandTexSizeTest(s32 mapId) {
|
|
s32 endMap = mapId - MAPDATA_MAP_GRAND;
|
|
s32 size = 0;
|
|
s32 i;
|
|
|
|
for (i = 1; i < endMap + 1; i++) {
|
|
size += MapData_GetSizeOfMapGrandTex((i - 1) + MAPDATA_MAP_GRAND);
|
|
}
|
|
return size;
|
|
}
|
|
|
|
s32 MapData_GetSizeOfMapGrandTex(s32 mapId) {
|
|
return (sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texWidth *
|
|
sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texHeight) /
|
|
2;
|
|
}
|
|
|
|
s32 MapData_MID_GetType(s32 mapId) {
|
|
if ((mapId >= 0) && (mapId < 5)) {
|
|
return MAPDATA_MID_GAMEPLAY_DANGEON_KEEP;
|
|
}
|
|
if ((mapId >= 0x100) && (mapId < 0x162)) {
|
|
return MAPDATA_MID_MAP_GRAND_STATIC;
|
|
}
|
|
return MAPDATA_MID_MAP_I_STATIC;
|
|
}
|
|
|
|
void MapData_GetMapTexDim(s32 mapId, s32* width, s32* height) {
|
|
switch (MapData_MID_GetType(mapId)) {
|
|
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
|
|
MapData_GetMapTexDimGameplayDangeonKeep(mapId, width, height);
|
|
return;
|
|
|
|
case MAPDATA_MID_MAP_GRAND_STATIC:
|
|
MapData_GetMapTexGameplayDangeonKeepDim(mapId, width, height);
|
|
return;
|
|
|
|
default:
|
|
*width = *height = 0;
|
|
return;
|
|
}
|
|
}
|
|
|
|
void MapData_GetMapTexOffset(s32 mapId, s32* offsetX, s32* offsetY) {
|
|
switch (MapData_MID_GetType(mapId)) {
|
|
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
|
|
MapData_GetMapTexOffsetGameplayDangeonKeep(mapId, offsetX, offsetY);
|
|
return;
|
|
|
|
case MAPDATA_MID_MAP_GRAND_STATIC:
|
|
MapData_GetMapTexGameplayDangeonKeepOffset(mapId, offsetX, offsetY);
|
|
return;
|
|
|
|
default:
|
|
*offsetX = *offsetY = 0;
|
|
return;
|
|
}
|
|
}
|
|
|
|
void MapData_GetMapScale(s32 mapId, s32* scale) {
|
|
switch (MapData_MID_GetType(mapId)) {
|
|
default:
|
|
*scale = 0;
|
|
return;
|
|
|
|
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
|
|
*scale = MapData_GetMapGameplayDangeonKeepScale(mapId);
|
|
return;
|
|
|
|
case MAPDATA_MID_MAP_GRAND_STATIC:
|
|
*scale = MapData_GetMapGrandScale(mapId);
|
|
return;
|
|
}
|
|
}
|
|
|
|
void MapData_GetDrawType(s32 mapId, s32* drawType) {
|
|
switch (MapData_MID_GetType(mapId)) {
|
|
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
|
|
MapData_GetMapDrawTypeGameplayDangeonKeep(mapId, drawType);
|
|
return;
|
|
|
|
case MAPDATA_MID_MAP_GRAND_STATIC:
|
|
MapData_GetMapGrandDrawType(mapId, drawType);
|
|
return;
|
|
|
|
default:
|
|
*drawType = 0;
|
|
return;
|
|
}
|
|
}
|
|
|
|
s32 MapData_GetMapColorIndex(s32 mapId) {
|
|
switch (MapData_MID_GetType(mapId)) {
|
|
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
|
|
return MapData_GetMapColorIndexGameplayDangeonKeep(mapId);
|
|
|
|
case MAPDATA_MID_MAP_GRAND_STATIC:
|
|
return MapData_GetMapGrandColorIndex(mapId);
|
|
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
s32 func_80109964(s32 arg0) {
|
|
return D_801BF15C[arg0];
|
|
}
|
|
|
|
void MapData_GetMapITexDim(s32 mapId, s32* width, s32* height) {
|
|
*width = sMapIStaticInfo[mapId].texWidth;
|
|
*height = sMapIStaticInfo[mapId].texHeight;
|
|
}
|
|
|
|
void MapData_GetMapITexOffset(s32 mapId, s32* offsetX, s32* offsetY) {
|
|
*offsetX = sMapIStaticInfo[mapId].offsetX;
|
|
*offsetY = sMapIStaticInfo[mapId].offsetY;
|
|
}
|
|
|
|
void MapData_GetMapIDrawType(s32 mapId, s32* drawType) {
|
|
*drawType = sMapIStaticInfo[mapId].drawType;
|
|
}
|
|
|
|
u8 MapData_GetMapIColorIndex(s32 mapId) {
|
|
return sMapIStaticInfo[mapId].colorIndex;
|
|
}
|
|
|
|
s16 MapData_GetMapIScale(s32 mapId) {
|
|
return sMapIStaticInfo[mapId].scale;
|
|
}
|
|
|
|
s32 MapData_MapITexSizeTest(s32 mapId) {
|
|
s32 i;
|
|
s32 size = 0;
|
|
|
|
for (i = 1; i < mapId + 1; i++) {
|
|
size += MapDisp_GetSizeOfMapITex(i - 1);
|
|
}
|
|
|
|
return size;
|
|
}
|
|
|
|
s32 MapDisp_GetSizeOfMapITex(s32 mapCompactId) {
|
|
return (sMapIStaticInfo[mapCompactId].texWidth * sMapIStaticInfo[mapCompactId].texHeight) / 2;
|
|
}
|
|
|
|
s32 MapData_GetMapIId(s32 mapId) {
|
|
switch (MapData_MID_GetType(mapId)) {
|
|
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
|
|
return sMapIForGameplayDangeonKeep[mapId];
|
|
|
|
case MAPDATA_MID_MAP_GRAND_STATIC:
|
|
return sMapIForMapGrand[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)];
|
|
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
s32 func_80109B38(s32 mapId) {
|
|
if (MapData_GetMapIId(mapId) != MAPDATA_MAP_I_MAX) {
|
|
return 1;
|
|
}
|
|
switch (MapData_MID_GetType(mapId)) {
|
|
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
|
|
return 2;
|
|
|
|
case MAPDATA_MID_MAP_GRAND_STATIC:
|
|
return 0;
|
|
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
s32 MapData_GetMapCompactId(s32 mapId) {
|
|
s32 mapI = MapData_GetMapIId(mapId);
|
|
|
|
if (mapI != MAPDATA_MAP_I_MAX) {
|
|
return mapI;
|
|
}
|
|
if ((mapId >= 0x100) && (mapId < 0x162)) {
|
|
return mapId - 0xC6;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
s32 MapData_CPID_GetType(s32 mapCompactId) {
|
|
if (mapCompactId == -1) {
|
|
return MAPDATA_CPID_2;
|
|
}
|
|
if (mapCompactId < MAPDATA_MAP_I_MAX) {
|
|
return MAPDATA_CPID_MAP_I_STATIC;
|
|
}
|
|
if (mapCompactId >= MAPDATA_MAP_I_MAX) {
|
|
return MAPDATA_CPID_MAP_GRAND_STATIC;
|
|
}
|
|
return MAPDATA_CPID_2;
|
|
}
|
|
|
|
// Unused
|
|
s32 func_80109C38(s32 mapCompactId) {
|
|
if (mapCompactId == -1) {
|
|
return 0;
|
|
}
|
|
switch (MapData_CPID_GetType(mapCompactId)) {
|
|
case MAPDATA_CPID_MAP_GRAND_STATIC:
|
|
return MapData_MapGrandTexSizeTest(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId));
|
|
|
|
case MAPDATA_CPID_MAP_I_STATIC:
|
|
return MapData_MapITexSizeTest(mapCompactId);
|
|
|
|
case MAPDATA_CPID_2:
|
|
return 0;
|
|
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
s32 MapData_CPID_GetSizeOfMapTex(s32 mapCompactId) {
|
|
if (mapCompactId == -1) {
|
|
return 0;
|
|
}
|
|
switch (MapData_CPID_GetType(mapCompactId)) {
|
|
case MAPDATA_CPID_MAP_GRAND_STATIC:
|
|
return MapData_GetSizeOfMapGrandTex(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId));
|
|
|
|
case MAPDATA_CPID_MAP_I_STATIC:
|
|
return MapDisp_GetSizeOfMapITex(mapCompactId);
|
|
|
|
case MAPDATA_CPID_2:
|
|
return 0;
|
|
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
void MapData_CPID_GetTexDim(s32 mapCompactId, s32* width, s32* height) {
|
|
if (mapCompactId == -1) {
|
|
*width = *height = 0;
|
|
return;
|
|
}
|
|
switch (MapData_CPID_GetType(mapCompactId)) {
|
|
case MAPDATA_CPID_MAP_GRAND_STATIC:
|
|
MapData_GetMapTexGameplayDangeonKeepDim(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId), width,
|
|
height);
|
|
return;
|
|
|
|
case MAPDATA_CPID_MAP_I_STATIC:
|
|
MapData_GetMapITexDim(mapCompactId, width, height);
|
|
return;
|
|
|
|
case MAPDATA_CPID_2:
|
|
default:
|
|
*width = *height = 0;
|
|
return;
|
|
}
|
|
}
|
|
|
|
void MapData_CPID_GetTexOffset(s32 mapCompactId, s32* offsetX, s32* offsetY) {
|
|
if (mapCompactId == -1) {
|
|
*offsetX = *offsetY = 0;
|
|
return;
|
|
}
|
|
switch (MapData_CPID_GetType(mapCompactId)) {
|
|
case MAPDATA_CPID_MAP_GRAND_STATIC:
|
|
MapData_GetMapTexGameplayDangeonKeepOffset(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId), offsetX,
|
|
offsetY);
|
|
return;
|
|
|
|
case MAPDATA_CPID_MAP_I_STATIC:
|
|
MapData_GetMapITexOffset(mapCompactId, offsetX, offsetY);
|
|
return;
|
|
|
|
case MAPDATA_CPID_2:
|
|
default:
|
|
*offsetX = *offsetY = 0;
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Unused
|
|
void MapData_CPID_GetDrawType(s32 mapCompactId, s32* drawType) {
|
|
if (mapCompactId == -1) {
|
|
*drawType = MAPDATA_DRAW_0;
|
|
return;
|
|
}
|
|
switch (MapData_CPID_GetType(mapCompactId)) {
|
|
case MAPDATA_CPID_MAP_GRAND_STATIC:
|
|
MapData_GetMapGrandDrawType(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId), drawType);
|
|
return;
|
|
|
|
case MAPDATA_CPID_MAP_I_STATIC:
|
|
MapData_GetMapIDrawType(mapCompactId, drawType);
|
|
return;
|
|
|
|
case MAPDATA_CPID_2:
|
|
default:
|
|
*drawType = MAPDATA_DRAW_0;
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Unused
|
|
u8 MapData_CPID_GetMapColorIndex(s32 mapCompactId) {
|
|
if (mapCompactId == -1) {
|
|
return 0;
|
|
}
|
|
switch (MapData_CPID_GetType(mapCompactId)) {
|
|
case MAPDATA_CPID_MAP_GRAND_STATIC:
|
|
return MapData_GetMapGrandColorIndex(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId));
|
|
|
|
case MAPDATA_CPID_MAP_I_STATIC:
|
|
return MapData_GetMapIColorIndex(mapCompactId);
|
|
|
|
case MAPDATA_CPID_2:
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
s16 MapData_CPID_GetMapScale(s32 mapCompactId) {
|
|
if (mapCompactId == -1) {
|
|
return 0;
|
|
}
|
|
switch (MapData_CPID_GetType(mapCompactId)) {
|
|
case MAPDATA_CPID_MAP_GRAND_STATIC:
|
|
return MapData_GetMapGrandScale(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId));
|
|
|
|
case MAPDATA_CPID_MAP_I_STATIC:
|
|
return MapData_GetMapIScale(mapCompactId);
|
|
|
|
case MAPDATA_CPID_2:
|
|
default:
|
|
return 0;
|
|
}
|
|
}
|