diff options
| author | Prakxo <87568477+Prakxo@users.noreply.github.com> | 2024-06-02 16:41:49 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-02 07:41:49 -0700 |
| commit | 69201d6d724625233f4fc80873f509951c4e5556 (patch) | |
| tree | 7c3e331e01b1abd688ae07b12981e37a5bb8a905 | |
| parent | fd0581121366309a56c648eda7a299537e355b28 (diff) | |
m_room_type OK (#193)
* m_room_type OK
* offsets
* jenkins
| -rw-r--r-- | include/6C0690.h | 9 | ||||
| -rw-r--r-- | include/6E2300.h | 26 | ||||
| -rw-r--r-- | include/m_clip.h | 12 | ||||
| -rw-r--r-- | include/m_home.h | 4 | ||||
| -rw-r--r-- | include/m_melody.h | 15 | ||||
| -rw-r--r-- | include/m_room_type.h | 95 | ||||
| -rw-r--r-- | linker_scripts/jp/symbol_addrs_code.txt | 58 | ||||
| -rw-r--r-- | src/code/m_private.c | 2 | ||||
| -rw-r--r-- | src/code/m_room_type.c | 1166 | ||||
| -rw-r--r-- | src/code/m_start_data_init.c | 1 | ||||
| -rw-r--r-- | src/overlays/gamestates/ovl_trademark/m_trademark.c | 1 | ||||
| -rw-r--r-- | yamls/jp/code.yaml | 9 |
12 files changed, 1327 insertions, 71 deletions
diff --git a/include/6C0690.h b/include/6C0690.h index ad2c312..e5c6aac 100644 --- a/include/6C0690.h +++ b/include/6C0690.h @@ -12,13 +12,6 @@ struct Game; // void func_8009CC00_jp(); // void func_8009CC94_jp(); void mMkRm_MarkRoom(struct Game* game); -void mMld_SetDefaultMelody(void); -// void func_8009CFD4_jp(); -// void func_8009D03C_jp(); -// void func_8009D0CC_jp(); -// void func_8009D100_jp(); -// void func_8009D128_jp(); -// void func_8009D160_jp(); -// void func_8009D1A8_jp(); + #endif diff --git a/include/6E2300.h b/include/6E2300.h deleted file mode 100644 index bd5902d..0000000 --- a/include/6E2300.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef C_6E2300_H -#define C_6E2300_H - -#include "ultra64.h" - -// void func_800BE660_jp(); -// void func_800BE69C_jp(); -// void func_800BE6D8_jp(); -// void func_800BE72C_jp(); -// void func_800BE844_jp(); -// void func_800BEA50_jp(); -// void func_800BEBEC_jp(); -// void func_800BEC3C_jp(); -// void func_800BEC80_jp(); -// void func_800BED5C_jp(); -// void func_800BEE50_jp(); -// void func_800BEEB4_jp(); -// void func_800BEEC4_jp(); -u16 mRmTp_Item1ItemNo2FtrItemNo_AtPlayerRoom(u16 item); -// void func_800BF10C_jp(); -// void func_800BF230_jp(); -// void func_800BF26C_jp(); -// void mRmTp_DrawFamicomInfo(); -// void mRmTp_MakeFamicom_Fdebug(); - -#endif diff --git a/include/m_clip.h b/include/m_clip.h index b1ba09d..56714f7 100644 --- a/include/m_clip.h +++ b/include/m_clip.h @@ -11,6 +11,7 @@ struct Clip_unk_040_unk_14_arg0; struct Clip_unk_07C_unk_0_arg0; struct FurnitureActor; struct Game_Play; +struct Game; struct ObjectExchangeBank; struct ObjectStatus; struct ShadowData; @@ -107,13 +108,20 @@ typedef struct Clip_unk_07C { /* 0x00 */ Clip_unk_07C_unk_0 unk_0; /* 0x04 */ Clip_unk_07C_unk_4 unk_4; } Clip_unk_07C; // size >= 0x8 +typedef s32 (*Clip_unk_080_unk_04)(struct Game* game, u16 ftr, s32* utX, s32* utZ, u16* rotation, + s32* squareOffs, s32* layer); typedef void (*Clip_unk_080_unk_24)(void); +typedef s32 (*Clip_unk_080_unk_28)(struct Game* game, u16 ftr, s32 res,s32 utX, s32 utZ, u16 rotation, + s32 squareOffs, s32 layer); typedef UNK_RET (*Clip_unk_080_unk_34)(struct FurnitureActor* furnitureActor, struct Actor* myHouseActor, struct Game_Play* game_play, f32 arg0, f32 arg1); typedef struct Clip_unk_080 { - /* 0x00 */ UNK_TYPE1 unk_00[0x24]; + /* 0x00 */ UNK_TYPE1 unk_00[0x4]; + /* 0x04 */ Clip_unk_080_unk_04 unk_04; + /* 0x08 */ UNK_TYPE1 unk_08[0x1C]; /* 0x24 */ Clip_unk_080_unk_24 unk_24; - /* 0x28 */ UNK_TYPE1 unk_28[0xC]; + /* 0x28 */ Clip_unk_080_unk_28 unk_28; + /* 0x2C */ UNK_TYPE1 unk_2C[0x8]; /* 0x34 */ Clip_unk_080_unk_34 unk_34; // open close proc } Clip_unk_080; // size >= 0x8 diff --git a/include/m_home.h b/include/m_home.h index 6b64bf0..4888504 100644 --- a/include/m_home.h +++ b/include/m_home.h @@ -66,7 +66,9 @@ typedef struct HomeBitfield { // Original name, taken from m_flashrom typedef struct mHm_hs_c { /* 0x000 */ PersonalID_c ownerID; - /* 0x010 */ UNK_TYPE1 unk_010[0x12]; + /* 0x010 */ UNK_TYPE1 unk_010[0x4]; + /* 0x014 */ u8 roomId; + /* 0x014 */ UNK_TYPE1 unk_015[0xD]; /* 0x022 */ HomeBitfield unk_022; /* 0x024 */ u8 unk_024; /* 0x025 */ UNK_TYPE1 unk_025[0x3]; diff --git a/include/m_melody.h b/include/m_melody.h new file mode 100644 index 0000000..dfb0e5b --- /dev/null +++ b/include/m_melody.h @@ -0,0 +1,15 @@ +#ifndef M_MELODY_H +#define M_MELODY_H + +#include "ultra64.h" + +void mMld_SetDefaultMelody(void); +void mMld_TransformMelodyData_u64_2_u8(u8* dst, u64 src); +// void func_8009D03C_jp(); +// void func_8009D0CC_jp(); +// void func_8009D100_jp(); +// void func_8009D128_jp(); +// void func_8009D160_jp(); +// void func_8009D1A8_jp(); + +#endif diff --git a/include/m_room_type.h b/include/m_room_type.h new file mode 100644 index 0000000..f5396a0 --- /dev/null +++ b/include/m_room_type.h @@ -0,0 +1,95 @@ +#ifndef M_ROOM_TYPE_H +#define M_ROOM_TYPE_H + +#include "ultra64.h" +#include "libu64/gfxprint.h" + +struct Game; + +#define mRmTp_FTR_UNIT_MAX 4 +#define FTR_NUM 947 + +typedef enum mRmTp_FurnitureSize { + /* 0 */ mRmTp_FTRSIZE_1x1, + /* 1 */ mRmTp_FTRSIZE_1x2, + /* 2 */ mRmTp_FTRSIZE_2x2, + /* 3 */ mRmTp_FTRSIZE_MAX +} mRmTp_FurnitureSize; + +typedef enum mRmTp_Direction { + /* 0 */ mRmTp_DIRECT_SOUTH, + /* 1 */ mRmTp_DIRECT_EAST, + /* 2 */ mRmTp_DIRECT_NORTH, + /* 3 */ mRmTp_DIRECT_WEST, + /* 4 */ mRmTp_DIRECT_MAX +} mRmTp_Direction; + +typedef enum mRmTp_SEType { + /* 0 */ mRmTp_FTR_SE_NONE, + /* 1 */ mRmTp_FTR_SE_SOFT_CHAIR, + /* 2 */ mRmTp_FTR_SE_HARD_CHAIR, + /* 3 */ mRmTp_FTR_SE_BUBU_CHAIR, + /* 4 */ mRmTp_FTR_SE_TOILET_CHAIR, + /* 5 */ mRmTp_FTR_SE_MAX +} mRmTp_SEType; + +typedef enum mRmTp_Action { + /* 0 */ mRmTp_CHAIR_ACTION_SIT, + /* 1 */ mRmTp_CHAIR_ACTION_STAND, + /* 2 */ mRmTp_CHAIR_ACTION_MAX +} mRmTp_Action; + +typedef enum mRmTp_BirthType { + /* 00 */ mRmTp_BIRTH_TYPE_GRP_A, + /* 01 */ mRmTp_BIRTH_TYPE_GRP_B, + /* 02 */ mRmTp_BIRTH_TYPE_GRP_C, + /* 03 */ mRmTp_BIRTH_TYPE_EVENT, + /* 04 */ mRmTp_BIRTH_TYPE_BIRTHDAY, + /* 05 */ mRmTp_BIRTH_TYPE_HALLOWEEN, + /* 06 */ mRmTp_BIRTH_TYPE_HANIWA, + /* 07 */ mRmTp_BIRTH_TYPE_LOTTERY, + /* 08 */ mRmTp_BIRTH_TYPE_FTR_CLOTH, + /* 09 */ mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + /* 10 */ mRmTp_BIRTH_TYPE_FTR_INSECT, + /* 11 */ mRmTp_BIRTH_TYPE_FTR_FISH, + /* 12 */ mRmTp_BIRTH_TYPE_SINGLE_FOSSIL, + /* 13 */ mRmTp_BIRTH_TYPE_MULTI_FOSSIL, + /* 14 */ mRmTp_BIRTH_TYPE_XMAS, + /* 15 */ mRmTp_BIRTH_TYPE_SANTA, + /* 16 */ mRmTp_BIRTH_TYPE_UNOBTAINABLE, + /* 17 */ mRmTp_BIRTH_TYPE_SNOWMAN, +} mRmTp_BirthType; + +typedef struct mRmTp_FtrPlaceInfo { + /* 0x0 */ s32 exists; + /* 0x4 */ s32 utX; + /* 0x8 */ s32 utZ; +} mRmTp_FtrPlaceInfo; // size = 0xC + +typedef struct mRmTp_FtrPlaceData { + /* 0x0 */ u8 exist; + /* 0x2 */ s16 ofsX; + /* 0x4 */ s16 ofsZ; +} mRmTp_FtrPlaceData; // size = 0x8 + +void mRmTp_InitFtrPlaceInfo(mRmTp_FtrPlaceInfo* info); +s32 mRmTp_ItemNo2FtrSize(u16 name); +mRmTp_FtrPlaceData* mRmTp_GetFtrUnitPlaceData(s32 size, s32 dir); +s32 mRmTp_GetFurnitureData(u16 ftr, s32 ut_x, s32 ut_z, mRmTp_FtrPlaceInfo* info); +void mRmTp_AssignFtrFgIdx(u16* dst, u16* src, u16* arg2, u16* arg3); +void mRmTp_MakeFtrNoTable(u16* dst, u16* src); +void* mRmTp_MallocRam(struct Game* game, size_t size); +void mRmTp_FreeRam(struct Game* game, void* ptr); +s32 mRmTp_CharVacRight2Left(u8* str, s32 len); +s32 mRmTp_GetFtrActionSE(s32 ftr_idx, s32 mode); +s32 mRmTp_CheckShopFtr(u16 item); +u8* mRmTp_CheckFtrBirthInfoTop(); +s32 mRmTp_GetFloorIdx(void); +u16 mRmTp_Item1ItemNo2FtrItemNo_AtPlayerRoom(u16 item); +u16 mRmTp_FtrItemNo2Item1ItemNo(u16 item); +void mRmTp_MakeMelodyData(); +u8* mRmTp_GetMelodyData(); +void mRmTp_DrawFamicomInfo(gfxprint* gfxprint); +void mRmTp_MakeFamicom_Fdebug(); + +#endif diff --git a/linker_scripts/jp/symbol_addrs_code.txt b/linker_scripts/jp/symbol_addrs_code.txt index 0c9a8cf..bde00ea 100644 --- a/linker_scripts/jp/symbol_addrs_code.txt +++ b/linker_scripts/jp/symbol_addrs_code.txt @@ -1894,7 +1894,7 @@ func_8009CC00_jp = 0x8009CC00; // type:func func_8009CC94_jp = 0x8009CC94; // type:func mMkRm_MarkRoom = 0x8009CDA8; // type:func mMld_SetDefaultMelody = 0x8009CFB0; // type:func -func_8009CFD4_jp = 0x8009CFD4; // type:func +mMld_TransformMelodyData_u64_2_u8 = 0x8009CFD4; // type:func func_8009D03C_jp = 0x8009D03C; // type:func func_8009D0CC_jp = 0x8009D0CC; // type:func func_8009D100_jp = 0x8009D100; // type:func @@ -2913,23 +2913,23 @@ gfx_gSPTextureRectangle1 = 0x800BE1D4; // type:func func_800BE27C_jp = 0x800BE27C; // type:func gfx_gSPScisTextureRectangle1 = 0x800BE320; // type:func func_800BE4F8_jp = 0x800BE4F8; // type:func -func_800BE660_jp = 0x800BE660; // type:func -func_800BE69C_jp = 0x800BE69C; // type:func -func_800BE6D8_jp = 0x800BE6D8; // type:func -func_800BE72C_jp = 0x800BE72C; // type:func -func_800BE844_jp = 0x800BE844; // type:func -func_800BEA50_jp = 0x800BEA50; // type:func -func_800BEBEC_jp = 0x800BEBEC; // type:func -func_800BEC3C_jp = 0x800BEC3C; // type:func -func_800BEC80_jp = 0x800BEC80; // type:func -func_800BED5C_jp = 0x800BED5C; // type:func -func_800BEE50_jp = 0x800BEE50; // type:func -func_800BEEB4_jp = 0x800BEEB4; // type:func -func_800BEEC4_jp = 0x800BEEC4; // type:func +mRmTp_InitFtrPlaceInfo = 0x800BE660; // type:func +mRmTp_ItemNo2FtrSize = 0x800BE69C; // type:func +mRmTp_GetFtrUnitPlaceData = 0x800BE6D8; // type:func +mRmTp_GetFurnitureData = 0x800BE72C; // type:func +mRmTp_AssignFtrFgIdx = 0x800BE844; // type:func +mRmTp_MakeFtrNoTable = 0x800BEA50; // type:func +mRmTp_MallocRam = 0x800BEBEC; // type:func +mRmTp_FreeRam = 0x800BEC3C; // type:func +mRmTp_CharVacRight2Left = 0x800BEC80; // type:func +mRmTp_GetFtrActionSE = 0x800BED5C; // type:func +mRmTp_CheckShopFtr = 0x800BEE50; // type:func +mRmTp_CheckFtrBirthInfoTop = 0x800BEEB4; // type:func +mRmTp_GetFloorIdx = 0x800BEEC4; // type:func mRmTp_Item1ItemNo2FtrItemNo_AtPlayerRoom = 0x800BEFCC; // type:func -func_800BF10C_jp = 0x800BF10C; // type:func -func_800BF230_jp = 0x800BF230; // type:func -func_800BF26C_jp = 0x800BF26C; // type:func +mRmTp_FtrItemNo2Item1ItemNo = 0x800BF10C; // type:func +mRmTp_MakeMelodyData = 0x800BF230; // type:func +mRmTp_GetMelodyData = 0x800BF26C; // type:func mRmTp_DrawFamicomInfo = 0x800BF27C; // type:func mRmTp_MakeFamicom_Fdebug = 0x800BF338; // type:func func_800BF410_jp = 0x800BF410; // type:func @@ -4882,22 +4882,22 @@ z_gsCPModeSet_Data = 0x8010CB30; // type:Gfx size:0x2D0 RSP_RDP_clear_data = 0x8010CE00; // type:Gfx size:0x60 fade_gfx = 0x8010CE60; // type:Gfx size:0x30 fill_gfx = 0x8010CE90; // type:Gfx size:0x28 -D_8010CEC0_jp = 0x8010CEC0; // type:u8 -D_8010D274_jp = 0x8010D274; // -D_8010D28C_jp = 0x8010D28C; // -D_8010D2A4_jp = 0x8010D2A4; // -D_8010D2BC_jp = 0x8010D2BC; // -D_8010D2D4_jp = 0x8010D2D4; // -D_8010D2EC_jp = 0x8010D2EC; // -D_8010D2FC_jp = 0x8010D2FC; // -D_8010D314_jp = 0x8010D314; // type:u8 +mRmTp_ftr_size = 0x8010CEC0; // type:u8 +mRmTp_size_s_data = 0x8010D274; // +mRmTp_size_m_data_south = 0x8010D28C; // +mRmTp_size_m_data_east = 0x8010D2A4; // +mRmTp_size_m_data_north = 0x8010D2BC; // +mRmTp_size_m_data_west = 0x8010D2D4; // +mRmTp_size_m_data_table = 0x8010D2EC; // +mRmTp_size_l_data = 0x8010D2FC; // +mRmTp_ftr_se_type = 0x8010D314; // type:u8 D_8010D418_jp = 0x8010D418; // D_8010D6C8_jp = 0x8010D6C8; // D_8010D6D0_jp = 0x8010D6D0; // D_8010D6D8_jp = 0x8010D6D8; // D_8010D6E0_jp = 0x8010D6E0; // -D_8010D6E8_jp = 0x8010D6E8; // type:u8 -D_8010DA9C_jp = 0x8010DA9C; // +mRmTp_birth_type = 0x8010D6E8; // type:u8 +mRmTp_famicom_idx = 0x8010DA9C; // D_8010DAA0_jp = 0x8010DAA0; // D_8010DADC_jp = 0x8010DADC; // D_8010DAE8_jp = 0x8010DAE8; // @@ -6120,7 +6120,7 @@ B_80144624_jp = 0x80144624; // B_80144628_jp = 0x80144628; // B_8014462C_jp = 0x8014462C; // fbdemo_mode = 0x80144650; // -B_80144660_jp = 0x80144660; // +mRmTp_melody = 0x80144660; // B_80144670_jp = 0x80144670; // B_80144680_jp = 0x80144680; // B_80144690_jp = 0x80144690; // diff --git a/src/code/m_private.c b/src/code/m_private.c index 35a1801..b35c1dd 100644 --- a/src/code/m_private.c +++ b/src/code/m_private.c @@ -4,7 +4,7 @@ #include "m_name_table.h" #include "m_time.h" #include "m_player_lib.h" -#include "6E2300.h" +#include "m_room_type.h" #include "m_field_info.h" #include "6E3240.h" #include "69CB30.h" diff --git a/src/code/m_room_type.c b/src/code/m_room_type.c new file mode 100644 index 0000000..a4c879c --- /dev/null +++ b/src/code/m_room_type.c @@ -0,0 +1,1166 @@ +#include "m_room_type.h" +#include "m_common_data.h" +#include "game.h" +#include "m_scene_table.h" +#include "m_malloc.h" +#include "m_field_info.h" +#include "m_melody.h" +#include "m_name_table.h" + +u8 mRmTp_ftr_size[] = { + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, + mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, + mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x2, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, + mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_2x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, + mRmTp_FTRSIZE_1x2, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, mRmTp_FTRSIZE_1x1, +}; + +mRmTp_FtrPlaceData mRmTp_size_s_data[mRmTp_FTR_UNIT_MAX] = { + { TRUE, 0, 0 }, { FALSE, 0, 0 }, { FALSE, 0, 0 }, { FALSE, 0, 0 } +}; + +mRmTp_FtrPlaceData mRmTp_size_m_data_south[mRmTp_FTR_UNIT_MAX] = { + { TRUE, 0, 0 }, { TRUE, 1, 0 }, { FALSE, 0, 0 }, { FALSE, 0, 0 } +}; + +mRmTp_FtrPlaceData mRmTp_size_m_data_east[mRmTp_FTR_UNIT_MAX] = { + { TRUE, 0, 0 }, { TRUE, 0, -1 }, { FALSE, 0, 0 }, { FALSE, 0, 0 } +}; + +mRmTp_FtrPlaceData mRmTp_size_m_data_north[mRmTp_FTR_UNIT_MAX] = { + { TRUE, 0, 0 }, { TRUE, -1, 0 }, { FALSE, 0, 0 }, { FALSE, 0, 0 } +}; + +mRmTp_FtrPlaceData mRmTp_size_m_data_west[mRmTp_FTR_UNIT_MAX] = { + { TRUE, 0, 0 }, { TRUE, 0, 1 }, { FALSE, 0, 0 }, { FALSE, 0, 0 } +}; + +mRmTp_FtrPlaceData* mRmTp_size_m_data_table[mRmTp_DIRECT_MAX] = { + mRmTp_size_m_data_south, + mRmTp_size_m_data_east, + mRmTp_size_m_data_north, + mRmTp_size_m_data_west, +}; + +mRmTp_FtrPlaceData mRmTp_size_l_data[mRmTp_FTR_UNIT_MAX] = { + { TRUE, 0, 0 }, { TRUE, 1, 0 }, { TRUE, 1, 1 }, { TRUE, 0, 1 } +}; + +u8 mRmTp_ftr_se_type[] = { + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_BUBU_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_SOFT_CHAIR, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_SOFT_CHAIR, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_BUBU_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_SOFT_CHAIR, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_HARD_CHAIR, + mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, + mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_TOILET_CHAIR, + mRmTp_FTR_SE_TOILET_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, + mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_BUBU_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, + mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_SOFT_CHAIR, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_BUBU_CHAIR, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_BUBU_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_SOFT_CHAIR, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_HARD_CHAIR, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_SOFT_CHAIR, mRmTp_FTR_SE_NONE, + mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, mRmTp_FTR_SE_NONE, +}; + +void mRmTp_InitFtrPlaceInfo(mRmTp_FtrPlaceInfo* info) { + mRmTp_FtrPlaceInfo* temp = info; + s32 i; + + for (i = 0; i < mRmTp_FTR_UNIT_MAX; i++) { + temp->exists = FALSE; + temp->utX = 0; + temp->utZ = 0; + + temp++; + } +} + +s32 mRmTp_ItemNo2FtrSize(u16 name) { + if (name >= 0x1000 && name < 0x1ECD) { + UNUSED s32 scoped; + return mRmTp_ftr_size[(name - 0x1000) >> 2]; + } + return 0; +} + +mRmTp_FtrPlaceData* mRmTp_GetFtrUnitPlaceData(s32 size, s32 dir) { + switch (size) { + case mRmTp_FTRSIZE_1x1: + return mRmTp_size_s_data; + case mRmTp_FTRSIZE_1x2: + return mRmTp_size_m_data_table[dir]; + case mRmTp_FTRSIZE_2x2: + return mRmTp_size_l_data; + default: + return mRmTp_size_s_data; + } +} + +s32 mRmTp_GetFurnitureData(u16 ftr, s32 ut_x, s32 ut_z, mRmTp_FtrPlaceInfo* info) { + UNUSED s32 pad; + mRmTp_FtrPlaceData* unitData; + UNUSED s32 pad2; + s32 idx; + UNUSED s32 pad3; + s32 i; + + mRmTp_InitFtrPlaceInfo(info); + + if (ftr >= 0x1000 && ftr < 0x1ECD) { + idx = (ftr - 0x1000) >> 2; + unitData = mRmTp_GetFtrUnitPlaceData(mRmTp_ftr_size[idx], (ftr - 0x1000) & 3); + + for (i = 0; i < mRmTp_FTR_UNIT_MAX; i++) { + (&info[i])->exists = (&unitData[i])->exist; + (&info[i])->utX = (&unitData[i])->ofsX + ut_x; + (&info[i])->utZ = (&unitData[i])->ofsZ + ut_z; + } + + return mRmTp_ftr_size[idx]; + } + + return mRmTp_FTRSIZE_MAX; +} + +void mRmTp_AssignFtrFgIdx(u16* dst, u16* src, u16* arg2, u16* arg3) { + UNUSED u16* temp; + u16* dstValues[2]; + u16* srcValues[2]; + s32 val = 0; + u16* cur; + s32 h; + s32 n; + UNUSED s32 pad2; + s32 i; + s32 j; + u16 item; + s32 idx; + mRmTp_FtrPlaceInfo placeData[mRmTp_FTR_UNIT_MAX]; + u16* item1; + u16* item2; + mRmTp_FtrPlaceInfo* dataPtr; + s32 k; + + dstValues[0] = dst; + dstValues[1] = arg2; + srcValues[0] = src; + srcValues[1] = arg3; + + for (i = 0; i < 2; i++) { + if (srcValues[i] == 0) {} + cur = dstValues[i]; + for (h = 0; h < UT_TOTAL_NUM; h++) { + *(s16*)cur = -1; + } + } + + for (i = 0; i < 2; i++) { + item1 = srcValues[i]; + item2 = dstValues[i]; + + if (item1 != NULL && item2 != NULL) { + for (n = 0; n < UT_Z_NUM; n++) { + for (j = 0; j < UT_X_NUM; j++) { + item = item1[j + n * UT_X_NUM]; + if (((item >= 0x1000) && (item < 0x1ECD)) && + mRmTp_GetFurnitureData(item, j, n, placeData) != mRmTp_FTRSIZE_MAX) { + dataPtr = placeData; + + for (k = 0; k < mRmTp_FTR_UNIT_MAX; k++) { + if (dataPtr->exists) { + idx = dataPtr->utX + dataPtr->utZ * UT_X_NUM; + item2[idx] = val; + } + + dataPtr++; + } + + val++; + } + } + } + } + } +} + +void mRmTp_MakeFtrNoTable(u16* dst, u16* src) { + s32 i; + s32 j; + s32 h; + UNUSED s32 pad; + + for (h = 0; h < UT_TOTAL_NUM; h++) { + dst[h] = 0; + } + + for (i = 0; i < UT_Z_NUM; i++) { + for (j = 0; j < UT_X_NUM; j++) { + mRmTp_FtrPlaceInfo placeData[mRmTp_FTR_UNIT_MAX]; + u16 item = src[i * UT_X_NUM + j]; + + if (((item >= 0x1000) && (item < 0x1ECD)) && + mRmTp_GetFurnitureData(item, j, i, placeData) != mRmTp_FTRSIZE_MAX) { + mRmTp_FtrPlaceInfo* data_p = placeData; + s32 k; + + for (k = 0; k < mRmTp_FTR_UNIT_MAX; k++) { + if (data_p->exists) { + s32 idx = data_p->utX + data_p->utZ * UT_X_NUM; + dst[idx] = item; + } + + data_p++; + } + } + } + } +} + +void* mRmTp_MallocRam(Game* game, size_t size) { + if (game != NULL) { + GameAlloc* alloc = &game->alloc; + return gamealloc_malloc(alloc, ALIGN16(size)); + } + + return zelda_malloc(ALIGN16(size)); +} + +void mRmTp_FreeRam(Game* game, void* ptr) { + if (ptr != NULL) { + if (game != NULL) { + GameAlloc* alloc = &game->alloc; + gamealloc_free(alloc, ptr); + } else { + zelda_free(ptr); + } + } +} + +s32 mRmTp_CharVacRight2Left(u8* str, s32 len) { + s32 i; + s32 pre = len; + + for (i = 0; i < len; i++) { + if (str[i] == ' ') { + pre = i; + break; + } + } + + if (pre != len) { + s32 ofs = len - pre; + + for (i = 0; i < pre; i++) { + str[ofs + i] = str[i]; + str[i] = ' '; + } + } +} + +s32 mRmTp_GetFtrActionSE(s32 ftr_idx, s32 mode) { + static s32 soft_chair_se_table[] = { 0x41F, 0x422 }; + static s32 hard_chair_se_table[] = { 0x420, 0x423 }; + static s32 bubu_chair_se_table[] = { 0x421, 0x429 }; + static s32 toile_chair_se_table[] = { 0x410, 0x072 }; + + if (ftr_idx >= 0 && ftr_idx < FTR_NUM) { + switch (mRmTp_ftr_se_type[ftr_idx]) { + case mRmTp_FTR_SE_NONE: + return -1; + case mRmTp_FTR_SE_SOFT_CHAIR: + if (mode >= mRmTp_CHAIR_ACTION_SIT && mode < mRmTp_CHAIR_ACTION_MAX) { + return soft_chair_se_table[mode]; + } + + return -1; + case mRmTp_FTR_SE_HARD_CHAIR: + if (mode >= mRmTp_CHAIR_ACTION_SIT && mode < mRmTp_CHAIR_ACTION_MAX) { + return hard_chair_se_table[mode]; + } + + return -1; + case mRmTp_FTR_SE_BUBU_CHAIR: + if (mode >= mRmTp_CHAIR_ACTION_SIT && mode < mRmTp_CHAIR_ACTION_MAX) { + return bubu_chair_se_table[mode]; + } + + return -1; + case mRmTp_FTR_SE_TOILET_CHAIR: + if (mode >= mRmTp_CHAIR_ACTION_SIT && mode < mRmTp_CHAIR_ACTION_MAX) { + return toile_chair_se_table[mode]; + } + + return -1; + default: + return -1; + } + } + + return -1; +} + +u8 mRmTp_birth_type[FTR_NUM] = { + mRmTp_BIRTH_TYPE_HALLOWEEN, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_SANTA, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_SANTA, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_HALLOWEEN, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_UNOBTAINABLE, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_UNOBTAINABLE, + mRmTp_BIRTH_TYPE_UNOBTAINABLE, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_XMAS, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_LOTTERY, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_LOTTERY, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_UNOBTAINABLE, mRmTp_BIRTH_TYPE_BIRTHDAY, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_XMAS, mRmTp_BIRTH_TYPE_XMAS, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_UNOBTAINABLE, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_UNOBTAINABLE, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_UNOBTAINABLE, + mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_LOTTERY, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_LOTTERY, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_HALLOWEEN, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_HALLOWEEN, mRmTp_BIRTH_TYPE_HALLOWEEN, + mRmTp_BIRTH_TYPE_HALLOWEEN, mRmTp_BIRTH_TYPE_UNOBTAINABLE, mRmTp_BIRTH_TYPE_HALLOWEEN, + mRmTp_BIRTH_TYPE_HALLOWEEN, mRmTp_BIRTH_TYPE_HALLOWEEN, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_HALLOWEEN, mRmTp_BIRTH_TYPE_HALLOWEEN, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_HALLOWEEN, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, + mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_HANIWA, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, + mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_CLOTH, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_INSECT, + mRmTp_BIRTH_TYPE_FTR_INSECT, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, mRmTp_BIRTH_TYPE_FTR_FISH, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, + mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_FTR_UMBRELLA, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_LOTTERY, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_LOTTERY, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_SANTA, mRmTp_BIRTH_TYPE_SANTA, mRmTp_BIRTH_TYPE_SANTA, + mRmTp_BIRTH_TYPE_SANTA, mRmTp_BIRTH_TYPE_SANTA, mRmTp_BIRTH_TYPE_SANTA, + mRmTp_BIRTH_TYPE_SANTA, mRmTp_BIRTH_TYPE_SANTA, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_C, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_LOTTERY, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_XMAS, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_XMAS, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_LOTTERY, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_LOTTERY, + mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_EVENT, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_XMAS, + mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_EVENT, mRmTp_BIRTH_TYPE_GRP_A, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_LOTTERY, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_GRP_B, + mRmTp_BIRTH_TYPE_GRP_C, mRmTp_BIRTH_TYPE_GRP_A, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, + mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, + mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, + mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, + mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, + mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, + mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_MULTI_FOSSIL, + mRmTp_BIRTH_TYPE_MULTI_FOSSIL, mRmTp_BIRTH_TYPE_SINGLE_FOSSIL, mRmTp_BIRTH_TYPE_SINGLE_FOSSIL, + mRmTp_BIRTH_TYPE_SINGLE_FOSSIL, mRmTp_BIRTH_TYPE_SINGLE_FOSSIL, mRmTp_BIRTH_TYPE_SINGLE_FOSSIL, + mRmTp_BIRTH_TYPE_GRP_B, mRmTp_BIRTH_TYPE_SNOWMAN, mRmTp_BIRTH_TYPE_SNOWMAN, + mRmTp_BIRTH_TYPE_SNOWMAN, mRmTp_BIRTH_TYPE_SNOWMAN, mRmTp_BIRTH_TYPE_SNOWMAN, + mRmTp_BIRTH_TYPE_SNOWMAN, mRmTp_BIRTH_TYPE_SNOWMAN, mRmTp_BIRTH_TYPE_SNOWMAN, + mRmTp_BIRTH_TYPE_SNOWMAN, mRmTp_BIRTH_TYPE_SNOWMAN, +}; + +s32 mRmTp_CheckShopFtr(u16 item) { + if ((item >= 0x1000 && item < 0x1ECD)) { + s32 ftr_idx = (item - 0x1000) >> 2; + + switch (mRmTp_birth_type[ftr_idx]) { + case mRmTp_BIRTH_TYPE_GRP_A: + case mRmTp_BIRTH_TYPE_GRP_B: + case mRmTp_BIRTH_TYPE_GRP_C: + case mRmTp_BIRTH_TYPE_EVENT: + return TRUE; + default: + break; + } + } + + return FALSE; +} + +u8* mRmTp_CheckFtrBirthInfoTop() { + return mRmTp_birth_type; +} + +s32 mRmTp_GetFloorIdx(void) { + s32 sceneNo; + + sceneNo = common_data.save.sceneNo; + if ((sceneNo == SCENE_MY_ROOM_S) || (sceneNo == SCENE_MY_ROOM_M) || (sceneNo == SCENE_MY_ROOM_L)) { + s32 id = mFI_GetFieldId() - 0x6000; + mHm_hs_c* home = &common_data.save.homes[id]; + s32 idx = home->roomId & 0x3F; + return idx; + } + if (sceneNo == SCENE_NPC_HOUSE) { + return mNpc_GetNpcFloorNo() & 0x3F; + } + switch (sceneNo) { + case SCENE_SHOP0: + return 0x40; + case SCENE_CONVENI: + return 0x41; + case SCENE_SUPER: + return 0x42; + case SCENE_DEPART: + case SCENE_DEPART_2: + return 0x43; + case SCENE_POST_OFFICE: + return 0x44; + case SCENE_POLICE_BOX: + return 0x45; + case SCENE_BUGGY: + return 0x46; + case SCENE_BROKER_SHOP: + return 0x47; + case SCENE_KAMAKURA: + return 0x48; + default: + return -1; + } +} + +u16 mRmTp_Item1ItemNo2FtrItemNo_AtPlayerRoom(u16 item) { + s32 value; + if (item >= 0x2400 && item < 0x2500) { + + value = item >= 0x2400 && item < 0x2500 ? (item - 0x2400) : 0; + + return 0x17AC + ((u16)value * mRmTp_DIRECT_MAX); + } + if (item >= 0x2D00 && item < 0x2D21) { + value = item >= 0x2D00 && item < 0x2D21 ? (item - 0x2D00) : 0; + + return 0x1BA8 + (value * mRmTp_DIRECT_MAX); + } + if (item >= 0x2300 && item < 0x2321) { + value = item >= 0x2300 && item < 0x2321 ? (item - 0x2300) : 0; + + return 0x1C28 + value * mRmTp_DIRECT_MAX; + } + if (item >= 0x2204 && item < 0x2224) { + value = item >= 0x2204 && item < 0x2224 ? (item - 0x2204) : 0; + + return 0x1ca8 + value * mRmTp_DIRECT_MAX; + } + + return item; +} +u16 mRmTp_FtrItemNo2Item1ItemNo(u16 item) { + + if (item >= 0x17AC && item < 0x1BA8) { + s32 value = item >= 0x17AC && item < 0x1BA8 ? (item - 0x17AC) >> 2 : 0; + + return 0x2400 + (u16)value; + } + if (item >= 0x1BA8 && item < 0x1C28) { + s32 value = item >= 0x1BA8 && item < 0x1C28 ? (item - 0x1BA8) >> 2 : 0; + + return 0x2D00 + value; + } + if (item >= 0x1C28 && item < 0x1CA8) { + s32 value = item >= 0x1C28 && item < 0x1CA8 ? (item - 0x1C28) >> 2 : 0; + + return mNT_FishIdx2FishItemNo(value); + } + if (item >= 0x1CA8 && item < 0x1D28) { + + s32 value = (item - 0x1CA8) >> 2; + + return 0x2204 + value; + } + + return item; +} + +u8 mRmTp_melody[16]; + +void mRmTp_MakeMelodyData() { + u64 melody = common_data.save.melody; + + mMld_TransformMelodyData_u64_2_u8(mRmTp_melody, melody); +} + +u8* mRmTp_GetMelodyData() { + return mRmTp_melody; +} + +s32 mRmTp_famicom_idx = 0; + +void mRmTp_DrawFamicomInfo(gfxprint* gfxprint) { + if ((gamePT->input[1].press.button & START_BUTTON) == START_BUTTON) { + mRmTp_famicom_idx++; + } + + if (mRmTp_famicom_idx < 0) { + mRmTp_famicom_idx = 7; + } + + if (mRmTp_famicom_idx >= 8) { + mRmTp_famicom_idx = 0; + } + + gfxprint_color(gfxprint, 200, 200, 250, 255); + gfxprint_locate8x8(gfxprint, 3, 26); + gfxprint_printf(gfxprint, "ファミコン %d", mRmTp_famicom_idx); // "Famicom %d" +} + +void mRmTp_MakeFamicom_Fdebug() { + Game* game = gamePT; + u16 ftr; + s32 utX; + s32 utZ; + u16 direct; + s32 ofs; + s32 layer; + s32 res; + + if ((gamePT->input[1].press.button & Z_TRIG) == Z_TRIG && game != NULL) { + + if (common_data.clip.unk_080 != NULL) { + + ftr = mRmTp_famicom_idx + 0x34A; + + res = common_data.clip.unk_080->unk_04(game, ftr, &utX, &utZ, &direct, &ofs, &layer); + + if (res >= 0) { + common_data.clip.unk_080->unk_28(game, ftr, res, utX, utZ, direct, ofs, layer); + } + } + } +} diff --git a/src/code/m_start_data_init.c b/src/code/m_start_data_init.c index ca4c3dd..341504d 100644 --- a/src/code/m_start_data_init.c +++ b/src/code/m_start_data_init.c @@ -36,6 +36,7 @@ #include "m_snowman.h" #include "overlays/gamestates/ovl_play/m_play.h" #include "sys_math.h" +#include "m_melody.h" void famicom_emu_initial_common_data(void) { FamicomEmuCommonData* famicom = &common_data.save.famicomEmuCommonData; diff --git a/src/overlays/gamestates/ovl_trademark/m_trademark.c b/src/overlays/gamestates/ovl_trademark/m_trademark.c index 8a1300c..b467a0d 100644 --- a/src/overlays/gamestates/ovl_trademark/m_trademark.c +++ b/src/overlays/gamestates/ovl_trademark/m_trademark.c @@ -1,5 +1,6 @@ #include "m_trademark.h" +#include "prevent_bss_reordering.h" #include "audio.h" #include "m_actor.h" #include "m_common_data.h" diff --git a/yamls/jp/code.yaml b/yamls/jp/code.yaml index 5dfc938..1ad1abb 100644 --- a/yamls/jp/code.yaml +++ b/yamls/jp/code.yaml @@ -71,7 +71,7 @@ - [0x6DE300, asm, code/6DE300] - [0x6E08E0, asm, code/m_random_field] - [0x6E0F50, c, code/m_rcp] - - [0x6E2300, asm, code/6E2300] + - [0x6E2300, c, code/m_room_type] - [0x6E30B0, c, code/m_scene_ftr] - [0x6E3240, asm, code/6E3240] - [0x6E6C90, c, code/m_start_data_init] @@ -173,7 +173,8 @@ - [0x7302C0, .data, code/m_private] - [0x730320, data, code/730320] - [0x7307D0, .data, code/m_rcp] - - [0x730B60, data, code/730B60] + - [0x730B60, .data, code/m_room_type] + - [0x731740, data, code/731740] - [0x731940, .data, code/m_start_data_init] - [0x731980, .data, code/m_submenu] - [0x731A20, .data, code/m_scene] @@ -240,7 +241,7 @@ - [0x73B130, .rodata, code/m_private] - [0x73B210, rodata, code/73B210] - [0x73B250, rodata, code/73B250] - - [0x73B360, rodata, code/73B360] + - [0x73B360, .rodata, code/m_room_type] - [0x73B3E0, .rodata, code/m_scene_ftr] - [0x73B400, rodata, code/m_shop] - [0x73B580, .rodata, code/m_string] @@ -302,7 +303,7 @@ - { start: 0x73F4D0, type: .bss, vram: 0x801439A0, name: code/m_private } - { start: 0x73F4D0, type: bss, vram: 0x80144620, name: code/80144620 } - { start: 0x73F4D0, type: .bss, vram: 0x80144650, name: code/m_rcp } - - { start: 0x73F4D0, type: bss, vram: 0x80144660, name: code/80144660 } + - { start: 0x73F4D0, type: .bss, vram: 0x80144660, name: code/m_room_type } - { start: 0x73F4D0, type: .bss, vram: 0x80144670, name: code/m_submenu } - { start: 0x73F4D0, type: bss, vram: 0x80144690, name: code/80144690 } - { start: 0x73F4D0, type: .bss, vram: 0x80144D20, name: code/audioMgr } |
