diff --git a/config/rel_disasm_overrides.yml b/config/rel_disasm_overrides.yml index a5c0ca4e..bd2bbc05 100644 --- a/config/rel_disasm_overrides.yml +++ b/config/rel_disasm_overrides.yml @@ -19,3 +19,6 @@ symbol_aligns: 0x80F85720: 32 # dataobject/obj/.data/grd_player_select_evw_anime_1 (TU is aligned to 32) 0x80FACE20: 32 # dataobject/obj/.data/rom_shop4_1_floor_tex_pal 0x8074B840: 32 # dataobject/obj/.data/mFM_obj_a_01_flower_pal + 0x808DF220: 32 # obj_otiba01_pal + 0x809C8FA0: 32 # ef_hanabira01_0 + 0x80C0CBA0: 32 # crw_anrium1_pal \ No newline at end of file diff --git a/config/rel_slices.yml b/config/rel_slices.yml index 0ac970a7..a3e9cd79 100644 --- a/config/rel_slices.yml +++ b/config/rel_slices.yml @@ -1282,6 +1282,14 @@ data/npc/model/mdl/wls_1.c: .data: [0x806E9AC0, 0x806EBFF0] data/npc/model/tex/wls_1.c: .data: [0x806EC000, 0x806ECFA0] +data/scene/BG_TEST01.c: + .data: [0x806ECFA0, 0x806ECFF0] +data/scene/BG_TEST01_XLU.c: + .data: [0x806ECFF0, 0x806ED040] +data/scene/broker_shop.c: + .data: [0x806ED040, 0x806ED0C0] +data/scene/buggy.c: + .data: [0x806ED0C0, 0x806ED128] data/npc/model/mdl/bea_1.c: .data: [0x806EF078, 0x806F1030] data/npc/model/tex/bea_1.c: @@ -1527,6 +1535,8 @@ data/npc/model/tex/duk_9.c: .data: [0x808433A0, 0x808445C0] data/npc/model/tex/duk_10.c: .data: [0x808445C0, 0x808457E0] +data/scene/event_notification.c: + .data: [0x808457E0, 0x80845830] data/npc/model/mdl/elp_1.c: .data: [0x80845830, 0x808479A0] data/npc/model/tex/elp_1.c: @@ -1543,6 +1553,10 @@ data/npc/model/tex/elp_6.c: .data: [0x8084D440, 0x8084E660] data/npc/model/tex/elp_7.c: .data: [0x8084E660, 0x8084F880] +data/scene/fg_tool_in.c: + .data: [0x8084F880, 0x8084F940] +data/scene/field_tool_field.c: + .data: [0x8084F940, 0x8084F9B0] data/npc/model/mdl/flg_1.c: .data: [0x80857D80, 0x808597E0] data/npc/model/tex/flg_1.c: @@ -1665,6 +1679,8 @@ data/npc/model/tex/xsq_1.c: .data: [0x808BE240, 0x808BF660] data/item/item_name.c: .data: [0x808BF660, 0x808C8830] +data/scene/kamakura.c: + .data: [0x808C8830, 0x808C88A8] data/npc/model/mdl/boa_1.c: .data: [0x808C88A8, 0x808CAF48] data/npc/model/tex/boa_1.c: @@ -1701,6 +1717,8 @@ data/npc/model/tex/kal_5.c: .data: [0x808DCC60, 0x808DDF00] data/npc/model/tex/kal_6.c: .data: [0x808DDF00, 0x808DF1A0] +data/scene/lighthouse.c: + .data: [0x808DF1A0, 0x808DF220] data/npc/model/mdl/lon_1.c: .data: [0x808E1A10, 0x808E3F78] data/npc/model/tex/lon_1.c: @@ -1711,6 +1729,16 @@ data/npc/model/tex/lon_3.c: .data: [0x808E6540, 0x808E7820] data/npc/model/tex/lon_4.c: .data: [0x808E7820, 0x808E8B00] +data/scene/museum_entrance.c: + .data: [0x808E8B00, 0x808E8C08] +data/scene/museum_fish.c: + .data: [0x808E8C08, 0x808E8CB0] +data/scene/museum_fossil.c: + .data: [0x808E8CB0, 0x808E8D30] +data/scene/museum_insect.c: + .data: [0x808E8D30, 0x808E8DF0] +data/scene/museum_picture.c: + .data: [0x808E8DF0, 0x808E8EA0] data/npc/model/mdl/mos_1.c: .data: [0x808EAEA0, 0x808ECAC8] data/npc/model/tex/mos_1.c: @@ -1751,6 +1779,12 @@ data/npc/model/tex/mus_10.c: .data: [0x809033E0, 0x80904600] data/model/mural/obj_mural.c: .data: [0x80904600, 0x80904700] +data/scene/NEEDLEWORK.c: + .data: [0x80911C68, 0x80911D20] +data/scene/npc_room01.c: + .data: [0x80911D20, 0x80911DC8] +data/scene/npc_room_island.c: + .data: [0x80911DC8, 0x80911E70] data/npc/model/mdl/hgh_1.c: .data: [0x80911E70, 0x80914610] data/npc/model/tex/hgh_1.c: @@ -1781,6 +1815,38 @@ data/npc/model/tex/ost_3.c: .data: [0x8097EBC0, 0x8097F920] data/npc/model/tex/ost_4.c: .data: [0x8097F920, 0x80980680] +data/scene/player_room_island.c: + .data: [0x80980680, 0x80980728] +data/scene/player_room_ll1.c: + .data: [0x80980728, 0x809807E8] +data/scene/player_room_ll2.c: + .data: [0x809807E8, 0x80980890] +data/scene/player_room_l.c: + .data: [0x80980890, 0x80980938] +data/scene/player_room_m.c: + .data: [0x80980938, 0x809809E0] +data/scene/player_room_s.c: + .data: [0x809809E0, 0x80980A88] +data/scene/PLAYER_SELECT2.c: + .data: [0x80980A88, 0x80980AD0] +data/scene/PLAYER_SELECT3.c: + .data: [0x80980AD0, 0x80980B18] +data/scene/PLAYER_SELECT4.c: + .data: [0x80980B18, 0x80980B60] +data/scene/player_select.c: + .data: [0x80980B60, 0x80980BA8] +data/scene/police_box.c: + .data: [0x80980BA8, 0x80980C48] +data/scene/post_office.c: + .data: [0x80980C48, 0x80980D00] +data/scene/p_room_bm_ll1.c: + .data: [0x80980D00, 0x80980D80] +data/scene/p_room_bm_l.c: + .data: [0x80980D80, 0x80980E00] +data/scene/p_room_bm_m.c: + .data: [0x80980E00, 0x80980E80] +data/scene/p_room_bm_s.c: + .data: [0x80980E80, 0x80980F00] data/npc/model/mdl/pgn_1.c: .data: [0x80980F28, 0x80983140] data/npc/model/tex/pgn_1.c: @@ -1881,6 +1947,22 @@ data/npc/model/tex/rhn_3.c: .data: [0x809BEF40, 0x809C0160] data/npc/model/tex/rhn_4.c: .data: [0x809C0160, 0x809C1380] +data/scene/shop01.c: + .data: [0x809C8B98, 0x809C8C20] +data/scene/shop02.c: + .data: [0x809C8C20, 0x809C8CA8] +data/scene/shop03.c: + .data: [0x809C8CA8, 0x809C8D28] +data/scene/shop04_1f.c: + .data: [0x809C8D28, 0x809C8DB0] +data/scene/shop04_2f.c: + .data: [0x809C8DB0, 0x809C8E38] +data/scene/start_demo1.c: + .data: [0x809C8E38, 0x809C8EA8] +data/scene/start_demo2.c: + .data: [0x809C8EA8, 0x809C8F18] +data/scene/start_demo3.c: + .data: [0x809C8F18, 0x809C8FA0] data/npc/model/mdl/snt_1.c: .data: [0x809C9148, 0x809CAD30] data/npc/model/tex/snt_1.c: @@ -1947,6 +2029,33 @@ data/npc/model/mdl/rcs_1.c: .data: [0x80C09AC0, 0x80C0BBA8] data/npc/model/tex/rcs_1.c: .data: [0x80C0BBC0, 0x80C0C960] +data/scene/tent.c: + .data: [0x80C0C960, 0x80C0C9D8] + +data/scene/test_fd_npc_land.c: + .data: [0x80C0C9D8, 0x80C0CA68] +data/scene/water_test.c: + .data: [0x80C0CA68, 0x80C0CAE8] +data/scene/test_step01.c: + .data: [0x80C0CAE8, 0x80C0CB18] +data/scene/title_demo.c: + .data: [0x80C0CB18, 0x80C0CBA0] +# acres +# data/field/bg/acre/grd_post_office/grd_post_office.c: + # .data: [0x80C5DBA0, 0x80C63408] + +# scenes +data/scene/test01.c: + .data: [0x80C2C800, 0x80C2C888] +data/scene/test02.c: + .data: [0x80C2C888, 0x80C2C8D8] +data/scene/test03.c: + .data: [0x80C2C8D8, 0x80C2C960] +data/scene/test04.c: + .data: [0x80C2C960, 0x80C2C9B0] +data/scene/test05.c: + .data: [0x80C2C9B0, 0x80C2C9F8] + data/npc/model/mdl/tig_1.c: .data: [0x80C2C9F8, 0x80C2EE88] data/npc/model/tex/tig_1.c: @@ -2797,9 +2906,6 @@ data/field/bg/acre/grd_s_t_st1_3/grd_s_t_st1_3.c: .data: [0x80DD5280, 0x80DD61A0] data/field/bg/acre/rom_toudai/rom_toudai.c: .data: [0x80F08520, 0x80F0B020] -# acres -# data/field/bg/acre/grd_post_office/grd_post_office.c: - # .data: [0x80C5DBA0, 0x80C63408] # map submenu data/submenu/map/kan_tizu.c: diff --git a/include/m_actor.h b/include/m_actor.h index a1965148..7e7fb5b1 100644 --- a/include/m_actor.h +++ b/include/m_actor.h @@ -1152,20 +1152,20 @@ struct actor_s { #define mActor_NONE_PROC1 ((mActor_proc)none_proc1) typedef struct actor_list_s { - int num_actors; - ACTOR* actor; + /* 0x00 */ int num_actors; + /* 0x04 */ ACTOR* actor; } Actor_list; typedef struct actor_info_s { - int total_num; - Actor_list list[ACTOR_PART_NUM]; + /* 0x00 */ int total_num; + /* 0x04 */ Actor_list list[ACTOR_PART_NUM]; } Actor_info; typedef struct actor_data_s { - s16 profile; - s_xyz position; - s_xyz rotation; - s16 arg; + /* 0x00 */ s16 profile; + /* 0x02 */ s_xyz position; + /* 0x08 */ s_xyz rotation; + /* 0x0E */ s16 arg; } Actor_data; extern void Actor_world_to_eye(ACTOR* actor, f32 eye_height); diff --git a/include/m_scene.h b/include/m_scene.h index 5d2a41c1..2fe17195 100644 --- a/include/m_scene.h +++ b/include/m_scene.h @@ -26,15 +26,33 @@ enum { mSc_DIRECT_NUM }; +enum { + mSc_ITEM_TYPE_BGITEM, + mSc_ITEM_TYPE_DUMMY, + mSc_ITEM_TYPE_BGPOLICEITEM, + mSc_ITEM_TYPE_BGPOSTITEM, + + mSc_ITEM_TYPE_NUM +}; + +enum { + mSc_ROOM_TYPE_OUTDOORS, + mSc_ROOM_TYPE_MY_ROOM, + mSc_ROOM_TYPE_NPC_ROOM, + mSc_ROOM_TYPE_MISC_ROOM, + + mSc_ROOM_TYPE_NUM +}; + typedef struct door_data_s { - int next_scene_id; - u8 exit_orientation; - u8 exit_type; // 0 = normal, 1 = restart game? - u16 extra_data; - s_xyz exit_position; - mActor_name_t door_actor_name; - u8 wipe_type; - u8 pad[3]; // possibly necessary due to struct copy + /* 0x00 */ int next_scene_id; + /* 0x04 */ u8 exit_orientation; + /* 0x05 */ u8 exit_type; // 0 = normal, 1 = restart game? + /* 0x06 */ u16 extra_data; + /* 0x08 */ s_xyz exit_position; + /* 0x0E */ mActor_name_t door_actor_name; + /* 0x10 */ u8 wipe_type; + /* 0x11 */ u8 pad[3]; // possibly necessary due to struct copy } Door_data_c; #define mSc_OBJECT_BANK_NUM 70 @@ -91,45 +109,49 @@ enum { }; typedef struct { - u8 type; - u8 num_actors; - Actor_data* data_p; + /* 0x00 */ u8 type; + /* 0x01 */ u8 num_actors; + /* 0x04 */ Actor_data* data_p; } Scene_Word_Data_Actor_c; typedef struct { - u8 type; - u8 num_ctrl_actors; - s16* ctrl_actor_profile_p; + /* 0x00 */ u8 type; + /* 0x01 */ u8 num_ctrl_actors; + /* 0x04 */ s16* ctrl_actor_profile_p; } Scene_Word_Data_Ctrl_Actor_c; typedef struct { - u8 type; - u8 num_banks; - s16* banks_p; + /* 0x00 */ u8 type; + /* 0x01 */ u8 num_banks; + /* 0x04 */ s16* banks_p; } Scene_Word_Data_Object_Bank_c; typedef struct { - u8 type; - u8 num_doors; - Door_data_c* door_data_p; + /* 0x00 */ u8 type; + /* 0x01 */ u8 num_doors; + /* 0x04 */ Door_data_c* door_data_p; } Scene_Word_Data_Door_Data_c; typedef struct { - u8 type; - u8 item_type; - u8 bg_num; - u16 bg_disp_size; - u8 room_type; - u8 draw_type; + /* 0x00 */ u8 type; + /* 0x01 */ u8 item_type; + /* 0x02 */ u8 bg_num; + /* 0x04 */ u16 bg_disp_size; + /* 0x06 */ u8 room_type; + /* 0x07 */ u8 draw_type; } Scene_Word_Data_FieldCt_c; typedef struct { - u8 type; - u8 arrange_ftr_num; + /* 0x00 */ u8 type; + /* 0x01 */ u8 arrange_ftr_num; } Scene_Word_Data_ArrangeFurniture_ct_c; typedef struct { - u8 type; + /* 0x00 */ u8 type; + /* 0x01 */ u8 param0; + /* 0x02 */ u8 param1; + /* 0x03 */ u8 param2; + /* 0x04 */ u32 param3; } Scene_Word_Data_Misc_c; typedef union scene_word_u { @@ -142,9 +164,68 @@ typedef union scene_word_u { Scene_Word_Data_ArrangeFurniture_ct_c arrange_ftr_ct; } Scene_Word_u; +#define mSc_DATA_PLAYER(actor_data_p) \ + { \ + mSc_SCENE_DATA_TYPE_PLAYER_PTR, 1, 0, 0, (u32)actor_data_p, \ + } + +#define mSc_DATA_CTRL_ACTORS(n_actors, ctrl_actor_list_p) \ + { \ + mSc_SCENE_DATA_TYPE_CTRL_ACTOR_PTR, n_actors, 0, 0, (u32)ctrl_actor_list_p, \ + } + +#define mSc_DATA_ACTORS(n_actors, actor_data_p) \ + { \ + mSc_SCENE_DATA_TYPE_ACTOR_PTR, n_actors, 0, 0, (u32)actor_data_p, \ + } + +#define mSc_DATA_OBJ_BANK(n_banks, bank_list_p) \ + { \ + mSc_SCENE_DATA_TYPE_OBJECT_EXCHANGE_BANK_PTR, n_banks, 0, 0, (u32)bank_list_p, \ + } + +#define mSc_DATA_DOOR_DATA(n_doors, door_data_list_p) \ + { \ + mSc_SCENE_DATA_TYPE_DOOR_DATA_PTR, n_doors, 0, 0, (u32)door_data_list_p, \ + } + +#define mSc_DATA_FIELDCT(item_type, bg_num, bg_disp_size, room_type, draw_type) \ + { \ + mSc_SCENE_DATA_TYPE_FIELD_CT, \ + item_type, \ + bg_num, \ + 0, \ + ((((u32)bg_disp_size & 0xFFFF) << 16) | ((room_type & 0xFF) << 8) | (draw_type & 0xFF)), \ + } + +#define mSc_DATA_MY_ROOM_CT() \ + { \ + mSc_SCENE_DATA_TYPE_MY_ROOM_CT, 0, 0, 0, 0, \ + } + +#define mSc_DATA_ARRANGE_ROOM_CT() \ + { \ + mSc_SCENE_DATA_TYPE_ARRANGE_ROOM_CT, 0, 0, 0, 0, \ + } + +#define mSc_DATA_ARRANGE_FTR(ftr_num) \ + { \ + mSc_SCENE_DATA_TYPE_ARRANGE_FURNITURE_CT, ftr_num, 0, 0, 0, \ + } + +#define mSc_DATA_SOUND(p0, p1) \ + { \ + mSc_SCENE_DATA_TYPE_SOUND, p0, p1, 0, 0, \ + } + +#define mSc_DATA_END() \ + { \ + mSc_SCENE_DATA_TYPE_END, 0, 0, 0, 0, \ + } + typedef struct door_info_s { - u8 num_doors; - Door_data_c* door_data_p; + /* 0x00 */ u8 num_doors; + /* 0x04 */ Door_data_c* door_data_p; } Door_info_c; extern Scene_Word_u test01_info[]; diff --git a/src/data/scene/BG_TEST01.c b/src/data/scene/BG_TEST01.c new file mode 100644 index 00000000..d020614f --- /dev/null +++ b/src/data/scene/BG_TEST01.c @@ -0,0 +1,36 @@ +#include "m_scene.h" + +extern Actor_data BG_TEST01_player_data[]; +extern s16 BG_TEST01_ctrl_actor_data[]; + +extern Scene_Word_u BG_TEST01_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(BG_TEST01_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(11, BG_TEST01_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x5000, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data BG_TEST01_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 BG_TEST01_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC, // 1 + mAc_PROFILE_STRUCTURE, // 2 + mAc_PROFILE_INSECT, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_SHOP_LEVEL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 +}; diff --git a/src/data/scene/BG_TEST01_XLU.c b/src/data/scene/BG_TEST01_XLU.c new file mode 100644 index 00000000..3970d488 --- /dev/null +++ b/src/data/scene/BG_TEST01_XLU.c @@ -0,0 +1,36 @@ +#include "m_scene.h" + +extern Actor_data BG_TEST01_XLU_player_data[]; +extern s16 BG_TEST01_XLU_ctrl_actor_data[]; + +extern Scene_Word_u BG_TEST01_XLU_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(BG_TEST01_XLU_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(11, BG_TEST01_XLU_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x7800, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data BG_TEST01_XLU_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 BG_TEST01_XLU_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC, // 1 + mAc_PROFILE_STRUCTURE, // 2 + mAc_PROFILE_INSECT, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_SHOP_LEVEL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 +}; diff --git a/src/data/scene/NEEDLEWORK.c b/src/data/scene/NEEDLEWORK.c new file mode 100644 index 00000000..1e2fe49d --- /dev/null +++ b/src/data/scene/NEEDLEWORK.c @@ -0,0 +1,82 @@ +#include "m_scene.h" + +extern Door_data_c NEEDLEWORK_door_data[]; +extern Actor_data NEEDLEWORK_player_data[]; +extern s16 NEEDLEWORK_ctrl_actor_data[]; +extern Actor_data NEEDLEWORK_actor_data[]; +extern s16 NEEDLEWORK_object_bank[]; + +extern Scene_Word_u NEEDLEWORK_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, NEEDLEWORK_door_data), // Door data + mSc_DATA_PLAYER(NEEDLEWORK_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(1), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, NEEDLEWORK_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(3, NEEDLEWORK_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, NEEDLEWORK_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data NEEDLEWORK_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 180, 0, 250 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 NEEDLEWORK_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_HOUSE_CLOCK, // 10 + mAc_PROFILE_NEEDLEWORK_INDOOR, // 11 +}; + +extern Actor_data NEEDLEWORK_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 40, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 360, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, + { + mAc_PROFILE_MISIN, // profile + { 360, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 NEEDLEWORK_object_bank[] = { + ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 +}; + +extern Door_data_c NEEDLEWORK_door_data[] = { + { + SCENE_MY_ROOM_BASEMENT_S, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 300, 0, 380 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/PLAYER_SELECT2.c b/src/data/scene/PLAYER_SELECT2.c new file mode 100644 index 00000000..835cf1ce --- /dev/null +++ b/src/data/scene/PLAYER_SELECT2.c @@ -0,0 +1,29 @@ +#include "m_scene.h" + +extern Actor_data PLAYER_SELECT2_player_data[]; +extern s16 PLAYER_SELECT2_ctrl_actor_data[]; + +extern Scene_Word_u PLAYER_SELECT2_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(PLAYER_SELECT2_player_data), // Player Data + mSc_DATA_ARRANGE_ROOM_CT(), // Arrange_room construct + mSc_DATA_CTRL_ACTORS(3, PLAYER_SELECT2_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_PLAYER_SELECT), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data PLAYER_SELECT2_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 100, 0, 120 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 PLAYER_SELECT2_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_EFFECT_CONTROL, // 2 +}; diff --git a/src/data/scene/PLAYER_SELECT3.c b/src/data/scene/PLAYER_SELECT3.c new file mode 100644 index 00000000..0d3b059e --- /dev/null +++ b/src/data/scene/PLAYER_SELECT3.c @@ -0,0 +1,29 @@ +#include "m_scene.h" + +extern Actor_data PLAYER_SELECT3_player_data[]; +extern s16 PLAYER_SELECT3_ctrl_actor_data[]; + +extern Scene_Word_u PLAYER_SELECT3_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(PLAYER_SELECT3_player_data), // Player Data + mSc_DATA_ARRANGE_ROOM_CT(), // Arrange_room construct + mSc_DATA_CTRL_ACTORS(3, PLAYER_SELECT3_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_PLAYER_SELECT), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data PLAYER_SELECT3_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 100, 0, 120 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 PLAYER_SELECT3_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_EFFECT_CONTROL, // 2 +}; diff --git a/src/data/scene/PLAYER_SELECT4.c b/src/data/scene/PLAYER_SELECT4.c new file mode 100644 index 00000000..bfc53747 --- /dev/null +++ b/src/data/scene/PLAYER_SELECT4.c @@ -0,0 +1,29 @@ +#include "m_scene.h" + +extern Actor_data PLAYER_SELECT4_player_data[]; +extern s16 PLAYER_SELECT4_ctrl_actor_data[]; + +extern Scene_Word_u PLAYER_SELECT4_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(PLAYER_SELECT4_player_data), // Player Data + mSc_DATA_ARRANGE_ROOM_CT(), // Arrange_room construct + mSc_DATA_CTRL_ACTORS(3, PLAYER_SELECT4_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_PLAYER_SELECT), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data PLAYER_SELECT4_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 100, 0, 120 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 PLAYER_SELECT4_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_EFFECT_CONTROL, // 2 +}; diff --git a/src/data/scene/broker_shop.c b/src/data/scene/broker_shop.c new file mode 100644 index 00000000..3dc254ef --- /dev/null +++ b/src/data/scene/broker_shop.c @@ -0,0 +1,53 @@ +#include "m_scene.h" + +extern Door_data_c BROKER_SHOP_door_data[]; +extern Actor_data BROKER_SHOP_player_data[]; +extern s16 BROKER_SHOP_ctrl_actor_data[]; + +extern Scene_Word_u broker_shop_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, BROKER_SHOP_door_data), // Door data + mSc_DATA_PLAYER(BROKER_SHOP_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(6), // Arrange furniture params + mSc_DATA_ARRANGE_ROOM_CT(), // Arrange_room construct + mSc_DATA_CTRL_ACTORS(11, BROKER_SHOP_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data BROKER_SHOP_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 100, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 BROKER_SHOP_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_TOOLS, // 2 + mAc_PROFILE_HANDOVERITEM, // 3 + mAc_PROFILE_EFFECT_CONTROL, // 4 + mAc_PROFILE_SHOP_LEVEL, // 5 + mAc_PROFILE_QUEST_MANAGER, // 6 + mAc_PROFILE_EVENT_MANAGER, // 7 + mAc_PROFILE_WEATHER, // 8 + mAc_PROFILE_BROKER_DESIGN, // 9 + mAc_PROFILE_MY_ROOM, // 10 +}; + +extern Door_data_c BROKER_SHOP_door_data[] = { + { + SCENE_TEST2, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 40, 0, 1730 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/buggy.c b/src/data/scene/buggy.c new file mode 100644 index 00000000..e99360f6 --- /dev/null +++ b/src/data/scene/buggy.c @@ -0,0 +1,48 @@ +#include "m_scene.h" + +extern Door_data_c BUGGY_door_data[]; +extern Actor_data BUGGY_player_data[]; +extern s16 BUGGY_ctrl_actor_data[]; + +extern Scene_Word_u buggy_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, BUGGY_door_data), // Door data + mSc_DATA_PLAYER(BUGGY_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(8, BUGGY_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data BUGGY_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 260 }, // position + { 0, -32768, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 BUGGY_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_TOOLS, // 2 + mAc_PROFILE_EFFECT_CONTROL, // 3 + mAc_PROFILE_SHOP_LEVEL, // 4 + mAc_PROFILE_QUEST_MANAGER, // 5 + mAc_PROFILE_EVENT_MANAGER, // 6 + mAc_PROFILE_WEATHER, // 7 +}; + +extern Door_data_c BUGGY_door_data[] = { + { + SCENE_FG, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 1600, 0, 740 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/event_notification.c b/src/data/scene/event_notification.c new file mode 100644 index 00000000..abb818a7 --- /dev/null +++ b/src/data/scene/event_notification.c @@ -0,0 +1,37 @@ +#include "m_scene.h" + +extern Actor_data EVENT_NOTIFICATION_player_data[]; +extern s16 EVENT_NOTIFICATION_ctrl_actor_data[]; + +extern Scene_Word_u event_notification_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(EVENT_NOTIFICATION_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(12, EVENT_NOTIFICATION_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x2800, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data EVENT_NOTIFICATION_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 940, 0, 940 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 EVENT_NOTIFICATION_ctrl_actor_data[] = { + mAc_PROFILE_EFFECTBG, // 0 + mAc_PROFILE_BIRTH_CONTROL, // 1 + mAc_PROFILE_STRUCTURE, // 2 + mAc_PROFILE_INSECT, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_SHOP_LEVEL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 + mAc_PROFILE_SET_NPC_MANAGER, // 11 +}; diff --git a/src/data/scene/fg_tool_in.c b/src/data/scene/fg_tool_in.c new file mode 100644 index 00000000..5ad50634 --- /dev/null +++ b/src/data/scene/fg_tool_in.c @@ -0,0 +1,80 @@ +#include "m_scene.h" + +extern Door_data_c FG_TOOL_IN_door_data[]; +extern Actor_data FG_TOOL_IN_player_data[]; +extern s16 FG_TOOL_IN_ctrl_actor_data[]; +extern Actor_data FG_TOOL_IN_actor_data[]; +extern s16 FG_TOOL_IN_object_bank[]; + +extern Scene_Word_u fg_tool_in_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, FG_TOOL_IN_door_data), // Door data + mSc_DATA_PLAYER(FG_TOOL_IN_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(30), // Arrange furniture params + mSc_DATA_ARRANGE_ROOM_CT(), // Arrange_room construct + mSc_DATA_CTRL_ACTORS(9, FG_TOOL_IN_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(3, FG_TOOL_IN_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, FG_TOOL_IN_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data FG_TOOL_IN_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 260 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 FG_TOOL_IN_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_WEATHER, // 6 + mAc_PROFILE_ARRANGE_ROOM, // 7 + mAc_PROFILE_MY_ROOM, // 8 +}; + +extern Actor_data FG_TOOL_IN_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 40, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 282, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, + { + mAc_PROFILE_LAMP_LIGHT, // profile + { 0, 0, 0 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, +}; + +extern s16 FG_TOOL_IN_object_bank[] = { + ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 +}; + +extern Door_data_c FG_TOOL_IN_door_data[] = { + { + SCENE_NPC_TEST, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 400, 0, 460 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/field_tool_field.c b/src/data/scene/field_tool_field.c new file mode 100644 index 00000000..76aad6ae --- /dev/null +++ b/src/data/scene/field_tool_field.c @@ -0,0 +1,51 @@ +#include "m_scene.h" + +extern Actor_data FIELD_TOOL_FIELD_player_data[]; +extern s16 FIELD_TOOL_FIELD_ctrl_actor_data[]; +extern Actor_data FIELD_TOOL_FIELD_actor_data[]; +extern s16 FIELD_TOOL_FIELD_object_bank[]; + +extern Scene_Word_u field_tool_field_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(FIELD_TOOL_FIELD_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(9, FIELD_TOOL_FIELD_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(1, FIELD_TOOL_FIELD_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, FIELD_TOOL_FIELD_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x2800, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data FIELD_TOOL_FIELD_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 2240, 0, 1600 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 FIELD_TOOL_FIELD_ctrl_actor_data[] = { + mAc_PROFILE_EFFECTBG, // 0 + mAc_PROFILE_BIRTH_CONTROL, // 1 + mAc_PROFILE_NPC, // 2 + mAc_PROFILE_STRUCTURE, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_WEATHER, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 +}; + +extern Actor_data FIELD_TOOL_FIELD_actor_data[] = { + { + mAc_PROFILE_UKI, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, +}; + +extern s16 FIELD_TOOL_FIELD_object_bank[] = { + ACTOR_OBJ_BANK_48, // 0 +}; diff --git a/src/data/scene/kamakura.c b/src/data/scene/kamakura.c new file mode 100644 index 00000000..2aa9dbde --- /dev/null +++ b/src/data/scene/kamakura.c @@ -0,0 +1,52 @@ +#include "m_scene.h" + +extern Door_data_c KAMAKURA_door_data[]; +extern Actor_data KAMAKURA_player_data[]; +extern s16 KAMAKURA_ctrl_actor_data[]; + +extern Scene_Word_u kamakura_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, KAMAKURA_door_data), // Door data + mSc_DATA_PLAYER(KAMAKURA_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(3), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(11, KAMAKURA_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data KAMAKURA_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 260 }, // position + { 0, -32768, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 KAMAKURA_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_MY_ROOM, // 1 + mAc_PROFILE_NPC2, // 2 + mAc_PROFILE_INSECT, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_SHOP_LEVEL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 +}; + +extern Door_data_c KAMAKURA_door_data[] = { + { + SCENE_FG, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 1600, 0, 740 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/lighthouse.c b/src/data/scene/lighthouse.c new file mode 100644 index 00000000..90f53f55 --- /dev/null +++ b/src/data/scene/lighthouse.c @@ -0,0 +1,53 @@ +#include "m_scene.h" + +extern Door_data_c LIGHTHOUSE_door_data[]; +extern Actor_data LIGHTHOUSE_player_data[]; +extern s16 LIGHTHOUSE_ctrl_actor_data[]; + +extern Scene_Word_u lighthouse_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, LIGHTHOUSE_door_data), // Door data + mSc_DATA_PLAYER(LIGHTHOUSE_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(30), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, LIGHTHOUSE_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_NPC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data LIGHTHOUSE_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 120, 0, 100 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 LIGHTHOUSE_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_LIGHTHOUSE_SWITCH, // 11 +}; + +extern Door_data_c LIGHTHOUSE_door_data[] = { + { + SCENE_NPC_TEST, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 400, 0, 460 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/museum_entrance.c b/src/data/scene/museum_entrance.c new file mode 100644 index 00000000..dffb8479 --- /dev/null +++ b/src/data/scene/museum_entrance.c @@ -0,0 +1,118 @@ +#include "m_scene.h" + +extern Door_data_c MUSEUM_ENTRANCE_door_data[]; +extern Actor_data MUSEUM_ENTRANCE_player_data[]; +extern s16 MUSEUM_ENTRANCE_ctrl_actor_data[]; +extern Actor_data MUSEUM_ENTRANCE_actor_data[]; +extern s16 MUSEUM_ENTRANCE_object_bank[]; + +extern Scene_Word_u museum_entrance_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(4, MUSEUM_ENTRANCE_door_data), // Door data + mSc_DATA_PLAYER(MUSEUM_ENTRANCE_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(1), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, MUSEUM_ENTRANCE_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(4, MUSEUM_ENTRANCE_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, MUSEUM_ENTRANCE_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data MUSEUM_ENTRANCE_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 240, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 MUSEUM_ENTRANCE_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_HOUSE_CLOCK, // 11 +}; + +extern Actor_data MUSEUM_ENTRANCE_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE_MUSEUM, // profile + { 123, -270, 180 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE_MUSEUM, // profile + { 360, -270, 180 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE_MUSEUM, // profile + { 123, -270, 380 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE_MUSEUM, // profile + { 360, -270, 380 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 MUSEUM_ENTRANCE_object_bank[] = { + ACTOR_OBJ_BANK_EF_MUSEUM, // 0 +}; + +extern Door_data_c MUSEUM_ENTRANCE_door_data[] = { + { + SCENE_MUSEUM_ROOM_PAINTING, // scene + 4, // exit orientation + 0, // exit type + 0, // arg + { 280, 0, 480 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, + { + SCENE_MUSEUM_ROOM_FOSSIL, // scene + 4, // exit orientation + 0, // exit type + 0, // arg + { 280, 0, 480 }, // exit position + 0x4001, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, + { + SCENE_MUSEUM_ROOM_INSECT, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 520, 0, 560 }, // exit position + 0x4002, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, + { + SCENE_MUSEUM_ROOM_FISH, // scene + 2, // exit orientation + 0, // exit type + 0, // arg + { 120, 0, 560 }, // exit position + 0x4003, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/museum_fish.c b/src/data/scene/museum_fish.c new file mode 100644 index 00000000..05ea6580 --- /dev/null +++ b/src/data/scene/museum_fish.c @@ -0,0 +1,75 @@ +#include "m_scene.h" + +extern Door_data_c MUSEUM_FISH_door_data[]; +extern Actor_data MUSEUM_FISH_player_data[]; +extern s16 MUSEUM_FISH_ctrl_actor_data[]; +extern Actor_data MUSEUM_FISH_actor_data[]; +extern s16 MUSEUM_FISH_object_bank[]; + +extern Scene_Word_u museum_fish_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, MUSEUM_FISH_door_data), // Door data + mSc_DATA_PLAYER(MUSEUM_FISH_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(1), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(11, MUSEUM_FISH_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, MUSEUM_FISH_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, MUSEUM_FISH_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data MUSEUM_FISH_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 120, 0, 150 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 MUSEUM_FISH_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 +}; + +extern Actor_data MUSEUM_FISH_actor_data[] = { + { + mAc_PROFILE_MUSEUM_FISH, // profile + { 280, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, + { + mAc_PROFILE_MUSEUM_INDOOR, // profile + { 280, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 MUSEUM_FISH_object_bank[] = { + ACTOR_OBJ_BANK_407, // 0 +}; + +extern Door_data_c MUSEUM_FISH_door_data[] = { + { + SCENE_MUSEUM_ENTRANCE, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 360, 0, 280 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/museum_fossil.c b/src/data/scene/museum_fossil.c new file mode 100644 index 00000000..ce484e2b --- /dev/null +++ b/src/data/scene/museum_fossil.c @@ -0,0 +1,59 @@ +#include "m_scene.h" + +extern Door_data_c MUSEUM_FOSSIL_door_data[]; +extern Actor_data MUSEUM_FOSSIL_player_data[]; +extern s16 MUSEUM_FOSSIL_ctrl_actor_data[]; +extern s16 MUSEUM_FOSSIL_object_bank[]; + +extern Scene_Word_u museum_fossil_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, MUSEUM_FOSSIL_door_data), // Door data + mSc_DATA_PLAYER(MUSEUM_FOSSIL_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(25), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, MUSEUM_FOSSIL_ctrl_actor_data), // Control actors + mSc_DATA_OBJ_BANK(1, MUSEUM_FOSSIL_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data MUSEUM_FOSSIL_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 120, 0, 150 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 MUSEUM_FOSSIL_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MUSEUM_FOSSIL, // 11 +}; + +extern s16 MUSEUM_FOSSIL_object_bank[] = { + ACTOR_OBJ_BANK_369, // 0 +}; + +extern Door_data_c MUSEUM_FOSSIL_door_data[] = { + { + SCENE_MUSEUM_ENTRANCE, // scene + 0, // exit orientation + 0, // exit type + 0, // arg + { 320, 0, 120 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/museum_insect.c b/src/data/scene/museum_insect.c new file mode 100644 index 00000000..d478f30f --- /dev/null +++ b/src/data/scene/museum_insect.c @@ -0,0 +1,87 @@ +#include "m_scene.h" + +extern Door_data_c MUSEUM_INSECT_door_data[]; +extern Actor_data MUSEUM_INSECT_player_data[]; +extern s16 MUSEUM_INSECT_ctrl_actor_data[]; +extern Actor_data MUSEUM_INSECT_actor_data[]; +extern s16 MUSEUM_INSECT_object_bank[]; + +extern Scene_Word_u museum_insect_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, MUSEUM_INSECT_door_data), // Door data + mSc_DATA_PLAYER(MUSEUM_INSECT_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(11, MUSEUM_INSECT_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(4, MUSEUM_INSECT_actor_data), // Player Data + mSc_DATA_OBJ_BANK(2, MUSEUM_INSECT_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xB000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data MUSEUM_INSECT_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 120, 0, 150 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 MUSEUM_INSECT_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 +}; + +extern Actor_data MUSEUM_INSECT_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE_MINSECT, // profile + { 40, 0, 280 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE_MINSECT, // profile + { 520, 0, 280 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, + { + mAc_PROFILE_MUSEUM_INSECT, // profile + { 280, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, + { + mAc_PROFILE_MUSEUM_INDOOR, // profile + { 280, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 MUSEUM_INSECT_object_bank[] = { + ACTOR_OBJ_BANK_EF_MINSECT, // 0 + ACTOR_OBJ_BANK_408, // 1 +}; + +extern Door_data_c MUSEUM_INSECT_door_data[] = { + { + SCENE_MUSEUM_ENTRANCE, // scene + 2, // exit orientation + 0, // exit type + 0, // arg + { 120, 0, 280 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/museum_picture.c b/src/data/scene/museum_picture.c new file mode 100644 index 00000000..b86dd8ff --- /dev/null +++ b/src/data/scene/museum_picture.c @@ -0,0 +1,72 @@ +#include "m_scene.h" + +extern Door_data_c MUSEUM_PICTURE_door_data[]; +extern Actor_data MUSEUM_PICTURE_player_data[]; +extern s16 MUSEUM_PICTURE_ctrl_actor_data[]; +extern Actor_data MUSEUM_PICTURE_actor_data[]; +extern s16 MUSEUM_PICTURE_object_bank[]; + +extern Scene_Word_u museum_picture_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, MUSEUM_PICTURE_door_data), // Door data + mSc_DATA_PLAYER(MUSEUM_PICTURE_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(1), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(11, MUSEUM_PICTURE_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(1, MUSEUM_PICTURE_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, MUSEUM_PICTURE_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data MUSEUM_PICTURE_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 120, 0, 150 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 MUSEUM_PICTURE_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 +}; + +extern Actor_data MUSEUM_PICTURE_actor_data[] = { + { + mAc_PROFILE_MUSEUM_PICTURE, // profile + { 40, 40, 40 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 MUSEUM_PICTURE_object_bank[] = { + ACTOR_OBJ_BANK_MUSEUM_PICTURE, // 0 +}; + +extern Door_data_c MUSEUM_PICTURE_door_data[] = { + { + SCENE_MUSEUM_ENTRANCE, // scene + 0, // exit orientation + 0, // exit type + 0, // arg + { 160, 0, 120 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, + { + // unused + }, +}; diff --git a/src/data/scene/npc_room01.c b/src/data/scene/npc_room01.c new file mode 100644 index 00000000..5a8e6487 --- /dev/null +++ b/src/data/scene/npc_room01.c @@ -0,0 +1,76 @@ +#include "m_scene.h" + +extern Door_data_c NPC_ROOM01_door_data[]; +extern Actor_data NPC_ROOM01_player_data[]; +extern s16 NPC_ROOM01_ctrl_actor_data[]; +extern Actor_data NPC_ROOM01_actor_data[]; +extern s16 NPC_ROOM01_object_bank[]; + +extern Scene_Word_u npc_room01_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, NPC_ROOM01_door_data), // Door data + mSc_DATA_PLAYER(NPC_ROOM01_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(30), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, NPC_ROOM01_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, NPC_ROOM01_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, NPC_ROOM01_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_NPC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data NPC_ROOM01_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 260 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 NPC_ROOM01_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_ARRANGE_ROOM, // 11 +}; + +extern Actor_data NPC_ROOM01_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 40, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 282, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 NPC_ROOM01_object_bank[] = { + ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 +}; + +extern Door_data_c NPC_ROOM01_door_data[] = { + { + SCENE_NPC_TEST, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 400, 0, 460 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/npc_room_island.c b/src/data/scene/npc_room_island.c new file mode 100644 index 00000000..b19af392 --- /dev/null +++ b/src/data/scene/npc_room_island.c @@ -0,0 +1,76 @@ +#include "m_scene.h" + +extern Door_data_c NPC_ROOM_ISLAND_door_data[]; +extern Actor_data NPC_ROOM_ISLAND_player_data[]; +extern s16 NPC_ROOM_ISLAND_ctrl_actor_data[]; +extern Actor_data NPC_ROOM_ISLAND_actor_data[]; +extern s16 NPC_ROOM_ISLAND_object_bank[]; + +extern Scene_Word_u npc_room_island_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, NPC_ROOM_ISLAND_door_data), // Door data + mSc_DATA_PLAYER(NPC_ROOM_ISLAND_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(30), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, NPC_ROOM_ISLAND_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, NPC_ROOM_ISLAND_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, NPC_ROOM_ISLAND_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_NPC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data NPC_ROOM_ISLAND_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 260 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 NPC_ROOM_ISLAND_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_ARRANGE_ROOM, // 11 +}; + +extern Actor_data NPC_ROOM_ISLAND_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 40, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 282, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 NPC_ROOM_ISLAND_object_bank[] = { + ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 +}; + +extern Door_data_c NPC_ROOM_ISLAND_door_data[] = { + { + SCENE_NPC_TEST, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 400, 0, 460 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/p_room_bm_l.c b/src/data/scene/p_room_bm_l.c new file mode 100644 index 00000000..6e827842 --- /dev/null +++ b/src/data/scene/p_room_bm_l.c @@ -0,0 +1,59 @@ +#include "m_scene.h" + +extern Door_data_c P_ROOM_BM_L_door_data[]; +extern Actor_data P_ROOM_BM_L_player_data[]; +extern s16 P_ROOM_BM_L_ctrl_actor_data[]; +extern s16 P_ROOM_BM_L_object_bank[]; + +extern Scene_Word_u p_room_bm_l_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, P_ROOM_BM_L_door_data), // Door data + mSc_DATA_PLAYER(P_ROOM_BM_L_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(48), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, P_ROOM_BM_L_ctrl_actor_data), // Control actors + mSc_DATA_OBJ_BANK(1, P_ROOM_BM_L_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data P_ROOM_BM_L_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 P_ROOM_BM_L_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MY_INDOOR, // 11 +}; + +extern s16 P_ROOM_BM_L_object_bank[] = { + ACTOR_OBJ_BANK_369, // 0 +}; + +extern Door_data_c P_ROOM_BM_L_door_data[] = { + { + SCENE_MY_ROOM_L, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 300, 0, 380 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/p_room_bm_ll1.c b/src/data/scene/p_room_bm_ll1.c new file mode 100644 index 00000000..896494be --- /dev/null +++ b/src/data/scene/p_room_bm_ll1.c @@ -0,0 +1,59 @@ +#include "m_scene.h" + +extern Door_data_c P_ROOM_BM_LL1_door_data[]; +extern Actor_data P_ROOM_BM_LL1_player_data[]; +extern s16 P_ROOM_BM_LL1_ctrl_actor_data[]; +extern s16 P_ROOM_BM_LL1_object_bank[]; + +extern Scene_Word_u p_room_bm_ll1_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, P_ROOM_BM_LL1_door_data), // Door data + mSc_DATA_PLAYER(P_ROOM_BM_LL1_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(48), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, P_ROOM_BM_LL1_ctrl_actor_data), // Control actors + mSc_DATA_OBJ_BANK(1, P_ROOM_BM_LL1_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data P_ROOM_BM_LL1_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 P_ROOM_BM_LL1_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MY_INDOOR, // 11 +}; + +extern s16 P_ROOM_BM_LL1_object_bank[] = { + ACTOR_OBJ_BANK_369, // 0 +}; + +extern Door_data_c P_ROOM_BM_LL1_door_data[] = { + { + SCENE_MY_ROOM_LL1, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 300, 0, 380 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/p_room_bm_m.c b/src/data/scene/p_room_bm_m.c new file mode 100644 index 00000000..e42a21a5 --- /dev/null +++ b/src/data/scene/p_room_bm_m.c @@ -0,0 +1,59 @@ +#include "m_scene.h" + +extern Door_data_c P_ROOM_BM_M_door_data[]; +extern Actor_data P_ROOM_BM_M_player_data[]; +extern s16 P_ROOM_BM_M_ctrl_actor_data[]; +extern s16 P_ROOM_BM_M_object_bank[]; + +extern Scene_Word_u p_room_bm_m_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, P_ROOM_BM_M_door_data), // Door data + mSc_DATA_PLAYER(P_ROOM_BM_M_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(48), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, P_ROOM_BM_M_ctrl_actor_data), // Control actors + mSc_DATA_OBJ_BANK(1, P_ROOM_BM_M_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data P_ROOM_BM_M_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 P_ROOM_BM_M_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MY_INDOOR, // 11 +}; + +extern s16 P_ROOM_BM_M_object_bank[] = { + ACTOR_OBJ_BANK_369, // 0 +}; + +extern Door_data_c P_ROOM_BM_M_door_data[] = { + { + SCENE_MY_ROOM_M, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 260, 0, 300 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/p_room_bm_s.c b/src/data/scene/p_room_bm_s.c new file mode 100644 index 00000000..972e4443 --- /dev/null +++ b/src/data/scene/p_room_bm_s.c @@ -0,0 +1,59 @@ +#include "m_scene.h" + +extern Door_data_c P_ROOM_BM_S_door_data[]; +extern Actor_data P_ROOM_BM_S_player_data[]; +extern s16 P_ROOM_BM_S_ctrl_actor_data[]; +extern s16 P_ROOM_BM_S_object_bank[]; + +extern Scene_Word_u p_room_bm_s_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, P_ROOM_BM_S_door_data), // Door data + mSc_DATA_PLAYER(P_ROOM_BM_S_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(48), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, P_ROOM_BM_S_ctrl_actor_data), // Control actors + mSc_DATA_OBJ_BANK(1, P_ROOM_BM_S_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data P_ROOM_BM_S_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 P_ROOM_BM_S_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MY_INDOOR, // 11 +}; + +extern s16 P_ROOM_BM_S_object_bank[] = { + ACTOR_OBJ_BANK_369, // 0 +}; + +extern Door_data_c P_ROOM_BM_S_door_data[] = { + { + SCENE_MY_ROOM_S, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 220, 0, 220 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/player_room_island.c b/src/data/scene/player_room_island.c new file mode 100644 index 00000000..698f5947 --- /dev/null +++ b/src/data/scene/player_room_island.c @@ -0,0 +1,77 @@ +#include "m_scene.h" + +extern Door_data_c PLAYER_ROOM_ISLAND_door_data[]; +extern Actor_data PLAYER_ROOM_ISLAND_player_data[]; +extern s16 PLAYER_ROOM_ISLAND_ctrl_actor_data[]; +extern Actor_data PLAYER_ROOM_ISLAND_actor_data[]; +extern s16 PLAYER_ROOM_ISLAND_object_bank[]; + +extern Scene_Word_u player_room_island_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, PLAYER_ROOM_ISLAND_door_data), // Door data + mSc_DATA_PLAYER(PLAYER_ROOM_ISLAND_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(48), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, PLAYER_ROOM_ISLAND_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, PLAYER_ROOM_ISLAND_actor_data), // Player Data + mSc_DATA_OBJ_BANK(2, PLAYER_ROOM_ISLAND_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data PLAYER_ROOM_ISLAND_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_ISLAND_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MY_INDOOR, // 11 +}; + +extern Actor_data PLAYER_ROOM_ISLAND_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 40, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 360, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_ISLAND_object_bank[] = { + ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 + ACTOR_OBJ_BANK_369, // 1 +}; + +extern Door_data_c PLAYER_ROOM_ISLAND_door_data[] = { + { + SCENE_MY_ROOM_BASEMENT_M, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 300, 0, 380 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/player_room_l.c b/src/data/scene/player_room_l.c new file mode 100644 index 00000000..eb7fb028 --- /dev/null +++ b/src/data/scene/player_room_l.c @@ -0,0 +1,77 @@ +#include "m_scene.h" + +extern Door_data_c PLAYER_ROOM_L_door_data[]; +extern Actor_data PLAYER_ROOM_L_player_data[]; +extern s16 PLAYER_ROOM_L_ctrl_actor_data[]; +extern Actor_data PLAYER_ROOM_L_actor_data[]; +extern s16 PLAYER_ROOM_L_object_bank[]; + +extern Scene_Word_u player_room_l_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, PLAYER_ROOM_L_door_data), // Door data + mSc_DATA_PLAYER(PLAYER_ROOM_L_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(48), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, PLAYER_ROOM_L_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, PLAYER_ROOM_L_actor_data), // Player Data + mSc_DATA_OBJ_BANK(2, PLAYER_ROOM_L_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data PLAYER_ROOM_L_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 200, 0, 350 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_L_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MY_INDOOR, // 11 +}; + +extern Actor_data PLAYER_ROOM_L_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 40, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 360, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_L_object_bank[] = { + ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 + ACTOR_OBJ_BANK_369, // 1 +}; + +extern Door_data_c PLAYER_ROOM_L_door_data[] = { + { + SCENE_MY_ROOM_BASEMENT_L, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 300, 0, 380 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/player_room_ll1.c b/src/data/scene/player_room_ll1.c new file mode 100644 index 00000000..3437762c --- /dev/null +++ b/src/data/scene/player_room_ll1.c @@ -0,0 +1,87 @@ +#include "m_scene.h" + +extern Door_data_c PLAYER_ROOM_LL1_door_data[]; +extern Actor_data PLAYER_ROOM_LL1_player_data[]; +extern s16 PLAYER_ROOM_LL1_ctrl_actor_data[]; +extern Actor_data PLAYER_ROOM_LL1_actor_data[]; +extern s16 PLAYER_ROOM_LL1_object_bank[]; + +extern Scene_Word_u player_room_ll1_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(2, PLAYER_ROOM_LL1_door_data), // Door data + mSc_DATA_PLAYER(PLAYER_ROOM_LL1_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(48), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, PLAYER_ROOM_LL1_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, PLAYER_ROOM_LL1_actor_data), // Player Data + mSc_DATA_OBJ_BANK(2, PLAYER_ROOM_LL1_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data PLAYER_ROOM_LL1_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 200, 0, 350 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_LL1_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MY_INDOOR, // 11 +}; + +extern Actor_data PLAYER_ROOM_LL1_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 40, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 360, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_LL1_object_bank[] = { + ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 + ACTOR_OBJ_BANK_369, // 1 +}; + +extern Door_data_c PLAYER_ROOM_LL1_door_data[] = { + { + SCENE_MY_ROOM_BASEMENT_LL1, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 300, 0, 380 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, + { + SCENE_MY_ROOM_LL2, // scene + 2, // exit orientation + 0, // exit type + 0, // arg + { 60, 0, 300 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/player_room_ll2.c b/src/data/scene/player_room_ll2.c new file mode 100644 index 00000000..cf8c3665 --- /dev/null +++ b/src/data/scene/player_room_ll2.c @@ -0,0 +1,77 @@ +#include "m_scene.h" + +extern Door_data_c PLAYER_ROOM_LL2_door_data[]; +extern Actor_data PLAYER_ROOM_LL2_player_data[]; +extern s16 PLAYER_ROOM_LL2_ctrl_actor_data[]; +extern Actor_data PLAYER_ROOM_LL2_actor_data[]; +extern s16 PLAYER_ROOM_LL2_object_bank[]; + +extern Scene_Word_u player_room_ll2_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, PLAYER_ROOM_LL2_door_data), // Door data + mSc_DATA_PLAYER(PLAYER_ROOM_LL2_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(48), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, PLAYER_ROOM_LL2_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, PLAYER_ROOM_LL2_actor_data), // Player Data + mSc_DATA_OBJ_BANK(2, PLAYER_ROOM_LL2_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data PLAYER_ROOM_LL2_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_LL2_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MY_INDOOR, // 11 +}; + +extern Actor_data PLAYER_ROOM_LL2_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 40, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 280, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_LL2_object_bank[] = { + ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 + ACTOR_OBJ_BANK_369, // 1 +}; + +extern Door_data_c PLAYER_ROOM_LL2_door_data[] = { + { + SCENE_MY_ROOM_LL1, // scene + 2, // exit orientation + 0, // exit type + 0, // arg + { 100, 0, 380 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/player_room_m.c b/src/data/scene/player_room_m.c new file mode 100644 index 00000000..c59bdff0 --- /dev/null +++ b/src/data/scene/player_room_m.c @@ -0,0 +1,77 @@ +#include "m_scene.h" + +extern Door_data_c PLAYER_ROOM_M_door_data[]; +extern Actor_data PLAYER_ROOM_M_player_data[]; +extern s16 PLAYER_ROOM_M_ctrl_actor_data[]; +extern Actor_data PLAYER_ROOM_M_actor_data[]; +extern s16 PLAYER_ROOM_M_object_bank[]; + +extern Scene_Word_u player_room_m_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, PLAYER_ROOM_M_door_data), // Door data + mSc_DATA_PLAYER(PLAYER_ROOM_M_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(32), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, PLAYER_ROOM_M_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, PLAYER_ROOM_M_actor_data), // Player Data + mSc_DATA_OBJ_BANK(2, PLAYER_ROOM_M_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data PLAYER_ROOM_M_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_M_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MY_INDOOR, // 11 +}; + +extern Actor_data PLAYER_ROOM_M_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 40, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 280, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_M_object_bank[] = { + ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 + ACTOR_OBJ_BANK_369, // 1 +}; + +extern Door_data_c PLAYER_ROOM_M_door_data[] = { + { + SCENE_MY_ROOM_BASEMENT_M, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 300, 0, 380 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/player_room_s.c b/src/data/scene/player_room_s.c new file mode 100644 index 00000000..8ad13165 --- /dev/null +++ b/src/data/scene/player_room_s.c @@ -0,0 +1,77 @@ +#include "m_scene.h" + +extern Door_data_c PLAYER_ROOM_S_door_data[]; +extern Actor_data PLAYER_ROOM_S_player_data[]; +extern s16 PLAYER_ROOM_S_ctrl_actor_data[]; +extern Actor_data PLAYER_ROOM_S_actor_data[]; +extern s16 PLAYER_ROOM_S_object_bank[]; + +extern Scene_Word_u player_room_s_info[] = { + mSc_DATA_SOUND(0, 1), // Sound data + mSc_DATA_DOOR_DATA(1, PLAYER_ROOM_S_door_data), // Door data + mSc_DATA_PLAYER(PLAYER_ROOM_S_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(30), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(12, PLAYER_ROOM_S_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, PLAYER_ROOM_S_actor_data), // Player Data + mSc_DATA_OBJ_BANK(2, PLAYER_ROOM_S_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MY_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data PLAYER_ROOM_S_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 120, 0, 150 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_S_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_INSECT, // 2 + mAc_PROFILE_TOOLS, // 3 + mAc_PROFILE_HANDOVERITEM, // 4 + mAc_PROFILE_EFFECT_CONTROL, // 5 + mAc_PROFILE_SHOP_LEVEL, // 6 + mAc_PROFILE_QUEST_MANAGER, // 7 + mAc_PROFILE_EVENT_MANAGER, // 8 + mAc_PROFILE_WEATHER, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_MY_INDOOR, // 11 +}; + +extern Actor_data PLAYER_ROOM_S_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 40, 0, 120 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE, // profile + { 200, 0, 120 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 PLAYER_ROOM_S_object_bank[] = { + ACTOR_OBJ_BANK_ROOM_SUNSHINE, // 0 + ACTOR_OBJ_BANK_369, // 1 +}; + +extern Door_data_c PLAYER_ROOM_S_door_data[] = { + { + SCENE_MY_ROOM_BASEMENT_S, // scene + 6, // exit orientation + 0, // exit type + 0, // arg + { 300, 0, 380 }, // exit position + 0x4000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/player_select.c b/src/data/scene/player_select.c new file mode 100644 index 00000000..25428410 --- /dev/null +++ b/src/data/scene/player_select.c @@ -0,0 +1,29 @@ +#include "m_scene.h" + +extern Actor_data PLAYER_SELECT_player_data[]; +extern s16 PLAYER_SELECT_ctrl_actor_data[]; + +extern Scene_Word_u player_select_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(PLAYER_SELECT_player_data), // Player Data + mSc_DATA_ARRANGE_ROOM_CT(), // Arrange_room construct + mSc_DATA_CTRL_ACTORS(3, PLAYER_SELECT_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_PLAYER_SELECT), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data PLAYER_SELECT_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 100, 0, 120 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 PLAYER_SELECT_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_EFFECT_CONTROL, // 2 +}; diff --git a/src/data/scene/police_box.c b/src/data/scene/police_box.c new file mode 100644 index 00000000..70be7c4c --- /dev/null +++ b/src/data/scene/police_box.c @@ -0,0 +1,74 @@ +#include "m_scene.h" + +extern Door_data_c POLICE_BOX_door_data[]; +extern Actor_data POLICE_BOX_player_data[]; +extern s16 POLICE_BOX_ctrl_actor_data[]; +extern Actor_data POLICE_BOX_actor_data[]; +extern s16 POLICE_BOX_object_bank[]; + +extern Scene_Word_u police_box_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, POLICE_BOX_door_data), // Door data + mSc_DATA_PLAYER(POLICE_BOX_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(10, POLICE_BOX_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, POLICE_BOX_actor_data), // Player Data + mSc_DATA_OBJ_BANK(2, POLICE_BOX_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGPOLICEITEM, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data POLICE_BOX_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 200, 0, 400 }, // position + { 0, -32768, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 POLICE_BOX_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_TOOLS, // 2 + mAc_PROFILE_HANDOVERITEM, // 3 + mAc_PROFILE_EFFECT_CONTROL, // 4 + mAc_PROFILE_SHOP_LEVEL, // 5 + mAc_PROFILE_QUEST_MANAGER, // 6 + mAc_PROFILE_EVENT_MANAGER, // 7 + mAc_PROFILE_WEATHER, // 8 + mAc_PROFILE_HOUSE_CLOCK, // 9 +}; + +extern Actor_data POLICE_BOX_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE_POLICE, // profile + { 40, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE_POLICE, // profile + { 360, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 POLICE_BOX_object_bank[] = { + ACTOR_OBJ_BANK_13, // 0 + ACTOR_OBJ_BANK_EF_POLICE, // 1 +}; + +extern Door_data_c POLICE_BOX_door_data[] = { + { + SCENE_TEST2, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 40, 0, 1730 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/post_office.c b/src/data/scene/post_office.c new file mode 100644 index 00000000..f8de85f3 --- /dev/null +++ b/src/data/scene/post_office.c @@ -0,0 +1,80 @@ +#include "m_scene.h" + +extern Door_data_c POST_OFFICE_door_data[]; +extern Actor_data POST_OFFICE_player_data[]; +extern s16 POST_OFFICE_ctrl_actor_data[]; +extern Actor_data POST_OFFICE_actor_data[]; +extern s16 POST_OFFICE_object_bank[]; + +extern Scene_Word_u post_office_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, POST_OFFICE_door_data), // Door data + mSc_DATA_PLAYER(POST_OFFICE_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(6), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(10, POST_OFFICE_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(3, POST_OFFICE_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, POST_OFFICE_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGPOSTITEM, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data POST_OFFICE_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 100, 0, 200 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 POST_OFFICE_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_TOOLS, // 2 + mAc_PROFILE_HANDOVERITEM, // 3 + mAc_PROFILE_EFFECT_CONTROL, // 4 + mAc_PROFILE_SHOP_LEVEL, // 5 + mAc_PROFILE_QUEST_MANAGER, // 6 + mAc_PROFILE_EVENT_MANAGER, // 7 + mAc_PROFILE_WEATHER, // 8 + mAc_PROFILE_HOUSE_CLOCK, // 9 +}; + +extern Actor_data POST_OFFICE_actor_data[] = { + { + mAc_PROFILE_ROOM_SUNSHINE_POSTHOUSE, // profile + { 40, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 2 // ct arg + }, + { + mAc_PROFILE_ROOM_SUNSHINE_POSTHOUSE, // profile + { 280, 0, 160 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, + { + mAc_PROFILE_PTERMINAL, // profile + { 60, 0, 240 }, // position + { 0, 0, 0 }, // rotation + 3 // ct arg + }, +}; + +extern s16 POST_OFFICE_object_bank[] = { + ACTOR_OBJ_BANK_POSTHOUSE, // 0 +}; + +extern Door_data_c POST_OFFICE_door_data[] = { + { + SCENE_TEST2, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 40, 0, 1730 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/shop01.c b/src/data/scene/shop01.c new file mode 100644 index 00000000..bf51e165 --- /dev/null +++ b/src/data/scene/shop01.c @@ -0,0 +1,63 @@ +#include "m_scene.h" + +extern Door_data_c SHOP01_door_data[]; +extern Actor_data SHOP01_player_data[]; +extern s16 SHOP01_ctrl_actor_data[]; +extern s16 SHOP01_object_bank[]; + +extern Scene_Word_u shop01_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, SHOP01_door_data), // Door data + mSc_DATA_PLAYER(SHOP01_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(6), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(16, SHOP01_ctrl_actor_data), // Control actors + mSc_DATA_OBJ_BANK(1, SHOP01_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data SHOP01_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 300 }, // position + { 0, -32768, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 SHOP01_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_SHOP_DESIGN, // 1 + mAc_PROFILE_NPC2, // 2 + mAc_PROFILE_INSECT, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_SHOP_LEVEL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 + mAc_PROFILE_HOUSE_CLOCK, // 11 + mAc_PROFILE_MY_ROOM, // 12 + mAc_PROFILE_SHOP_MANEKIN, // 13 + mAc_PROFILE_SHOP_INDOOR, // 14 + mAc_PROFILE_SHOP_UMBRELLA, // 15 +}; + +extern s16 SHOP01_object_bank[] = { + ACTOR_OBJ_BANK_13, // 0 +}; + +extern Door_data_c SHOP01_door_data[] = { + { + SCENE_TEST2, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 40, 0, 1730 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/shop02.c b/src/data/scene/shop02.c new file mode 100644 index 00000000..0a9761f3 --- /dev/null +++ b/src/data/scene/shop02.c @@ -0,0 +1,63 @@ +#include "m_scene.h" + +extern Door_data_c SHOP02_door_data[]; +extern Actor_data SHOP02_player_data[]; +extern s16 SHOP02_ctrl_actor_data[]; +extern s16 SHOP02_object_bank[]; + +extern Scene_Word_u shop02_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, SHOP02_door_data), // Door data + mSc_DATA_PLAYER(SHOP02_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(6), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(16, SHOP02_ctrl_actor_data), // Control actors + mSc_DATA_OBJ_BANK(1, SHOP02_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data SHOP02_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 320, 0, 300 }, // position + { 0, -32768, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 SHOP02_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_SHOP_DESIGN, // 1 + mAc_PROFILE_NPC2, // 2 + mAc_PROFILE_INSECT, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_SHOP_LEVEL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 + mAc_PROFILE_MY_ROOM, // 11 + mAc_PROFILE_SHOP_MANEKIN, // 12 + mAc_PROFILE_SHOP_INDOOR, // 13 + mAc_PROFILE_SHOP_UMBRELLA, // 14 + mAc_PROFILE_HOUSE_CLOCK, // 15 +}; + +extern s16 SHOP02_object_bank[] = { + ACTOR_OBJ_BANK_13, // 0 +}; + +extern Door_data_c SHOP02_door_data[] = { + { + SCENE_TEST2, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 40, 0, 1730 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/shop03.c b/src/data/scene/shop03.c new file mode 100644 index 00000000..8e0194f2 --- /dev/null +++ b/src/data/scene/shop03.c @@ -0,0 +1,56 @@ +#include "m_scene.h" + +extern Door_data_c SHOP03_door_data[]; +extern Actor_data SHOP03_player_data[]; +extern s16 SHOP03_ctrl_actor_data[]; + +extern Scene_Word_u shop03_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, SHOP03_door_data), // Door data + mSc_DATA_PLAYER(SHOP03_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(6), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(15, SHOP03_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data SHOP03_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 320, 0, 460 }, // position + { 0, -32768, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 SHOP03_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_SHOP_DESIGN, // 1 + mAc_PROFILE_TOOLS, // 2 + mAc_PROFILE_HANDOVERITEM, // 3 + mAc_PROFILE_EFFECT_CONTROL, // 4 + mAc_PROFILE_SHOP_LEVEL, // 5 + mAc_PROFILE_QUEST_MANAGER, // 6 + mAc_PROFILE_EVENT_MANAGER, // 7 + mAc_PROFILE_WEATHER, // 8 + mAc_PROFILE_HOUSE_CLOCK, // 9 + mAc_PROFILE_MY_ROOM, // 10 + mAc_PROFILE_SHOP_MANEKIN, // 11 + mAc_PROFILE_SHOP_INDOOR, // 12 + mAc_PROFILE_SHOP_UMBRELLA, // 13 + mAc_PROFILE_NPC2, // 14 +}; + +extern Door_data_c SHOP03_door_data[] = { + { + SCENE_TEST2, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 40, 0, 1730 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/shop04_1f.c b/src/data/scene/shop04_1f.c new file mode 100644 index 00000000..232b3ea2 --- /dev/null +++ b/src/data/scene/shop04_1f.c @@ -0,0 +1,62 @@ +#include "m_scene.h" + +extern Door_data_c SHOP04_1F_door_data[]; +extern Actor_data SHOP04_1F_player_data[]; +extern s16 SHOP04_1F_ctrl_actor_data[]; +extern s16 SHOP04_1F_object_bank[]; + +extern Scene_Word_u shop04_1f_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, SHOP04_1F_door_data), // Door data + mSc_DATA_PLAYER(SHOP04_1F_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(6), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(15, SHOP04_1F_ctrl_actor_data), // Control actors + mSc_DATA_OBJ_BANK(1, SHOP04_1F_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data SHOP04_1F_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 320, 0, 540 }, // position + { 0, -32768, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 SHOP04_1F_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_SHOP_DESIGN, // 1 + mAc_PROFILE_NPC2, // 2 + mAc_PROFILE_INSECT, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_SHOP_LEVEL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 + mAc_PROFILE_MY_ROOM, // 11 + mAc_PROFILE_SHOP_MANEKIN, // 12 + mAc_PROFILE_HOUSE_CLOCK, // 13 + mAc_PROFILE_SHOP_UMBRELLA, // 14 +}; + +extern s16 SHOP04_1F_object_bank[] = { + ACTOR_OBJ_BANK_13, // 0 +}; + +extern Door_data_c SHOP04_1F_door_data[] = { + { + SCENE_DEPART_2, // scene + 0, // exit orientation + 0, // exit type + 0, // arg + { 300, 40, 65 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/shop04_2f.c b/src/data/scene/shop04_2f.c new file mode 100644 index 00000000..54a8baf7 --- /dev/null +++ b/src/data/scene/shop04_2f.c @@ -0,0 +1,63 @@ +#include "m_scene.h" + +extern Door_data_c SHOP04_2F_door_data[]; +extern Actor_data SHOP04_2F_player_data[]; +extern s16 SHOP04_2F_ctrl_actor_data[]; +extern s16 SHOP04_2F_object_bank[]; + +extern Scene_Word_u shop04_2f_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, SHOP04_2F_door_data), // Door data + mSc_DATA_PLAYER(SHOP04_2F_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(6), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(16, SHOP04_2F_ctrl_actor_data), // Control actors + mSc_DATA_OBJ_BANK(1, SHOP04_2F_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data SHOP04_2F_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 300, 0, 65 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 SHOP04_2F_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_SHOP_DESIGN, // 1 + mAc_PROFILE_NPC2, // 2 + mAc_PROFILE_INSECT, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_SHOP_LEVEL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 + mAc_PROFILE_MY_ROOM, // 11 + mAc_PROFILE_SHOP_MANEKIN, // 12 + mAc_PROFILE_SHOP_INDOOR, // 13 + mAc_PROFILE_SHOP_UMBRELLA, // 14 + mAc_PROFILE_HOUSE_CLOCK, // 15 +}; + +extern s16 SHOP04_2F_object_bank[] = { + ACTOR_OBJ_BANK_13, // 0 +}; + +extern Door_data_c SHOP04_2F_door_data[] = { + { + SCENE_DEPART, // scene + 0, // exit orientation + 0, // exit type + 0, // arg + { 280, 40, 65 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/start_demo1.c b/src/data/scene/start_demo1.c new file mode 100644 index 00000000..7c397fc9 --- /dev/null +++ b/src/data/scene/start_demo1.c @@ -0,0 +1,48 @@ +#include "m_scene.h" + +extern Door_data_c START_DEMO1_door_data[]; +extern Actor_data START_DEMO1_player_data[]; +extern s16 START_DEMO1_ctrl_actor_data[]; + +extern Scene_Word_u start_demo1_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, START_DEMO1_door_data), // Door data + mSc_DATA_PLAYER(START_DEMO1_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(8), // Arrange furniture params + mSc_DATA_ARRANGE_ROOM_CT(), // Arrange_room construct + mSc_DATA_CTRL_ACTORS(6, START_DEMO1_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 1, 0x7800, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_TRAIN), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data START_DEMO1_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 120, 0, 340 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 START_DEMO1_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_TOOLS, // 2 + mAc_PROFILE_EFFECT_CONTROL, // 3 + mAc_PROFILE_QUEST_MANAGER, // 4 + mAc_PROFILE_WEATHER, // 5 +}; + +extern Door_data_c START_DEMO1_door_data[] = { + { + SCENE_FG, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 1979, 200, 760 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/start_demo2.c b/src/data/scene/start_demo2.c new file mode 100644 index 00000000..39bf748e --- /dev/null +++ b/src/data/scene/start_demo2.c @@ -0,0 +1,48 @@ +#include "m_scene.h" + +extern Door_data_c START_DEMO2_door_data[]; +extern Actor_data START_DEMO2_player_data[]; +extern s16 START_DEMO2_ctrl_actor_data[]; + +extern Scene_Word_u start_demo2_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, START_DEMO2_door_data), // Door data + mSc_DATA_PLAYER(START_DEMO2_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(8), // Arrange furniture params + mSc_DATA_ARRANGE_ROOM_CT(), // Arrange_room construct + mSc_DATA_CTRL_ACTORS(6, START_DEMO2_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_TRAIN), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data START_DEMO2_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 120, 0, 340 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 START_DEMO2_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_TOOLS, // 2 + mAc_PROFILE_EFFECT_CONTROL, // 3 + mAc_PROFILE_QUEST_MANAGER, // 4 + mAc_PROFILE_WEATHER, // 5 +}; + +extern Door_data_c START_DEMO2_door_data[] = { + { + SCENE_FG, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 1979, 200, 760 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/start_demo3.c b/src/data/scene/start_demo3.c new file mode 100644 index 00000000..7d82d266 --- /dev/null +++ b/src/data/scene/start_demo3.c @@ -0,0 +1,48 @@ +#include "m_scene.h" + +extern Door_data_c START_DEMO3_door_data[]; +extern Actor_data START_DEMO3_player_data[]; +extern s16 START_DEMO3_ctrl_actor_data[]; + +extern Scene_Word_u start_demo3_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, START_DEMO3_door_data), // Door data + mSc_DATA_PLAYER(START_DEMO3_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(8), // Arrange furniture params + mSc_DATA_ARRANGE_ROOM_CT(), // Arrange_room construct + mSc_DATA_CTRL_ACTORS(6, START_DEMO3_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 1, 0x7800, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_TRAIN), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data START_DEMO3_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 120, 0, 340 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 START_DEMO3_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_NPC2, // 1 + mAc_PROFILE_TOOLS, // 2 + mAc_PROFILE_EFFECT_CONTROL, // 3 + mAc_PROFILE_QUEST_MANAGER, // 4 + mAc_PROFILE_WEATHER, // 5 +}; + +extern Door_data_c START_DEMO3_door_data[] = { + { + SCENE_FG, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 1979, 200, 760 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/tent.c b/src/data/scene/tent.c new file mode 100644 index 00000000..8209d650 --- /dev/null +++ b/src/data/scene/tent.c @@ -0,0 +1,52 @@ +#include "m_scene.h" + +extern Door_data_c TENT_door_data[]; +extern Actor_data TENT_player_data[]; +extern s16 TENT_ctrl_actor_data[]; + +extern Scene_Word_u tent_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_DOOR_DATA(1, TENT_door_data), // Door data + mSc_DATA_PLAYER(TENT_player_data), // Player Data + mSc_DATA_ARRANGE_FTR(3), // Arrange furniture params + mSc_DATA_CTRL_ACTORS(11, TENT_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_DUMMY, 1, 0xA000, mSc_ROOM_TYPE_MISC_ROOM, + FIELD_DRAW_TYPE_INDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data TENT_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 120, 0, 100 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 TENT_ctrl_actor_data[] = { + mAc_PROFILE_BIRTH_CONTROL, // 0 + mAc_PROFILE_MY_ROOM, // 1 + mAc_PROFILE_NPC2, // 2 + mAc_PROFILE_INSECT, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_SHOP_LEVEL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 +}; + +extern Door_data_c TENT_door_data[] = { + { + SCENE_FG, // scene + 1, // exit orientation + 0, // exit type + 0, // arg + { 1600, 0, 740 }, // exit position + 0x0000, // exit door item name + 2, // wipe type + { 0, 0, 0 }, // padding + }, +}; diff --git a/src/data/scene/test01.c b/src/data/scene/test01.c new file mode 100644 index 00000000..26d8cfb9 --- /dev/null +++ b/src/data/scene/test01.c @@ -0,0 +1,60 @@ +#include "m_scene.h" + +extern Actor_data TEST01_player_data[]; +extern s16 TEST01_ctrl_actor_data[]; +extern Actor_data TEST01_actor_data[]; +extern s16 TEST01_object_bank[]; + +extern Scene_Word_u test01_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(TEST01_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(12, TEST01_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, TEST01_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, TEST01_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x5000, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data TEST01_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 TEST01_ctrl_actor_data[] = { + mAc_PROFILE_EFFECTBG, // 0 + mAc_PROFILE_BIRTH_CONTROL, // 1 + mAc_PROFILE_NPC, // 2 + mAc_PROFILE_STRUCTURE, // 3 + mAc_PROFILE_INSECT, // 4 + mAc_PROFILE_TOOLS, // 5 + mAc_PROFILE_HANDOVERITEM, // 6 + mAc_PROFILE_EFFECT_CONTROL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 + mAc_PROFILE_BALL, // 11 +}; + +extern Actor_data TEST01_actor_data[] = { + { + mAc_PROFILE_UKI, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, + { + mAc_PROFILE_FUUSEN, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, +}; + +extern s16 TEST01_object_bank[] = { + ACTOR_OBJ_BANK_FUUSEN, // 0 +}; diff --git a/src/data/scene/test02.c b/src/data/scene/test02.c new file mode 100644 index 00000000..0eb449df --- /dev/null +++ b/src/data/scene/test02.c @@ -0,0 +1,37 @@ +#include "m_scene.h" + +extern Actor_data TEST02_player_data[]; +extern s16 TEST02_ctrl_actor_data[]; + +extern Scene_Word_u test02_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(TEST02_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(12, TEST02_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x5000, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data TEST02_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 320, 200, 1600 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 TEST02_ctrl_actor_data[] = { + mAc_PROFILE_EFFECTBG, // 0 + mAc_PROFILE_BIRTH_CONTROL, // 1 + mAc_PROFILE_NPC, // 2 + mAc_PROFILE_STRUCTURE, // 3 + mAc_PROFILE_INSECT, // 4 + mAc_PROFILE_TOOLS, // 5 + mAc_PROFILE_HANDOVERITEM, // 6 + mAc_PROFILE_EFFECT_CONTROL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 + mAc_PROFILE_BALL, // 11 +}; diff --git a/src/data/scene/test03.c b/src/data/scene/test03.c new file mode 100644 index 00000000..fe090af2 --- /dev/null +++ b/src/data/scene/test03.c @@ -0,0 +1,63 @@ +#include "m_scene.h" + +extern Actor_data TEST03_player_data[]; +extern s16 TEST03_ctrl_actor_data[]; +extern Actor_data TEST03_actor_data[]; +extern s16 TEST03_object_bank[]; + +extern Scene_Word_u test03_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(TEST03_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(12, TEST03_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, TEST03_actor_data), // Player Data + mSc_DATA_OBJ_BANK(4, TEST03_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x5000, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data TEST03_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 320, 200, 1600 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 TEST03_ctrl_actor_data[] = { + mAc_PROFILE_EFFECTBG, // 0 + mAc_PROFILE_BIRTH_CONTROL, // 1 + mAc_PROFILE_NPC, // 2 + mAc_PROFILE_STRUCTURE, // 3 + mAc_PROFILE_INSECT, // 4 + mAc_PROFILE_TOOLS, // 5 + mAc_PROFILE_HANDOVERITEM, // 6 + mAc_PROFILE_EFFECT_CONTROL, // 7 + mAc_PROFILE_QUEST_MANAGER, // 8 + mAc_PROFILE_EVENT_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 + mAc_PROFILE_BALL, // 11 +}; + +extern Actor_data TEST03_actor_data[] = { + { + mAc_PROFILE_UKI, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, + { + mAc_PROFILE_MURAL, // profile + { 320, 200, 1600 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, +}; + +extern s16 TEST03_object_bank[] = { + ACTOR_OBJ_BANK_48, // 0 + ACTOR_OBJ_BANK_PSNOWMAN, // 1 + ACTOR_OBJ_BANK_AIRPLANE, // 2 + ACTOR_OBJ_BANK_MURAL, // 3 +}; diff --git a/src/data/scene/test04.c b/src/data/scene/test04.c new file mode 100644 index 00000000..4c05aada --- /dev/null +++ b/src/data/scene/test04.c @@ -0,0 +1,37 @@ +#include "m_scene.h" + +extern Actor_data TEST04_player_data[]; +extern s16 TEST04_ctrl_actor_data[]; + +extern Scene_Word_u test04_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(TEST04_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(12, TEST04_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x5000, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data TEST04_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 TEST04_ctrl_actor_data[] = { + mAc_PROFILE_EFFECTBG, // 0 + mAc_PROFILE_BIRTH_CONTROL, // 1 + mAc_PROFILE_NPC, // 2 + mAc_PROFILE_STRUCTURE, // 3 + mAc_PROFILE_INSECT, // 4 + mAc_PROFILE_TOOLS, // 5 + mAc_PROFILE_HANDOVERITEM, // 6 + mAc_PROFILE_EFFECT_CONTROL, // 7 + mAc_PROFILE_SHOP_LEVEL, // 8 + mAc_PROFILE_QUEST_MANAGER, // 9 + mAc_PROFILE_EVENT_MANAGER, // 10 + mAc_PROFILE_WEATHER, // 11 +}; diff --git a/src/data/scene/test05.c b/src/data/scene/test05.c new file mode 100644 index 00000000..50f32afc --- /dev/null +++ b/src/data/scene/test05.c @@ -0,0 +1,30 @@ +#include "m_scene.h" + +extern Actor_data TEST05_player_data[]; +extern s16 TEST05_ctrl_actor_data[]; + +extern Scene_Word_u test05_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(TEST05_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(5, TEST05_ctrl_actor_data), // Control actors + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x5000, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data TEST05_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 TEST05_ctrl_actor_data[] = { + mAc_PROFILE_EFFECTBG, // 0 + mAc_PROFILE_BIRTH_CONTROL, // 1 + mAc_PROFILE_HANDOVERITEM, // 2 + mAc_PROFILE_EFFECT_CONTROL, // 3 + mAc_PROFILE_WEATHER, // 4 +}; diff --git a/src/data/scene/test_fd_npc_land.c b/src/data/scene/test_fd_npc_land.c new file mode 100644 index 00000000..e111558d --- /dev/null +++ b/src/data/scene/test_fd_npc_land.c @@ -0,0 +1,66 @@ +#include "m_scene.h" + +extern Actor_data TEST_FD_NPC_LAND_player_data[]; +extern s16 TEST_FD_NPC_LAND_ctrl_actor_data[]; +extern Actor_data TEST_FD_NPC_LAND_actor_data[]; +extern s16 TEST_FD_NPC_LAND_object_bank[]; + +extern Scene_Word_u test_fd_npc_land_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(TEST_FD_NPC_LAND_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(17, TEST_FD_NPC_LAND_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, TEST_FD_NPC_LAND_actor_data), // Player Data + mSc_DATA_OBJ_BANK(2, TEST_FD_NPC_LAND_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x1C00, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data TEST_FD_NPC_LAND_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 2240, 0, 1600 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 TEST_FD_NPC_LAND_ctrl_actor_data[] = { + mAc_PROFILE_EFFECTBG, // 0 + mAc_PROFILE_BIRTH_CONTROL, // 1 + mAc_PROFILE_NPC, // 2 + mAc_PROFILE_STRUCTURE, // 3 + mAc_PROFILE_INSECT, // 4 + mAc_PROFILE_TOOLS, // 5 + mAc_PROFILE_HANDOVERITEM, // 6 + mAc_PROFILE_EFFECT_CONTROL, // 7 + mAc_PROFILE_SHOP_LEVEL, // 8 + mAc_PROFILE_QUEST_MANAGER, // 9 + mAc_PROFILE_EVENT_MANAGER, // 10 + mAc_PROFILE_WEATHER, // 11 + mAc_PROFILE_SET_MANAGER, // 12 + mAc_PROFILE_GYOEI, // 13 + mAc_PROFILE_SET_NPC_MANAGER, // 14 + mAc_PROFILE_BALL, // 15 + mAc_PROFILE_MSCORE_CONTROL, // 16 +}; + +extern Actor_data TEST_FD_NPC_LAND_actor_data[] = { + { + mAc_PROFILE_UKI, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, + { + mAc_PROFILE_AC_SIGN, // profile + { 0, 0, 0 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, +}; + +extern s16 TEST_FD_NPC_LAND_object_bank[] = { + ACTOR_OBJ_BANK_48, // 0 + ACTOR_OBJ_BANK_AC_SIGN, // 1 +}; diff --git a/src/data/scene/test_step01.c b/src/data/scene/test_step01.c new file mode 100644 index 00000000..b925c4f0 --- /dev/null +++ b/src/data/scene/test_step01.c @@ -0,0 +1,20 @@ +#include "m_scene.h" + +extern Actor_data TEST_STEP01_player_data[]; + +extern Scene_Word_u test_step01_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(TEST_STEP01_player_data), // Player Data + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x5000, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data TEST_STEP01_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 160, 0, 300 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; diff --git a/src/data/scene/title_demo.c b/src/data/scene/title_demo.c new file mode 100644 index 00000000..f6a7c8db --- /dev/null +++ b/src/data/scene/title_demo.c @@ -0,0 +1,52 @@ +#include "m_scene.h" + +extern Actor_data TITLE_DEMO_player_data[]; +extern s16 TITLE_DEMO_ctrl_actor_data[]; +extern Actor_data TITLE_DEMO_actor_data[]; +extern s16 TITLE_DEMO_object_bank[]; + +extern Scene_Word_u title_demo_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(TITLE_DEMO_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(10, TITLE_DEMO_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(1, TITLE_DEMO_actor_data), // Player Data + mSc_DATA_OBJ_BANK(1, TITLE_DEMO_object_bank), // Required object banks + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x2000, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data TITLE_DEMO_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 2240, 0, 1600 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 TITLE_DEMO_ctrl_actor_data[] = { + mAc_PROFILE_EFFECTBG, // 0 + mAc_PROFILE_BIRTH_CONTROL, // 1 + mAc_PROFILE_NPC, // 2 + mAc_PROFILE_STRUCTURE, // 3 + mAc_PROFILE_TOOLS, // 4 + mAc_PROFILE_HANDOVERITEM, // 5 + mAc_PROFILE_EFFECT_CONTROL, // 6 + mAc_PROFILE_WEATHER, // 7 + mAc_PROFILE_ANIMAL_LOGO, // 8 + mAc_PROFILE_QUEST_MANAGER, // 9 +}; + +extern Actor_data TITLE_DEMO_actor_data[] = { + { + mAc_PROFILE_UKI, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, +}; + +extern s16 TITLE_DEMO_object_bank[] = { + ACTOR_OBJ_BANK_48, // 0 +}; diff --git a/src/data/scene/water_test.c b/src/data/scene/water_test.c new file mode 100644 index 00000000..f7cf594b --- /dev/null +++ b/src/data/scene/water_test.c @@ -0,0 +1,56 @@ +#include "m_scene.h" + +extern Actor_data WATER_TEST_player_data[]; +extern s16 WATER_TEST_ctrl_actor_data[]; +extern Actor_data WATER_TEST_actor_data[]; + +extern Scene_Word_u water_test_info[] = { + mSc_DATA_SOUND(0, 0), // Sound data + mSc_DATA_PLAYER(WATER_TEST_player_data), // Player Data + mSc_DATA_CTRL_ACTORS(14, WATER_TEST_ctrl_actor_data), // Control actors + mSc_DATA_ACTORS(2, WATER_TEST_actor_data), // Player Data + mSc_DATA_FIELDCT(mSc_ITEM_TYPE_BGITEM, 4, 0x5000, mSc_ROOM_TYPE_OUTDOORS, + FIELD_DRAW_TYPE_OUTDOORS), // Field construct params + mSc_DATA_END(), // End of scene data +}; + +extern Actor_data WATER_TEST_player_data[] = { + { + mAc_PROFILE_PLAYER, // profile + { 40, 0, 40 }, // position + { 0, 0, 0 }, // rotation + 0 // ct arg + }, +}; + +extern s16 WATER_TEST_ctrl_actor_data[] = { + mAc_PROFILE_EFFECTBG, // 0 + mAc_PROFILE_BIRTH_CONTROL, // 1 + mAc_PROFILE_NPC, // 2 + mAc_PROFILE_STRUCTURE, // 3 + mAc_PROFILE_INSECT, // 4 + mAc_PROFILE_TOOLS, // 5 + mAc_PROFILE_HANDOVERITEM, // 6 + mAc_PROFILE_EFFECT_CONTROL, // 7 + mAc_PROFILE_SHOP_LEVEL, // 8 + mAc_PROFILE_QUEST_MANAGER, // 9 + mAc_PROFILE_WEATHER, // 10 + mAc_PROFILE_GYOEI, // 11 + mAc_PROFILE_BEE, // 12 + mAc_PROFILE_BALL, // 13 +}; + +extern Actor_data WATER_TEST_actor_data[] = { + { + mAc_PROFILE_UKI, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, + { + mAc_PROFILE_BEE, // profile + { 340, 0, 430 }, // position + { 0, 0, 0 }, // rotation + -1 // ct arg + }, +}; diff --git a/src/m_scene.c b/src/m_scene.c index 36193f6e..58bd1b6a 100644 --- a/src/m_scene.c +++ b/src/m_scene.c @@ -449,8 +449,12 @@ static void Scene_Proc_Sound(GAME_PLAY* play, Scene_Word_u* scene_data) { } static void set_item_info(GAME_PLAY* play, Scene_Word_Data_FieldCt_c* field_ct) { - static s16 profile_table[4] = { mAc_PROFILE_BGITEM, mAc_PROFILE_DUMMY, mAc_PROFILE_BGPOLICEITEM, - mAc_PROFILE_BGPOSTITEM }; + static s16 profile_table[4] = { + mAc_PROFILE_BGITEM, + mAc_PROFILE_DUMMY, + mAc_PROFILE_BGPOLICEITEM, + mAc_PROFILE_BGPOSTITEM, + }; int item_type = field_ct->item_type;