pmd-red/src/data/ground/ground_data_d12p01_station.h
2025-06-19 17:27:43 +02:00

292 lines
11 KiB
C

static const struct ScriptCommand s_gs204_g0_s0_station_sref_script[] = { /* 0x825ce34 */
DEBUGINFO,
SELECT_MAP(MAP_MAGMA_CAVERN_ENTRY),
CJUMP_SCENARIO_0(SCENARIO_MAIN),
COND(JUDGE_EQ, 15, /* to label */ 0),
JUMP_LABEL(1),
LABEL(0), /* = 0x00 */
JUMP_LABEL(1),
LABEL(1), /* = 0x01 */
JUMPIF_EQUAL(START_MODE, 1, /* to label */ 2),
JUMPIF_EQUAL(START_MODE, 3, /* to label */ 3),
JUMPIF_EQUAL(START_MODE, 2, /* to label */ 4),
JUMPIF_EQUAL(START_MODE, 9, /* to label */ 4),
JUMP_LABEL(2),
LABEL(4), /* = 0x04 */
CJUMP_VAR(GROUND_GETOUT),
COND_EQUAL(1, /* to label */ 5),
JUMP_LABEL(5),
LABEL(2), /* = 0x02 */
SELECT_LIVES(0, 3),
JUMP_LABEL(6),
LABEL(3), /* = 0x03 */
SELECT_LIVES(0, 4),
JUMP_LABEL(6),
LABEL(5), /* = 0x05 */
SELECT_LIVES(0, 1),
JUMP_LABEL(6),
LABEL(6), /* = 0x06 */
BGM_SWITCH(108),
JUMP_SCRIPT(COMMON_ENTER),
};
static const struct ScriptRef s_gs204_g0_s0_station_sref = { 404, 1, NULL /* ENTER_CONTROL */, s_gs204_g0_s0_station_sref_script }; /* 0x825d030 */
static const struct ScriptCommand s_gs204_g0_s1_lives0_dlg0[] = { /* 0x825d03c */
DEBUGINFO,
{ 0x54, 0x00, 0x0002, 0x00000000, 0x00000000, NULL },
CALL_SCRIPT(WAIT_START_FUNC),
RET,
};
static const struct ScriptCommand s_gs204_g0_s1_lives1_dlg0[] = { /* 0x825d07c */
DEBUGINFO,
{ 0x54, 0x00, 0x0002, 0x00000000, 0x00000000, NULL },
CALL_SCRIPT(WAIT_START_FUNC),
RET,
};
static const struct ScriptCommand s_gs204_g0_s3_lives0_dlg0[] = { /* 0x825d0bc */
DEBUGINFO,
{ 0x54, 0x00, 0x0002, 0x00000000, 0x00000000, NULL },
CALL_SCRIPT(WAIT_START_FUNC),
RET,
};
static const struct ScriptCommand s_gs204_g0_s3_lives1_dlg0[] = { /* 0x825d0fc */
DEBUGINFO,
{ 0x54, 0x00, 0x0002, 0x00000000, 0x00000000, NULL },
CALL_SCRIPT(WAIT_START_FUNC),
RET,
};
static const struct ScriptCommand s_gs204_g0_s4_lives0_dlg0[] = { /* 0x825d13c */
DEBUGINFO,
CALL_SCRIPT(LIVES_WARP_ARRIVE_FUNC),
RET,
};
static const struct ScriptCommand s_gs204_g0_s4_lives1_dlg0[] = { /* 0x825d16c */
DEBUGINFO,
CALL_SCRIPT(LIVES_WARP_ARRIVE2_FUNC),
RET,
};
static const struct ScriptCommand s_gs204_g1_s0_station_sref_script[] = { /* 0x825d19c */
DEBUGINFO,
SELECT_MAP(MAP_MAGMA_CAVERN_ENTRY),
SELECT_ENTITIES(-1, 0),
BGM_SWITCH(108),
{ 0x22, 0x01, 0x001e, 0x00000000, 0x00000000, NULL },
{ 0xe3, 0x00, 0x0003, 0x00000000, 0x00000000, NULL },
NEXT_DUNGEON(30, SCRIPT_DUNGEON_MAGMA_CAVERN),
RET,
};
static const struct ScriptRef s_gs204_g1_s0_station_sref = { 400, 7, NULL /* EVENT_CONTROL */, s_gs204_g1_s0_station_sref_script }; /* 0x825d21c */
static const struct ScriptCommand s_gs204_g1_s0_lives0_dlg0[] = { /* 0x825d228 */
DEBUGINFO,
{ 0x54, 0x00, 0x0002, 0x00000000, 0x00000000, NULL },
{ 0x2d, 0x07, 0x0000, 0x00000000, 0x00000000, NULL },
{ 0x2d, 0x09, 0x0002, 0x00000067, 0x00000000, NULL },
{ 0xdf, 0x00, 0x0000, 0x00000000, 0x00000000, NULL },
WAIT(30),
{ 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
{ 0x6b, 0x00, 0x0100, 0x00000000, 0x00000000, NULL },
WAIT(10),
CALL_SCRIPT(LOOK_AROUND_FUNC),
WAIT(30),
MSG_VAR(2, PARTNER_TALK_KIND, 1),
VARIANT(/* == */ 1, _(" So this is it...{WAIT_PRESS}\nThe underground cavern where\n{NAME_2} is...")),
VARIANT(/* == */ 1, _(" Look at the flowing\nstreams of lava...")),
VARIANT(/* == */ 1, _(" It wouldn't surprise me if\nthe dungeon is scorching hot...")),
VARIANT_DEFAULT(_(" This must be it...{WAIT_PRESS}\n{NAME_2} is in this underground\ncavern.")),
VARIANT_DEFAULT(_(" Whew...\nLook at the streams of lava.")),
VARIANT_DEFAULT(_(" It's going to be scorching\nhot in the dungeon, I think.")),
TEXTBOX_CLEAR,
{ 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
WAIT(5),
{ 0x93, 0x04, 0x000b, 0x00000022, 0x00000000, NULL },
WAIT(15),
MSG_VAR(2, PARTNER_TALK_KIND, 1),
VARIANT(/* == */ 1, _(" Other rescue teams should\nalready be inside.")),
VARIANT(/* == */ 1, _(" Let's get in there and give\nit our best!")),
VARIANT(/* == */ 3, _(" Other rescue teams\nshould already be here.")),
VARIANT(/* == */ 3, _(" Let's get going and try our\nbest!")),
VARIANT_DEFAULT(_(" There should be other\nrescue teams making their way through\neven now.")),
VARIANT_DEFAULT(_(" Let's try our best like\nalways!")),
TEXTBOX_CLEAR,
{ 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
{ 0x23, 0x00, 0x0050, 0x00000000, 0x00000000, NULL },
WAIT(15),
{ 0x6b, 0x00, 0x0100, 0x00000003, 0x00000000, NULL },
{ 0xe4, 0x00, 0x0003, 0x00000000, 0x00000000, NULL },
HALT,
};
static const struct ScriptCommand s_gs204_g1_s0_lives1_dlg0[] = { /* 0x825d6dc */
DEBUGINFO,
{ 0x54, 0x00, 0x0002, 0x00000000, 0x00000000, NULL },
{ 0x2d, 0x07, 0x0001, 0x00000000, 0x00000000, NULL },
{ 0xe3, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
{ 0x6b, 0x00, 0x0100, 0x00000001, 0x00000000, NULL },
CALL_SCRIPT(LOOK_AROUND_FUNC),
{ 0xe3, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
{ 0x93, 0x04, 0x000b, 0x00000000, 0x00000000, NULL },
{ 0xe3, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
{ 0x6b, 0x00, 0x0100, 0x00000002, 0x00000000, NULL },
HALT,
};
static const struct ScriptCommand s_gs204_g2_s0_station_sref_script[] = { /* 0x825d78c */
DEBUGINFO,
SELECT_MAP(MAP_MAGMA_CAVERN_ENTRY),
SELECT_ENTITIES(-1, 0),
BGM_SWITCH(108),
{ 0x22, 0x01, 0x001e, 0x00000000, 0x00000000, NULL },
{ 0xe3, 0x00, 0x0003, 0x00000000, 0x00000000, NULL },
NEXT_DUNGEON(30, SCRIPT_DUNGEON_MAGMA_CAVERN),
RET,
};
static const struct ScriptRef s_gs204_g2_s0_station_sref = { 400, 7, NULL /* EVENT_CONTROL */, s_gs204_g2_s0_station_sref_script }; /* 0x825d80c */
static const struct ScriptCommand s_gs204_g2_s0_lives0_dlg0[] = { /* 0x825d818 */
DEBUGINFO,
{ 0x54, 0x00, 0x0002, 0x00000000, 0x00000000, NULL },
{ 0x2d, 0x07, 0x0000, 0x00000000, 0x00000000, NULL },
{ 0x2d, 0x09, 0x0002, 0x00000058, 0x00000000, NULL },
{ 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
{ 0x6b, 0x00, 0x0100, 0x00000000, 0x00000000, NULL },
{ 0x93, 0x04, 0x000b, 0x00000022, 0x00000000, NULL },
WAIT(15),
MSG_VAR(2, PARTNER_TALK_KIND, 1),
VARIANT(/* == */ 1, _(" This time, we'll rescue\n{NAME_2}'s team!\nLet's get it done!")),
VARIANT_DEFAULT(_(" This time, we have to\nrescue {NAME_2}'s team!\nLet's not blow it!")),
TEXTBOX_CLEAR,
{ 0xe4, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
{ 0x23, 0x00, 0x0050, 0x00000000, 0x00000000, NULL },
WAIT(15),
{ 0x6b, 0x00, 0x0100, 0x00000003, 0x00000000, NULL },
{ 0xe4, 0x00, 0x0003, 0x00000000, 0x00000000, NULL },
HALT,
};
static const struct ScriptCommand s_gs204_g2_s0_lives1_dlg0[] = { /* 0x825d9bc */
DEBUGINFO,
{ 0x54, 0x00, 0x0002, 0x00000000, 0x00000000, NULL },
{ 0x2d, 0x07, 0x0001, 0x00000000, 0x00000000, NULL },
{ 0xe3, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
{ 0x6b, 0x00, 0x0100, 0x00000001, 0x00000000, NULL },
{ 0x93, 0x04, 0x000b, 0x00000000, 0x00000000, NULL },
{ 0xe3, 0x00, 0x0006, 0x00000000, 0x00000000, NULL },
{ 0x6b, 0x00, 0x0100, 0x00000002, 0x00000000, NULL },
HALT,
};
static const struct GroundLivesData s_gs204_g0_s1_lives[] = { /* 0x825da4c */
/* 0 */ { 0, 4, 0, 0, { 26, 29, CPOS_HALFTILE, CPOS_HALFTILE }, {
[0] = s_gs204_g0_s1_lives0_dlg0,
} },
/* 1 */ { 4, 4, 0, 0, { 26, 31, CPOS_HALFTILE, CPOS_HALFTILE }, {
[0] = s_gs204_g0_s1_lives1_dlg0,
} },
};
static const struct GroundLivesData s_gs204_g0_s3_lives[] = { /* 0x825da7c */
/* 0 */ { 0, 4, 0, 0, { 26, 29, CPOS_HALFTILE, CPOS_HALFTILE }, {
[0] = s_gs204_g0_s3_lives0_dlg0,
} },
/* 1 */ { 4, 4, 0, 0, { 26, 31, CPOS_HALFTILE, CPOS_HALFTILE }, {
[0] = s_gs204_g0_s3_lives1_dlg0,
} },
};
static const struct GroundLivesData s_gs204_g0_s4_lives[] = { /* 0x825daac */
/* 0 */ { 0, 4, 0, 0, { 26, 29, CPOS_HALFTILE, CPOS_HALFTILE }, {
[0] = s_gs204_g0_s4_lives0_dlg0,
} },
/* 1 */ { 4, 4, 0, 0, { 26, 31, CPOS_HALFTILE, CPOS_HALFTILE }, {
[0] = s_gs204_g0_s4_lives1_dlg0,
} },
};
static const struct GroundLivesData s_gs204_g1_s0_lives[] = { /* 0x825dadc */
/* 0 */ { 0, 2, 0, 0, { 28, 35, CPOS_HALFTILE, CPOS_HALFTILE }, {
[0] = s_gs204_g1_s0_lives0_dlg0,
} },
/* 1 */ { 34, 6, 0, 0, { 23, 34, CPOS_HALFTILE, CPOS_HALFTILE }, {
[0] = s_gs204_g1_s0_lives1_dlg0,
} },
};
static const struct GroundLivesData s_gs204_g2_s0_lives[] = { /* 0x825db0c */
/* 0 */ { 0, 2, 0, 0, { 28, 35, 0, CPOS_HALFTILE }, {
[0] = s_gs204_g2_s0_lives0_dlg0,
} },
/* 1 */ { 34, 6, 0, 0, { 23, 34, 0, CPOS_HALFTILE }, {
[0] = s_gs204_g2_s0_lives1_dlg0,
} },
};
static const struct GroundEffectData s_gs204_g1_s0_effs[] = { /* 0x825db3c */
/* 0 */ { 0, 0, 1, 1, { 26, 17, 0, CPOS_HALFTILE }, NULL },
};
static const struct GroundEffectData s_gs204_g2_s0_effs[] = { /* 0x825db48 */
/* 0 */ { 0, 0, 1, 1, { 26, 17, 0, CPOS_HALFTILE }, NULL },
};
static const struct ScriptRef * const (sStationScripts[]) = { /* 0x825db54 */
&s_gs204_g0_s0_station_sref,
&s_gs204_g1_s0_station_sref,
&s_gs204_g2_s0_station_sref,
};
static const struct GroundScriptSector s_gs204_g0_sectors[] = { /* 0x825db60 */
{ 0,NULL, 0,NULL, 0,NULL, 0,NULL, 1,&sStationScripts[0], },
{ LPARRAY(s_gs204_g0_s1_lives), 0,NULL, 0,NULL, 0,NULL, 0,NULL, },
{ 0,NULL, 0,NULL, 0,NULL, 0,NULL, 0,NULL, },
{ LPARRAY(s_gs204_g0_s3_lives), 0,NULL, 0,NULL, 0,NULL, 0,NULL, },
{ LPARRAY(s_gs204_g0_s4_lives), 0,NULL, 0,NULL, 0,NULL, 0,NULL, },
};
static const struct GroundScriptSector s_gs204_g1_sectors[] = { /* 0x825dc28 */
{ LPARRAY(s_gs204_g1_s0_lives), 0,NULL, LPARRAY(s_gs204_g1_s0_effs), 0,NULL, 1,&sStationScripts[1], },
};
static const struct GroundScriptSector s_gs204_g2_sectors[] = { /* 0x825dc50 */
{ LPARRAY(s_gs204_g2_s0_lives), 0,NULL, LPARRAY(s_gs204_g2_s0_effs), 0,NULL, 1,&sStationScripts[2], },
};
static const struct GroundScriptGroup s_gs204_groups[] = { /* 0x825dc78 */
{ LPARRAY(s_gs204_g0_sectors) },
{ LPARRAY(s_gs204_g1_sectors) },
{ LPARRAY(s_gs204_g2_sectors) },
{},
};
static const struct GroundLink s_gs204_links[] = { /* 0x825dc98 */
/* link 0 */ { { /*x*/ 28, /*y*/ 19, /*flags*/ CPOS_HALFTILE, CPOS_HALFTILE }, /*w*/ 1, /*h*/ 1, /*ret*/ 1, /*?*/ 0 },
/* link 1 */ { { /*x*/ 23, /*y*/ 19, /*flags*/ CPOS_HALFTILE, CPOS_HALFTILE }, /*w*/ 1, /*h*/ 1, /*ret*/ 1, /*?*/ 0 },
/* link 2 */ { { /*x*/ 26, /*y*/ 10, /*flags*/ 0, CPOS_HALFTILE }, /*w*/ 1, /*h*/ 1, /*ret*/ 1, /*?*/ 0 },
/* link 3 */ { { /*x*/ 26, /*y*/ 11, /*flags*/ 0, CPOS_HALFTILE }, /*w*/ 1, /*h*/ 1, /*ret*/ 1, /*?*/ 0 },
};
/*extern*/ const struct GroundScriptHeader gGroundScript_gs204 = { LPARRAY(s_gs204_groups), s_gs204_links }; /* 0x825dcb8 */