diff --git a/assets/xml/code/fbdemo_circle.xml b/assets/xml/code/fbdemo_circle.xml index 448a999bad..1aa2de764a 100644 --- a/assets/xml/code/fbdemo_circle.xml +++ b/assets/xml/code/fbdemo_circle.xml @@ -1,13 +1,13 @@ - - - - - + + + + + - + diff --git a/assets/xml/code/fbdemo_triforce.xml b/assets/xml/code/fbdemo_triforce.xml index 1a21af3bcb..a20e07075f 100644 --- a/assets/xml/code/fbdemo_triforce.xml +++ b/assets/xml/code/fbdemo_triforce.xml @@ -1,7 +1,7 @@ - - + + diff --git a/assets/xml/code/fbdemo_wipe1.xml b/assets/xml/code/fbdemo_wipe1.xml index f826fec325..f459c9f8ec 100644 --- a/assets/xml/code/fbdemo_wipe1.xml +++ b/assets/xml/code/fbdemo_wipe1.xml @@ -1,10 +1,10 @@ - - - + + - - + + + diff --git a/docs/tutorial/data.md b/docs/tutorial/data.md index 8fae671025..05e3a66d30 100644 --- a/docs/tutorial/data.md +++ b/docs/tutorial/data.md @@ -324,155 +324,155 @@ ovl_En_Jj: Rom 00E3E3D0:00E3F9E0 VRam 80A87800:80A88E10 Offset 000964 static CutsceneData D_80A88164[] = { CS_BEGIN_CUTSCENE(26, 1629), - CS_PLAYER_ACTION_LIST(4), - CS_PLAYER_ACTION(0x0005, 0, 240, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0003, 240, 255, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0006, 255, 285, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0020, 285, 300, 0x0000, 0xC000, 0x0000, -1732, 52, -44, -1537, 109, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), - CS_NPC_ACTION_LIST(68, 4), - CS_NPC_ACTION(0x0001, 0, 234, 0x0000, 0x4000, 0x0000, -1665, 52, -44, -1665, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), - CS_NPC_ACTION(0x0002, 234, 241, 0x41F8, 0x0000, 0x0000, -1665, 52, -44, -1603, 130, -47, 8.857142448425293f, 11.142857551574707f, -8.857142448425293f), - CS_NPC_ACTION(0x0002, 241, 280, 0x4031, 0x0000, 0x0000, -1603, 130, -47, -549, 130, -52, 27.0256404876709f, 0.0f, -27.0256404876709f), - CS_NPC_ACTION(0x0003, 280, 300, 0x0000, 0x0000, 0x0000, -549, 130, -52, -549, 130, -52, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(67, 5), - CS_NPC_ACTION(0x0001, 0, 93, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0003, 93, 121, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0001, 121, 146, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 146, 241, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0001, 241, 441, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(69, 3), - CS_NPC_ACTION(0x0001, 0, 90, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -33, 9, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 90, 330, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -62, 22, 0.0f, -0.12083332985639572f, 0.0f), - CS_NPC_ACTION(0x0003, 330, 380, 0x0000, 0x0000, 0x0000, 0, -62, 22, 0, -62, 22, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE_LIST(4), + CS_PLAYER_CUE(0x0005, 0, 240, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0003, 240, 255, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0006, 255, 285, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0020, 285, 300, 0x0000, 0xC000, 0x0000, -1732, 52, -44, -1537, 109, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), + CS_ACTOR_CUE_LIST(68, 4), + CS_ACTOR_CUE(0x0001, 0, 234, 0x0000, 0x4000, 0x0000, -1665, 52, -44, -1665, 52, -44, 1.1393037197548209e-29f, 0.0f, 1.401298464324817e-45f), + CS_ACTOR_CUE(0x0002, 234, 241, 0x41F8, 0x0000, 0x0000, -1665, 52, -44, -1603, 130, -47, 8.857142448425293f, 11.142857551574707f, -8.857142448425293f), + CS_ACTOR_CUE(0x0002, 241, 280, 0x4031, 0x0000, 0x0000, -1603, 130, -47, -549, 130, -52, 27.0256404876709f, 0.0f, -27.0256404876709f), + CS_ACTOR_CUE(0x0003, 280, 300, 0x0000, 0x0000, 0x0000, -549, 130, -52, -549, 130, -52, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(67, 5), + CS_ACTOR_CUE(0x0001, 0, 93, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0003, 93, 121, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0001, 121, 146, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 146, 241, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0001, 241, 441, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(69, 3), + CS_ACTOR_CUE(0x0001, 0, 90, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -33, 9, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 90, 330, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -62, 22, 0.0f, -0.12083332985639572f, 0.0f), + CS_ACTOR_CUE(0x0003, 330, 380, 0x0000, 0x0000, 0x0000, 0, -62, 22, 0, -62, 22, 0.0f, 0.0f, 0.0f), CS_MISC_LIST(1), CS_MISC(0x000C, 1095, 1161, 0x0000, 0x00000000, 0xFFFFFFD2, 0x00000000, 0xFFFFFFD0, 0xFFFFFFD2, 0x00000000, 0xFFFFFFD0, 0x00000000, 0x00000000, 0x00000000), - CS_SCENE_TRANS_FX(0x0009, 0, 10), - CS_PLAYER_ACTION_LIST(1), - CS_PLAYER_ACTION(0x0035, 300, 1629, 0x0000, 0x0000, 0x0000, -1630, 52, -52, -1630, 52, -52, 0.0f, 0.0f, 0.0f), - CS_CAM_EYE_LIST(0, 1091), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x015C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x016D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x017E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0223), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x7065), - CS_CAM_EYE_LIST(60, 1151), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x015C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x016D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x017E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x0223), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x7065), - CS_CAM_EYE_LIST(90, 351), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1698, 382, 455, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1698, 382, 455, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1698, 382, 455, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1694, 380, 451, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0xAC10), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0164), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0xAD78), - CS_CAM_EYE_LIST(220, 392), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0xAC10), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), - CS_CAM_EYE_LIST(240, 1331), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0xAC10), - CS_CAM_EYE_LIST(280, 1371), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0xAC10), - CS_CAM_EYE_LIST(310, 1421), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1717, 83, -59, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1717, 83, -59, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1649, 177, -59, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1533, 224, -59, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -1243, 180, -59, 0xAC10), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0x0164), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0xAD78), - CS_CAM_EYE_LIST(355, 1466), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0xAC10), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), - CS_CAM_AT_LIST(0, 1120), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.39994430541992f, -1724, -5, -45, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0xAC10), - CS_CAM_AT_LIST(60, 1180), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.39994430541992f, -1440, 241, 134, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0xAC10), - CS_CAM_AT_LIST(90, 380), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1610, 348, 373, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1610, 348, 373, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 45.39994430541992f, -1610, 348, 373, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 35.399906158447266f, -1614, 338, 367, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0xAC10), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0164), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0xAD78), - CS_CAM_AT_LIST(220, 421), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 70, 45.39994430541992f, -1724, -5, -45, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 45.39994430541992f, -1724, -5, -45, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 6, 45.79994583129883f, -1593, 150, -146, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1531, 152, -75, 0xAC10), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -1531, 152, -75, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.39994430541992f, -1531, 152, -75, 0x0000), - CS_CAM_AT_LIST(240, 1360), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.599945068359375f, -1712, 74, -37, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0xAC10), - CS_CAM_AT_LIST(280, 1400), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.599945068359375f, -1619, 99, -50, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0xAC10), - CS_CAM_AT_LIST(310, 1450), - CS_CAM_AT(CS_CMD_CONTINUE, 0x0B, 30, 90.99960327148438f, -1610, 141, -59, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x09, 10, 90.79960632324219f, -1599, 114, -57, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0xFC, 10, 90.39961242675781f, -1528, 192, -54, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 90.599609375f, -1427, 164, -54, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0xCB, 10, 90.39961242675781f, -1138, 119, -37, 0xAC10), - CS_CAM_AT(CS_CMD_CONTINUE, 0x20, 10, 90.39961242675781f, -832, 50, -51, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.39994430541992f, -836, 35, -51, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39994430541992f, -836, 35, -51, 0x0164), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.39994430541992f, -836, 35, -51, 0xAD78), - CS_CAM_AT_LIST(355, 1495), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.60000228881836f, -1706, 111, -6, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.60000228881836f, -1706, 111, -6, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.60000228881836f, -1706, 111, -6, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.60000228881836f, -1721, 82, -42, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 60.60000228881836f, -1721, 82, -42, 0xAC10), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.60000228881836f, -1721, 82, -42, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.60000228881836f, -1721, 82, -42, 0x0000), - CS_SCENE_TRANS_FX(0x000B, 335, 342), - CS_TERMINATOR(JABU_JABU_INTRO, 345, 395), - CS_NPC_ACTION_LIST(62, 1), - CS_NPC_ACTION(0x0001, 305, 494, 0x0000, 0x0000, 0x0000, -1399, 452, -53, -1399, 452, -53, 0.0f, 0.0f, 0.0f), + CS_TRANSITION(0x0009, 0, 10), + CS_PLAYER_CUE_LIST(1), + CS_PLAYER_CUE(0x0035, 300, 1629, 0x0000, 0x0000, 0x0000, -1630, 52, -52, -1630, 52, -52, 0.0f, 0.0f, 0.0f), + CS_CAM_EYE_SPLINE(0, 1091), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x015C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x016D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x017E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0223), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x7065), + CS_CAM_EYE_SPLINE(60, 1151), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x015C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x016D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x017E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x0223), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.39994430541992f, -1532, 251, 222, 0x7065), + CS_CAM_EYE_SPLINE(90, 351), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1698, 382, 455, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1698, 382, 455, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1698, 382, 455, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1694, 380, 451, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0x0164), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 32.99989700317383f, -1694, 380, 451, 0xAD78), + CS_CAM_EYE_SPLINE(220, 392), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.39994430541992f, -1641, 95, -41, 0x0000), + CS_CAM_EYE_SPLINE(240, 1331), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.599945068359375f, -1810, 65, -15, 0xAC10), + CS_CAM_EYE_SPLINE(280, 1371), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.599945068359375f, -1531, 95, -7, 0xAC10), + CS_CAM_EYE_SPLINE(310, 1421), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1717, 83, -59, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1717, 83, -59, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1649, 177, -59, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1533, 224, -59, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -1243, 180, -59, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0x0164), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.39994430541992f, -953, 71, -55, 0xAD78), + CS_CAM_EYE_SPLINE(355, 1466), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.60000228881836f, -1830, 103, 18, 0x0000), + CS_CAM_AT_SPLINE(0, 1120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.39994430541992f, -1724, -5, -45, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0xAC10), + CS_CAM_AT_SPLINE(60, 1180), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.39994430541992f, -1440, 241, 134, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.39994430541992f, -1440, 241, 134, 0xAC10), + CS_CAM_AT_SPLINE(90, 380), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1610, 348, 373, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1610, 348, 373, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 45.39994430541992f, -1610, 348, 373, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 35.399906158447266f, -1614, 338, 367, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0x0164), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 32.99989700317383f, -1614, 338, 367, 0xAD78), + CS_CAM_AT_SPLINE(220, 421), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1724, -5, -45, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 70, 45.39994430541992f, -1724, -5, -45, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 45.39994430541992f, -1724, -5, -45, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 6, 45.79994583129883f, -1593, 150, -146, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1531, 152, -75, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -1531, 152, -75, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.39994430541992f, -1531, 152, -75, 0x0000), + CS_CAM_AT_SPLINE(240, 1360), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.599945068359375f, -1712, 74, -37, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.599945068359375f, -1712, 74, -37, 0xAC10), + CS_CAM_AT_SPLINE(280, 1400), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.599945068359375f, -1619, 99, -50, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.599945068359375f, -1619, 99, -50, 0xAC10), + CS_CAM_AT_SPLINE(310, 1450), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x0B, 30, 90.99960327148438f, -1610, 141, -59, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x09, 10, 90.79960632324219f, -1599, 114, -57, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0xFC, 10, 90.39961242675781f, -1528, 192, -54, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 90.599609375f, -1427, 164, -54, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0xCB, 10, 90.39961242675781f, -1138, 119, -37, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x20, 10, 90.39961242675781f, -832, 50, -51, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.39994430541992f, -836, 35, -51, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39994430541992f, -836, 35, -51, 0x0164), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.39994430541992f, -836, 35, -51, 0xAD78), + CS_CAM_AT_SPLINE(355, 1495), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.60000228881836f, -1706, 111, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.60000228881836f, -1706, 111, -6, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.60000228881836f, -1706, 111, -6, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.60000228881836f, -1721, 82, -42, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.60000228881836f, -1721, 82, -42, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.60000228881836f, -1721, 82, -42, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.60000228881836f, -1721, 82, -42, 0x0000), + CS_TRANSITION(0x000B, 335, 342), + CS_DESTINATION(CS_DEST_JABU_JABU, 345, 395), + CS_ACTOR_CUE_LIST(62, 1), + CS_ACTOR_CUE(0x0001, 305, 494, 0x0000, 0x0000, 0x0000, -1399, 452, -53, -1399, 452, -53, 0.0f, 0.0f, 0.0f), CS_END(), }; ``` diff --git a/docs/tutorial/other_functions.md b/docs/tutorial/other_functions.md index fd8878d28d..5fd682a74d 100644 --- a/docs/tutorial/other_functions.md +++ b/docs/tutorial/other_functions.md @@ -377,7 +377,7 @@ void func_80A87CEC(EnJj *this, PlayState *play) { sp1C = temp_v1; play = play; func_80A87800(this, &func_80A87EF0); - play->csCtx.segment = &D_80A88164; + play->csCtx.script = &D_80A88164; gSaveContext.cutsceneTrigger = (u8)1U; func_8003EBF8(play, &play->colCtx.dyna, (s32) temp_v1->bgId); func_8005B1A4(play->cameraPtrs[play->activeCamId]); @@ -415,7 +415,7 @@ void func_80A87CEC(EnJj *this, PlayState *play) { return; } func_80A87800(this, func_80A87EF0); - play->csCtx.segment = &D_80A88164; + play->csCtx.script = &D_80A88164; gSaveContext.cutsceneTrigger = 1; func_8003EBF8(play, &play->colCtx.dyna, child->bgId); func_8005B1A4(GET_ACTIVE_CAM(play)); @@ -434,7 +434,7 @@ void func_80A87CEC(EnJj* this, PlayState* play) { this->unk_30C--; } else { func_80A87800(this, func_80A87EF0); - play->csCtx.segment = &D_80A88164; + play->csCtx.script = &D_80A88164; gSaveContext.cutsceneTrigger = 1; func_8003EBF8(play, &play->colCtx.dyna, child->bgId); func_8005B1A4(GET_ACTIVE_CAM(play)); @@ -516,12 +516,12 @@ This has several problems: firstly, the action function is called with the wrong `unk40` of an array of `Vec3s`s is `0x40 = 0x6 * 0xA + 0x4`, so is actually `this->skelAnime.jointTable[10].z` -Lastly, what is `play->unk1D94`? It is at `play->csCtx + 0x30`, or `play->csCtx.npcActions + 0x8`, which is `play->csCtx.npcActions[2]` since this is an array of pointers. Hence it is a pointer, and so should be compared to `NULL`. Looking up the sfx Id again, we end up with +Lastly, what is `play->unk1D94`? It is at `play->csCtx + 0x30`, or `play->csCtx.actorCues + 0x8`, which is `play->csCtx.actorCues[2]` since this is an array of pointers. Hence it is a pointer, and so should be compared to `NULL`. Looking up the sfx Id again, we end up with ```C void EnJj_Update(Actor *thisx, PlayState *play) { EnJj* this = THIS; - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[2] != NULL)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[2] != NULL)) { func_80A87D94(this, play); } else { this->actionFunc(this, play); @@ -703,7 +703,7 @@ At the top we have if (temp_v0 != 2) { if (temp_v0 != 3) { ``` -Firstly, we are now comparing with the value of `play->unk1D94`, not just using a pointer, so we need the first thing in `play->csCtx.npcActions[2]`. This turns out to be `play->csCtx.npcActions[2]->action`. +Firstly, we are now comparing with the value of `play->unk1D94`, not just using a pointer, so we need the first thing in `play->csCtx.actorCues[2]`. This turns out to be `play->csCtx.actorCues[2]->id`. The if structure here is another classic indicator of a switch: nested, with the same variable compared multiple times. If you were to diff this as-is, you would find that the code is in completely the wrong order. Reading how the ifs work, we see that if `temp_v0` is `1`, it executes the outermost else block, if it is `2`, the middle, if `3`, the innermost, and if it is anything else, the contents of the innermost if. Hence this becomes ```C @@ -719,7 +719,7 @@ void func_80A87D94(EnJj *this, PlayState *play) { u16 temp_v1_3; u16 phi_v1; - switch (play->csCtx.npcActions[2]->action) { + switch (play->csCtx.actorCues[2]->id) { case 1: temp_v1_3 = this->unk_30A; phi_v1 = temp_v1_3; @@ -785,7 +785,7 @@ As usual, most of the remaining temps look fake. The only one that does not is p ```C void func_80A87D94(EnJj* this, PlayState* play) { - switch (play->csCtx.npcActions[2]->action) { + switch (play->csCtx.actorCues[2]->id) { case 1: if ((this->unk_30A & 2) != 0) { this->unk_30E = 0; diff --git a/include/functions.h b/include/functions.h index 8abbbe9eb7..b54af48330 100644 --- a/include/functions.h +++ b/include/functions.h @@ -770,14 +770,14 @@ DebugDispObject* DebugDisplay_AddObject(f32 posX, f32 posY, f32 posZ, s16 rotX, f32 scaleY, f32 scaleZ, u8 red, u8 green, u8 blue, u8 alpha, s16 type, GraphicsContext* gfxCtx); void DebugDisplay_DrawObjects(PlayState* play); -void func_8006450C(PlayState* play, CutsceneContext* csCtx); -void func_80064520(PlayState* play, CutsceneContext* csCtx); -void func_80064534(PlayState* play, CutsceneContext* csCtx); -void func_80064558(PlayState* play, CutsceneContext* csCtx); -void func_800645A0(PlayState* play, CutsceneContext* csCtx); +void Cutscene_InitContext(PlayState* play, CutsceneContext* csCtx); +void Cutscene_StartManual(PlayState* play, CutsceneContext* csCtx); +void Cutscene_StopManual(PlayState* play, CutsceneContext* csCtx); +void Cutscene_UpdateManual(PlayState* play, CutsceneContext* csCtx); +void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx); void Cutscene_HandleEntranceTriggers(PlayState* play); void Cutscene_HandleConditionalTriggers(PlayState* play); -void Cutscene_SetSegment(PlayState* play, void* segment); +void Cutscene_SetScript(PlayState* play, void* script); void* MemCpy(void* dest, const void* src, s32 len); void GetItem_Draw(PlayState* play, s16 drawId); void SfxSource_InitAll(PlayState* play); @@ -786,10 +786,10 @@ void SfxSource_PlaySfxAtFixedWorldPos(PlayState* play, Vec3f* worldPos, s32 dura u16 QuestHint_GetSariaTextId(PlayState* play); u16 QuestHint_GetNaviTextId(PlayState* play); u16 Text_GetFaceReaction(PlayState* play, u32 reactionSet); -void Flags_UnsetAllEnv(PlayState* play); -void Flags_SetEnv(PlayState* play, s16 flag); -void Flags_UnsetEnv(PlayState* play, s16 flag); -s32 Flags_GetEnv(PlayState* play, s16 flag); +void CutsceneFlags_UnsetAll(PlayState* play); +void CutsceneFlags_Set(PlayState* play, s16 flag); +void CutsceneFlags_Unset(PlayState* play, s16 flag); +s32 CutsceneFlags_Get(PlayState* play, s16 flag); s32 func_8006CFC0(s32 sceneId); void func_8006D074(PlayState* play); void func_8006D0AC(PlayState* play); @@ -1239,7 +1239,7 @@ void TransitionCircle_Draw(void* thisx, Gfx** gfxP); s32 TransitionCircle_IsDone(void* thisx); void TransitionCircle_SetType(void* thisx, s32 type); void TransitionCircle_SetColor(void* thisx, u32 color); -void TransitionCircle_SetUnkColor(void* thisx, u32 unkColor); +void TransitionCircle_SetUnkColor(void* thisx, u32 color); void TransitionFade_Start(void* thisx); void* TransitionFade_Init(void* thisx); void TransitionFade_Destroy(void* thisx); @@ -1667,7 +1667,7 @@ OcarinaStaff* AudioOcarina_GetPlayingStaff(void); OcarinaStaff* AudioOcarina_GetPlaybackStaff(void); void AudioOcarina_MemoryGameInit(u8 minigameRound); s32 AudioOcarina_MemoryGameNextNote(void); -void AudioOcarina_PlayLongScarecrowAfterCredits(void); +void AudioOcarina_PlayLongScarecrowSong(void); void AudioDebug_Draw(GfxPrint* printer); void AudioDebug_ScrPrt(const char* str, u16 num); void func_800F3054(void); @@ -2008,8 +2008,8 @@ u8 Message_ShouldAdvance(PlayState* play); void Message_CloseTextbox(PlayState*); void Message_StartTextbox(PlayState* play, u16 textId, Actor* actor); void Message_ContinueTextbox(PlayState* play, u16 textId); -void func_8010BD58(PlayState* play, u16 ocarinaActionId); -void func_8010BD88(PlayState* play, u16 ocarinaActionId); +void Message_StartOcarina(PlayState* play, u16 ocarinaActionId); +void Message_StartOcarinaSunsSongDisabled(PlayState* play, u16 ocarinaActionId); u8 Message_GetState(MessageContext* msgCtx); void Message_Draw(PlayState* play); void Message_Update(PlayState* play); diff --git a/include/regs.h b/include/regs.h index 573c10e10d..0bac6e7c30 100644 --- a/include/regs.h +++ b/include/regs.h @@ -157,6 +157,7 @@ #define R_TEXTBOX_TEXHEIGHT_TARGET XREG(77) #define R_ENV_LIGHT1_DIR(i) cREG(3 + (i)) #define R_ENV_LIGHT2_DIR(i) cREG(6 + (i)) +#define R_TRANS_FADE_FLASH_ALPHA_STEP iREG(50) // Set to a negative number to start the flash #define R_ROOM_CULL_DEBUG_MODE iREG(86) #define R_ROOM_CULL_NUM_ENTRIES iREG(87) #define R_ROOM_CULL_USED_ENTRIES iREG(88) @@ -219,6 +220,7 @@ #define R_ENABLE_PLAY_LOGS HREG(63) #define R_EN_GOROIWA_SPEED mREG(12) #define R_NAVI_MSG_REGION_ALPHA nREG(87) +#define R_USE_DEBUG_CUTSCENE dREG(95) #define R_HREG_MODE HREG(80) // see `HRegMode` for mode options diff --git a/include/variables.h b/include/variables.h index 03d9fa47c4..cd14efb6a2 100644 --- a/include/variables.h +++ b/include/variables.h @@ -98,7 +98,7 @@ extern u64 gMojiFontTex[]; // original name: "font_ff" extern KaleidoMgrOverlay gKaleidoMgrOverlayTable[KALEIDO_OVL_MAX]; extern KaleidoMgrOverlay* gKaleidoMgrCurOvl; extern u8 gBossMarkState; -extern void* D_8012D1F0; +extern void* gDebugCutsceneScript; extern s32 gScreenWidth; extern s32 gScreenHeight; extern Mtx gMtxClear; @@ -168,10 +168,12 @@ extern u8 gSampleBankTable[]; extern SaveContext gSaveContext; extern RegEditor* gRegEditor; -extern u16 D_8015FCC0; -extern u16 D_8015FCC2; -extern u16 D_8015FCC4; -extern u8 D_8015FCC8; + +extern u16 gCamAtSplinePointsAppliedFrame; +extern u16 gCamEyePointAppliedFrame; +extern u16 gCamAtPointAppliedFrame; +extern u8 gUseCutsceneCam; + extern u8 gCustomLensFlareOn; extern Vec3f gCustomLensFlarePos; extern s16 gLensFlareScale; @@ -182,7 +184,7 @@ extern MapData* gMapData; extern f32 gBossMarkScale; extern PauseMapMarksData* gLoadedPauseMarkDataTable; extern s32 gTrnsnUnkState; -extern Color_RGBA8_u32 D_801614B0; +extern Color_RGBA8_u32 gVisMonoColor; extern PreNmiBuff* gAppNmiBufferPtr; extern Scheduler gScheduler; extern uintptr_t gSegments[NUM_SEGMENTS]; diff --git a/include/z64.h b/include/z64.h index 798c2d9623..c70c68d164 100644 --- a/include/z64.h +++ b/include/z64.h @@ -342,19 +342,19 @@ typedef struct { typedef struct { /* 0x00 */ char unk_00[0x4]; - /* 0x04 */ void* segment; - /* 0x08 */ u8 state; - /* 0x0C */ f32 unk_0C; - /* 0x10 */ u16 frames; - /* 0x12 */ u16 unk_12; - /* 0x14 */ s32 subCamId; - /* 0x18 */ u16 unk_18; - /* 0x1A */ u8 unk_1A; - /* 0x1B */ u8 unk_1B; - /* 0x1C */ CutsceneCameraPoint* subCamLookAtPoints; - /* 0x20 */ CutsceneCameraPoint* subCamEyePoints; - /* 0x24 */ CsCmdActorAction* linkAction; - /* 0x28 */ CsCmdActorAction* npcActions[10]; // "npcdemopnt" + /* 0x04 */ void* script; + /* 0x08 */ u8 state; + /* 0x0C */ f32 timer; + /* 0x10 */ u16 curFrame; // current frame of the script that is running + /* 0x12 */ u16 unk_12; // set but never used + /* 0x14 */ s32 subCamId; + /* 0x18 */ u16 camEyeSplinePointsAppliedFrame; // stores the frame the cam eye spline points data was last applied on + /* 0x1A */ u8 camAtReady; // cam `at` data is ready to be applied + /* 0x1B */ u8 camEyeReady; // cam `eye` data is ready to be applied + /* 0x1C */ CutsceneCameraPoint* camAtPoints; + /* 0x20 */ CutsceneCameraPoint* camEyePoints; + /* 0x24 */ CsCmdActorCue* playerCue; + /* 0x28 */ CsCmdActorCue* actorCues[10]; // "npcdemopnt" } CutsceneContext; // size = 0x50 typedef struct { @@ -540,8 +540,8 @@ typedef struct { /* 0xE404 */ s16 textboxColorAlphaTarget; /* 0xE406 */ s16 textboxColorAlphaCurrent; /* 0xE408 */ Actor* talkActor; - /* 0xE40C */ s16 disableWarpSongs; // warp song flag set by scene commands - /* 0xE40E */ s16 unk_E40E; // ocarina related + /* 0xE40C */ s16 disableWarpSongs; // disables ability to warp with warp songs + /* 0xE40E */ s16 disableSunsSong; // disables Suns Song effect from occurring after song is played /* 0xE410 */ u8 lastOcarinaButtonIndex; } MessageContext; // size = 0xE418 @@ -1245,7 +1245,7 @@ typedef struct PlayState { /* 0x11DE0 */ Mtx* billboardMtx; /* 0x11DE4 */ u32 gameplayFrames; /* 0x11DE8 */ u8 linkAgeOnLoad; - /* 0x11DE9 */ u8 unk_11DE9; + /* 0x11DE9 */ u8 haltAllActors; /* 0x11DEA */ u8 spawn; /* 0x11DEB */ u8 numActorEntries; /* 0x11DEC */ u8 numRooms; @@ -1268,14 +1268,14 @@ typedef struct PlayState { /* 0x11E5D */ s8 bombchuBowlingStatus; // "bombchu_game_flag" /* 0x11E5E */ u8 transitionType; /* 0x11E60 */ CollisionCheckContext colChkCtx; - /* 0x120FC */ u16 envFlags[20]; + /* 0x120FC */ u16 cutsceneFlags[20]; /* 0x12124 */ PreRender pauseBgPreRender; /* 0x12174 */ char unk_12174[0x53]; /* 0x121C7 */ s8 unk_121C7; /* 0x121C8 */ TransitionContext transitionCtx; /* 0x12418 */ char unk_12418[0x3]; /* 0x1241B */ u8 transitionMode; // "fbdemo_wipe_modem" - /* 0x1241C */ TransitionFade transitionFade; + /* 0x1241C */ TransitionFade transitionFadeFlash; // Transition fade instance which flashes screen, see R_TRANS_FADE_FLASH_ALPHA_STEP /* 0x12428 */ char unk_12428[0x3]; /* 0x1242B */ u8 viewpoint; // toggleable camera setting by shops or player. Is also equal to the bgCamIndex + 1 /* 0x1242C */ SceneTableEntry* loadedScene; diff --git a/include/z64actor.h b/include/z64actor.h index ad627d6f3e..8e20143a04 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -207,7 +207,7 @@ typedef struct Actor { /* 0x04C */ f32 targetArrowOffset; // Height offset of the target arrow relative to `focus` position /* 0x050 */ Vec3f scale; // Scale of the actor in each axis /* 0x05C */ Vec3f velocity; // Velocity of the actor in each axis - /* 0x068 */ f32 speedXZ; // How fast the actor is traveling along the XZ plane + /* 0x068 */ f32 speed; // Context dependent speed value. Can be used for XZ or XYZ depending on which move function is used /* 0x06C */ f32 gravity; // Acceleration due to gravity. Value is added to Y velocity every frame /* 0x070 */ f32 minVelocityY; // Sets the lower bounds cap on velocity along the Y axis /* 0x074 */ CollisionPoly* wallPoly; // Wall polygon the actor is touching diff --git a/include/z64cutscene.h b/include/z64cutscene.h index d01281613e..e509138d22 100644 --- a/include/z64cutscene.h +++ b/include/z64cutscene.h @@ -3,140 +3,6 @@ #include "ultra64.h" -typedef struct { - /* 0x00 */ u16 entrance; // entrance index upon which the cutscene should trigger - /* 0x02 */ u8 ageRestriction; // 0 for adult only, 1 for child only, 2 for both ages - /* 0x03 */ u8 flag; // eventChkInf flag bound to the entrance cutscene - /* 0x04 */ void* segAddr; // segment offset location of the cutscene -} EntranceCutscene; // size = 0x8 - -typedef struct { - /* 0x00 */ s8 continueFlag; - /* 0x01 */ s8 cameraRoll; - /* 0x02 */ u16 nextPointFrame; - /* 0x04 */ f32 viewAngle; // in degrees - /* 0x08 */ Vec3s pos; -} CutsceneCameraPoint; // size = 0x10 - -typedef struct { - /* 0x00 */ Vec3f at; - /* 0x0C */ Vec3f eye; - /* 0x18 */ s16 roll; - /* 0x1A */ s16 fov; -} CutsceneCameraDirection; // size = 0x1C - -typedef struct { - /* 0x0 */ CutsceneCameraPoint* atPoints; - /* 0x4 */ CutsceneCameraPoint* eyePoints; - /* 0x8 */ s16 relativeToPlayer; -} CutsceneCameraMove; // size = 0xC - -typedef struct { - /* 0x00 */ u16 base; - /* 0x02 */ u16 startFrame; - /* 0x04 */ u16 endFrame; -} CsCmdBase; // size = 0x6 - -typedef struct { - /* 0x00 */ u8 unk_00; - /* 0x01 */ u8 setting; - /* 0x02 */ u16 startFrame; - /* 0x04 */ u16 endFrame; -} CsCmdEnvLighting; // size = 0x6 - -typedef struct { - /* 0x00 */ u8 unk_00; - /* 0x01 */ u8 sequence; - /* 0x02 */ u16 startFrame; - /* 0x04 */ u16 endFrame; -} CsCmdMusicChange; // size = 0x6 - -typedef struct { - /* 0x00 */ u16 type; - /* 0x02 */ u16 startFrame; - /* 0x04 */ u16 endFrame; -} CsCmdMusicFade; // size = 0x6 - -typedef struct { - /* 0x00 */ u16 unk_00; - /* 0x02 */ u16 startFrame; - /* 0x04 */ u16 endFrame; - /* 0x06 */ u8 unk_06; - /* 0x07 */ u8 unk_07; - /* 0x08 */ u8 unk_08; -} CsCmdUnknown9; // size = 0xA - -typedef struct { - /* 0x00 */ u16 unk_00; - /* 0x02 */ u16 startFrame; - /* 0x04 */ u16 endFrame; - /* 0x06 */ u8 hour; - /* 0x07 */ u8 minute; -} CsCmdDayTime; // size = 0x8 - -typedef struct { - /* 0x00 */ u16 base; - /* 0x02 */ u16 startFrame; - /* 0x04 */ u16 endFrame; - /* 0x06 */ u16 type; - /* 0x08 */ u16 textId1; - /* 0x0A */ u16 textId2; -} CsCmdTextbox; // size = 0xC - -typedef struct { - /* 0x00 */ u16 action; // "dousa" - /* 0x02 */ u16 startFrame; - /* 0x04 */ u16 endFrame; - union { - /* 0x06 */ Vec3s rot; - /* 0x06 */ Vec3us urot; - }; - /* 0x0C */ Vec3i startPos; - /* 0x18 */ Vec3i endPos; - /* 0x24 */ Vec3i normal; -} CsCmdActorAction; // size = 0x30 - -typedef enum { - CS_STATE_IDLE, - CS_STATE_SKIPPABLE_INIT, - CS_STATE_SKIPPABLE_EXEC, - CS_STATE_UNSKIPPABLE_INIT, - CS_STATE_UNSKIPPABLE_EXEC -} CutsceneState; - -typedef enum { - CS_CMD_00 = 0x0000, - CS_CMD_CAM_EYE = 0x0001, - CS_CMD_CAM_AT = 0x0002, - CS_CMD_MISC = 0x0003, - CS_CMD_SET_LIGHTING = 0x0004, - CS_CMD_CAM_EYE_REL_TO_PLAYER = 0x0005, - CS_CMD_CAM_AT_REL_TO_PLAYER = 0x0006, - CS_CMD_07 = 0x0007, - CS_CMD_08 = 0x0008, - CS_CMD_09 = 0x0009, - CS_CMD_TEXTBOX = 0x0013, - CS_CMD_SET_PLAYER_ACTION = 0x000A, - CS_CMD_SET_ACTOR_ACTION_1 = 0x000F, - CS_CMD_SET_ACTOR_ACTION_2 = 0x000E, - CS_CMD_SET_ACTOR_ACTION_3 = 0x0019, - CS_CMD_SET_ACTOR_ACTION_4 = 0x001D, - CS_CMD_SET_ACTOR_ACTION_5 = 0x001E, - CS_CMD_SET_ACTOR_ACTION_6 = 0x002C, - CS_CMD_SET_ACTOR_ACTION_7 = 0x001F, - CS_CMD_SET_ACTOR_ACTION_8 = 0x0031, - CS_CMD_SET_ACTOR_ACTION_9 = 0x003E, - CS_CMD_SET_ACTOR_ACTION_10 = 0x008F, - CS_CMD_SCENE_TRANS_FX = 0x002D, - CS_CMD_NOP = 0x000B, - CS_CMD_PLAYBGM = 0x0056, - CS_CMD_STOPBGM = 0x0057, - CS_CMD_FADEBGM = 0x007C, - CS_CMD_SETTIME = 0x008C, - CS_CMD_TERMINATOR = 0x03E8, - CS_CMD_END = 0xFFFF -} CutsceneCmd; - /** * Special type for blocks of cutscene data, asm-processor checks * arrays for CutsceneData type and converts floats within the array @@ -158,131 +24,493 @@ typedef union CutsceneData { s8 b[4]; } CutsceneData; -#define CS_CMD_CONTINUE 0 -#define CS_CMD_STOP -1 - -// TODO confirm correctness, clarify names typedef enum { - /* 0x00 */ INVALID_DESTINATION_0, - /* 0x01 */ CUTSCENE_MAP_GANON_HORSE, - /* 0x02 */ CUTSCENE_MAP_THREE_GODESSES_POST_DEKU_TREE, - /* 0x03 */ GERUDO_VALLEY_DIN, - /* 0x04 */ DEATH_MOUNTAIN_TRAIL_NAYRU, - /* 0x05 */ KOKIRI_FOREST_FARORE, - /* 0x06 */ CUTSCENE_MAP_TRIFORCE_CREATION, - /* 0x07 */ KOKIRI_FOREST_RECEIVE_KOKIRI_EMERALD, - /* 0x08 */ TEMPLE_OF_TIME_AFTER_USE_MS, - /* 0x09 */ GERUDO_VALLEY_DIN_2, - /* 0x0A */ LINKS_HOUSE_INTRO, - /* 0x0B */ KOKIRI_FOREST_INTRO, - /* 0x0C */ DEATH_MOUNTAIN_TRAIL_AFTER_GORON_RUBY, - /* 0x0D */ ZORAS_FOUNTAIN_AFTER_ZORAS_SAPPHIRE, - /* 0x0E */ KOKIRI_FOREST_AFTER_KOKIRI_EMERALD, - /* 0x0F */ TEMPLE_OF_TIME_KOKIRI_EMERALD, //unused - /* 0x10 */ TEMPLE_OF_TIME_GORON_RUBY, //unused - /* 0x11 */ TEMPLE_OF_TIME_ZORAS_SAPPHIRE, //unused - /* 0x12 */ TEMPLE_OF_TIME_AFTER_USE_MS_FIRST, - /* 0x13 */ DEATH_MOUNTAIN_TRAIL_AFTER_INTRO, - /* 0x14 */ INVALID_DESTINATION_14, - /* 0x15 */ LAKE_HYLIA_WATER_RISES, - /* 0x16 */ DESERT_COLOSSUS_REQUIEM, - /* 0x17 */ CUTSCENE_MAP_CURSE_YOU, - /* 0x18 */ JABU_JABU_INTRO, - /* 0x19 */ CHAMBER_OF_SAGES_LIGHT_MEDALLION, - /* 0x1A */ TEMPLE_OF_TIME_KOKIRI_EMERALD_2, //duplicate of 0x000F - /* 0x1B */ TEMPLE_OF_TIME_GORON_RUBY_2, //duplicate of 0x0010 - /* 0x1C */ TEMPLE_OF_TIME_ZORAS_SAPPHIRE_2, //duplicate of 0x0011 - /* 0x1D */ CHAMBER_OF_SAGES_FOREST_MEDALLION, - /* 0x1E */ CHAMBER_OF_SAGES_FIRE_MEDALLION, - /* 0x1F */ CHAMBER_OF_SAGES_WATER_MEDALLION, - /* 0x20 */ HYRULE_FIELD_FLASHBACK, //lacs part 4 - /* 0x21 */ HYRULE_FIELD_AFTER_LAKE_HYLIA_OWL, - /* 0x22 */ CUTSCENE_MAP_GANON_AFTER_USE_MS, - /* 0x23 */ HYRULE_FIELD_INTRO_ZELDA_ESCAPE, - /* 0x24 */ INVALID_DESTINATION_24, - /* 0x25 */ INVALID_DESTINATION_25, - /* 0x26 */ CUTSCENE_MAP_SHEIKAH_LEGEND, //lacs part 2 - /* 0x27 */ TEMPLE_OF_TIME_ZELDA_REVEAL, //lacs part 3 - /* 0x28 */ TEMPLE_OF_TIME_GET_LIGHT_ARROWS, //lacs part 5 - /* 0x29 */ LAKE_HYLIA_AFTER_BLUE_WARP, - /* 0x2A */ KAKARIKO_VILLAGE_DRAIN_WELL, - /* 0x2B */ WINDMILL_AFTER_DRAIN_WELL, - /* 0x2C */ TEMPLE_OF_TIME_AFTER_DOOR_OF_TIME_OPENS, - /* 0x2D */ INVALID_DESTINATION_2D, - /* 0x2E */ TEMPLE_OF_TIME_AFTER_USE_MS_FIRST_2, // duplicate of 0x0012 - /* 0x2F */ KAKARIKO_VILLAGE_NOCTURNE_PART_2, - /* 0x30 */ DESERT_COLOSSUS_AFTER_REQUIEM, - /* 0x31 */ TEMPLE_OF_TIME_AFTER_LIGHT_ARROWS, - /* 0x32 */ KAKARIKO_VILLAGE_AFTER_NOCTURNE, - /* 0x33 */ HYRULE_FIELD_IMPA_ESCORT_CS, - /* 0x34 */ TEMPLE_OF_TIME_SONG_OF_TIME, - /* 0x35 */ HYRULE_FIELD_AFTER_SONG_OF_TIME, - /* 0x36 */ GERUDO_VALLEY_CREDITS, - /* 0x37 */ GERUDO_FORTRESS_CREDITS, - /* 0x38 */ KAKARIKO_VILLAGE_CREDITS, - /* 0x39 */ DEATH_MOUNTAIN_TRAIL_CREDITS_1, - /* 0x3A */ GORON_CITY_CREDITS, // unused? - /* 0x3B */ LAKE_HYLIA_CREDITS, - /* 0x3C */ ZORAS_FOUNTAIN_CREDITS, // unused - /* 0x3D */ ZORAS_DOMAIN_CREDITS, - /* 0x3E */ KOKIRI_FOREST_CREDITS_1, - /* 0x3F */ KOKIRI_FOREST_CREDITS_2, - /* 0x40 */ HYRULE_FIELD_CREDITS, - /* 0x41 */ LON_LON_RANCH_CREDITS_1, - /* 0x42 */ KAKARIKO_VILLAGE_AFTER_TRAIL_OWL, - /* 0x43 */ HTRULE_FIELD_UNUSED_ENTRANCE, - /* 0x44 */ CUTSCENE_MAP_FIRE, - /* 0x45 */ KOKIRI_FOREST_POST_FOREST_MEDALLION, - /* 0x46 */ DEATH_MOUNTAIN_TRAIL_CREDITS_2, - /* 0x47 */ TEMPLE_OF_TIME_CREDITS, - /* 0x48 */ ZELDAS_COURTYARD_CREDITS, - /* 0x49 */ LON_LON_RANCH_CREDITS_1_2, // duplicate of 0x0041 - /* 0x4A */ LON_LON_RANCH_CREDITS_2, - /* 0x4B */ LON_LON_RANCH_CREDITS_3, - /* 0x4C */ LON_LON_RANCH_CREDITS_4, - /* 0x4D */ LON_LON_RANCH_CREDITS_5, - /* 0x4E */ LON_LON_RANCH_CREDITS_6, - /* 0x4F */ LON_LON_RANCH_NO_CS_1, - /* 0x50 */ LON_LON_RANCH_NO_CS_2, - /* 0x51 */ LON_LON_RANCH_NO_CS_3, - /* 0x52 */ LON_LON_RANCH_NO_CS_4, - /* 0x53 */ LON_LON_RANCH_NO_CS_5, - /* 0x54 */ LON_LON_RANCH_NO_CS_6, - /* 0x55 */ LON_LON_RANCH_NO_CS_7, - /* 0x56 */ LON_LON_RANCH_NO_CS_8, - /* 0x57 */ LON_LON_RANCH_NO_CS_9, - /* 0x58 */ LON_LON_RANCH_NO_CS_10, - /* 0x59 */ LON_LON_RANCH_NO_CS_11, - /* 0x5A */ LON_LON_RANCH_NO_CS_12, - /* 0x5B */ LON_LON_RANCH_NO_CS_13, - /* 0x5C */ LON_LON_RANCH_NO_CS_14, - /* 0x5D */ LON_LON_RANCH_NO_CS_15, - /* 0x5E */ LON_LON_RANCH_NO_CS_EPONAS_SONG, - /* 0x5F */ CONDITIONAL_DESTINATION, // TODO more descriptive name? - /* 0x60 */ DESERT_COLOSSUS_SPIRIT_BLUE_WARP, - /* 0x61 */ GRAVEYARD_AFTER_SHADOW_BLUE_WARP, - /* 0x62 */ DEATH_MOUNTAIN_CRATER_AFTER_FIRE_BLUE_WARP, - /* 0x63 */ SACRED_FOREST_MEADOW_AFTER_FOREST_BLUE_WARP, - /* 0x64 */ KOKIRI_FOREST_AFTER_FOREST_BLUE_WARP, - /* 0x65 */ DESERT_COLOSSUS_AFTER_SILVER_GAUNTLETS, - /* 0x66 */ TEMPLE_OF_TIME_FRONT_OF_PEDESTAL, - /* 0x67 */ HYRULE_FIELD_TITLE_SCREEN, - /* 0x68 */ SPIRIT_TEMPLE_BOSS_TITLE_SCREEN, - /* 0x69 */ GRAVEYARD_SUNS_SONG, - /* 0x6A */ ROYAL_FAMILYS_TOMB_SUNS_SONG, - /* 0x6B */ GANONS_CASTLE_AFTER_FOREST_TRIAL, - /* 0x6C */ GANONS_CASTLE_AFTER_WATER_TRIAL, - /* 0x6D */ GANONS_CASTLE_AFTER_SHADOW_TRIAL, - /* 0x6E */ GANONS_CASTLE_AFTER_FIRE_TRIAL, - /* 0x6F */ GANONS_CASTLE_AFTER_LIGHT_TRIAL, - /* 0x70 */ GANONS_CASTLE_AFTER_SPIRIT_TRIAL, - /* 0x71 */ GANONS_CASTLE_DISPEL_BARRIER_IF_CONDITIONS, - /* 0x72 */ HYRULE_FIELD_INTRO, - /* 0x73 */ HYRULE_FIELD_AFTER_IMPA_ESCORT, - /* 0x74 */ DESERT_COLOSSUS_SPIRIT_BLUE_WARP_2, - /* 0x75 */ HYRULE_FIELD_SKY, - /* 0x76 */ GANON_BATTLE_TOWER_COLLAPSE, - /* 0x77 */ ZELDAS_COURTYARD_RECEIVE_LETTER -} CutsceneTerminatorDestination; + /* 0 */ CS_STATE_IDLE, + /* 1 */ CS_STATE_START, + /* 2 */ CS_STATE_RUN, + /* 3 */ CS_STATE_STOP, + /* 4 */ CS_STATE_RUN_UNSTOPPABLE +} CutsceneState; + +typedef enum { + /* 0x0001 */ CS_CMD_CAM_EYE_SPLINE = 0x01, + /* 0x0002 */ CS_CMD_CAM_AT_SPLINE, + /* 0x0003 */ CS_CMD_MISC, + /* 0x0004 */ CS_CMD_LIGHT_SETTING, + /* 0x0005 */ CS_CMD_CAM_EYE_SPLINE_REL_TO_PLAYER, + /* 0x0006 */ CS_CMD_CAM_AT_SPLINE_REL_TO_PLAYER, + /* 0x0007 */ CS_CMD_CAM_EYE, + /* 0x0008 */ CS_CMD_CAM_AT, + /* 0x0009 */ CS_CMD_RUMBLE_CONTROLLER, + /* 0x000A */ CS_CMD_PLAYER_CUE, + /* 0x000B */ CS_CMD_UNIMPLEMENTED_B, + /* 0x000D */ CS_CMD_UNIMPLEMENTED_D = 0x0D, + /* 0x000E */ CS_CMD_ACTOR_CUE_1_0, + /* 0x000F */ CS_CMD_ACTOR_CUE_0_0, + /* 0x0010 */ CS_CMD_ACTOR_CUE_1_1, + /* 0x0011 */ CS_CMD_ACTOR_CUE_0_1, + /* 0x0012 */ CS_CMD_ACTOR_CUE_0_2, + /* 0x0013 */ CS_CMD_TEXT, + /* 0x0015 */ CS_CMD_UNIMPLEMENTED_15 = 0x15, + /* 0x0016 */ CS_CMD_UNIMPLEMENTED_16, + /* 0x0017 */ CS_CMD_ACTOR_CUE_0_3, + /* 0x0018 */ CS_CMD_ACTOR_CUE_1_2, + /* 0x0019 */ CS_CMD_ACTOR_CUE_2_0, + /* 0x001B */ CS_CMD_UNIMPLEMENTED_1B = 0x1B, + /* 0x001C */ CS_CMD_UNIMPLEMENTED_1C, + /* 0x001D */ CS_CMD_ACTOR_CUE_3_0, + /* 0x001E */ CS_CMD_ACTOR_CUE_4_0, + /* 0x001F */ CS_CMD_ACTOR_CUE_6_0, + /* 0x0020 */ CS_CMD_UNIMPLEMENTED_20, + /* 0x0021 */ CS_CMD_UNIMPLEMENTED_21, + /* 0x0022 */ CS_CMD_ACTOR_CUE_0_4, + /* 0x0023 */ CS_CMD_ACTOR_CUE_1_3, + /* 0x0024 */ CS_CMD_ACTOR_CUE_2_1, + /* 0x0025 */ CS_CMD_ACTOR_CUE_3_1, + /* 0x0026 */ CS_CMD_ACTOR_CUE_4_1, + /* 0x0027 */ CS_CMD_ACTOR_CUE_0_5, + /* 0x0028 */ CS_CMD_ACTOR_CUE_1_4, + /* 0x0029 */ CS_CMD_ACTOR_CUE_2_2, + /* 0x002A */ CS_CMD_ACTOR_CUE_3_2, + /* 0x002B */ CS_CMD_ACTOR_CUE_4_2, + /* 0x002C */ CS_CMD_ACTOR_CUE_5_0, + /* 0x002D */ CS_CMD_TRANSITION, + /* 0x002E */ CS_CMD_ACTOR_CUE_0_6, + /* 0x002F */ CS_CMD_ACTOR_CUE_4_3, + /* 0x0030 */ CS_CMD_ACTOR_CUE_1_5, + /* 0x0031 */ CS_CMD_ACTOR_CUE_7_0, + /* 0x0032 */ CS_CMD_ACTOR_CUE_2_3, + /* 0x0033 */ CS_CMD_ACTOR_CUE_3_3, + /* 0x0034 */ CS_CMD_ACTOR_CUE_6_1, + /* 0x0035 */ CS_CMD_ACTOR_CUE_3_4, + /* 0x0036 */ CS_CMD_ACTOR_CUE_4_4, + /* 0x0037 */ CS_CMD_ACTOR_CUE_5_1, + /* 0x0039 */ CS_CMD_ACTOR_CUE_6_2 = 0x39, + /* 0x003A */ CS_CMD_ACTOR_CUE_6_3, + /* 0x003B */ CS_CMD_UNIMPLEMENTED_3B, + /* 0x003C */ CS_CMD_ACTOR_CUE_7_1, + /* 0x003D */ CS_CMD_UNIMPLEMENTED_3D, + /* 0x003E */ CS_CMD_ACTOR_CUE_8_0, + /* 0x003F */ CS_CMD_ACTOR_CUE_3_5, + /* 0x0040 */ CS_CMD_ACTOR_CUE_1_6, + /* 0x0041 */ CS_CMD_ACTOR_CUE_3_6, + /* 0x0042 */ CS_CMD_ACTOR_CUE_3_7, + /* 0x0043 */ CS_CMD_ACTOR_CUE_2_4, + /* 0x0044 */ CS_CMD_ACTOR_CUE_1_7, + /* 0x0045 */ CS_CMD_ACTOR_CUE_2_5, + /* 0x0046 */ CS_CMD_ACTOR_CUE_1_8, + /* 0x0047 */ CS_CMD_UNIMPLEMENTED_47, + /* 0x0048 */ CS_CMD_ACTOR_CUE_2_6, + /* 0x0049 */ CS_CMD_UNIMPLEMENTED_49, + /* 0x004A */ CS_CMD_ACTOR_CUE_2_7, + /* 0x004B */ CS_CMD_ACTOR_CUE_3_8, + /* 0x004C */ CS_CMD_ACTOR_CUE_0_7, + /* 0x004D */ CS_CMD_ACTOR_CUE_5_2, + /* 0x004E */ CS_CMD_ACTOR_CUE_1_9, + /* 0x004F */ CS_CMD_ACTOR_CUE_4_5, + /* 0x0050 */ CS_CMD_ACTOR_CUE_1_10, + /* 0x0051 */ CS_CMD_ACTOR_CUE_2_8, + /* 0x0052 */ CS_CMD_ACTOR_CUE_3_9, + /* 0x0053 */ CS_CMD_ACTOR_CUE_4_6, + /* 0x0054 */ CS_CMD_ACTOR_CUE_5_3, + /* 0x0055 */ CS_CMD_ACTOR_CUE_0_8, + /* 0x0056 */ CS_CMD_START_SEQ, + /* 0x0057 */ CS_CMD_STOP_SEQ, + /* 0x0058 */ CS_CMD_ACTOR_CUE_6_4, + /* 0x0059 */ CS_CMD_ACTOR_CUE_7_2, + /* 0x005A */ CS_CMD_ACTOR_CUE_5_4, + /* 0x005D */ CS_CMD_ACTOR_CUE_0_9 = 0x5D, + /* 0x005E */ CS_CMD_ACTOR_CUE_1_11, + /* 0x0069 */ CS_CMD_ACTOR_CUE_0_10 = 0x69, + /* 0x006A */ CS_CMD_ACTOR_CUE_2_9, + /* 0x006B */ CS_CMD_ACTOR_CUE_0_11, + /* 0x006C */ CS_CMD_ACTOR_CUE_3_10, + /* 0x006D */ CS_CMD_UNIMPLEMENTED_6D, + /* 0x006E */ CS_CMD_ACTOR_CUE_0_12, + /* 0x006F */ CS_CMD_ACTOR_CUE_7_3, + /* 0x0070 */ CS_CMD_UNIMPLEMENTED_70, + /* 0x0071 */ CS_CMD_UNIMPLEMENTED_71, + /* 0x0072 */ CS_CMD_ACTOR_CUE_7_4, + /* 0x0073 */ CS_CMD_ACTOR_CUE_6_5, + /* 0x0074 */ CS_CMD_ACTOR_CUE_1_12, + /* 0x0075 */ CS_CMD_ACTOR_CUE_2_10, + /* 0x0076 */ CS_CMD_ACTOR_CUE_1_13, + /* 0x0077 */ CS_CMD_ACTOR_CUE_0_13, + /* 0x0078 */ CS_CMD_ACTOR_CUE_1_14, + /* 0x0079 */ CS_CMD_ACTOR_CUE_2_11, + /* 0x007B */ CS_CMD_ACTOR_CUE_0_14 = 0x7B, + /* 0x007C */ CS_CMD_FADE_OUT_SEQ, + /* 0x007D */ CS_CMD_ACTOR_CUE_1_15, + /* 0x007E */ CS_CMD_ACTOR_CUE_2_12, + /* 0x007F */ CS_CMD_ACTOR_CUE_3_11, + /* 0x0080 */ CS_CMD_ACTOR_CUE_4_7, + /* 0x0081 */ CS_CMD_ACTOR_CUE_5_5, + /* 0x0082 */ CS_CMD_ACTOR_CUE_6_6, + /* 0x0083 */ CS_CMD_ACTOR_CUE_1_16, + /* 0x0084 */ CS_CMD_ACTOR_CUE_2_13, + /* 0x0085 */ CS_CMD_ACTOR_CUE_3_12, + /* 0x0086 */ CS_CMD_ACTOR_CUE_7_5, + /* 0x0087 */ CS_CMD_ACTOR_CUE_4_8, + /* 0x0088 */ CS_CMD_ACTOR_CUE_5_6, + /* 0x0089 */ CS_CMD_ACTOR_CUE_6_7, + /* 0x008A */ CS_CMD_ACTOR_CUE_0_15, + /* 0x008B */ CS_CMD_ACTOR_CUE_0_16, + /* 0x008C */ CS_CMD_TIME, + /* 0x008D */ CS_CMD_ACTOR_CUE_1_17, + /* 0x008E */ CS_CMD_ACTOR_CUE_7_6, + /* 0x008F */ CS_CMD_ACTOR_CUE_9_0, + /* 0x0090 */ CS_CMD_ACTOR_CUE_0_17, + /* 0x03E8 */ CS_CMD_DESTINATION = 0x03E8, + /* 0xFFFF */ CS_CMD_END = 0xFFFF +} CutsceneCmd; + +typedef enum { + /* 0x00 */ CS_MISC_UNIMPLEMENTED_0, + /* 0x01 */ CS_MISC_RAIN, + /* 0x02 */ CS_MISC_LIGHTNING, + /* 0x03 */ CS_MISC_SET_CSFLAG_0, // also sets flag 2 if in Temple of Time + /* 0x04 */ CS_MISC_UNIMPLEMENTED_4, + /* 0x05 */ CS_MISC_UNIMPLEMENTED_5, + /* 0x06 */ CS_MISC_LIFT_FOG, + /* 0x07 */ CS_MISC_CLOUDY_SKY, + /* 0x08 */ CS_MISC_FADE_KOKIRI_GRASS_ENV_ALPHA, + /* 0x09 */ CS_MISC_SNOW, + /* 0x0A */ CS_MISC_SET_CSFLAG_1, + /* 0x0B */ CS_MISC_DEKU_TREE_DEATH, + /* 0x0C */ CS_MISC_STOP_CUTSCENE, + /* 0x0D */ CS_MISC_TRIFORCE_FLASH, + /* 0x0E */ CS_MISC_SET_LOCKED_VIEWPOINT, + /* 0x0F */ CS_MISC_SHOW_TITLE_CARD, + /* 0x10 */ CS_MISC_QUAKE_START, + /* 0x11 */ CS_MISC_QUAKE_STOP, + /* 0x12 */ CS_MISC_STOP_STORM_AND_ADVANCE_TO_DAY, + /* 0x13 */ CS_MISC_SET_FLAG_FAST_WINDMILL, + /* 0x14 */ CS_MISC_SET_FLAG_WELL_DRAINED, + /* 0x15 */ CS_MISC_SET_FLAG_LAKE_HYLIA_RESTORED, + /* 0x16 */ CS_MISC_VISMONO_BLACK_AND_WHITE, + /* 0x17 */ CS_MISC_VISMONO_SEPIA, + /* 0x18 */ CS_MISC_HIDE_ROOM, + /* 0x19 */ CS_MISC_TIME_ADVANCE_TO_NIGHT, + /* 0x1A */ CS_MISC_SET_TIME_BASED_LIGHT_SETTING, + /* 0x1B */ CS_MISC_RED_PULSATING_LIGHTS, + /* 0x1C */ CS_MISC_HALT_ALL_ACTORS, + /* 0x1D */ CS_MISC_RESUME_ALL_ACTORS, + /* 0x1E */ CS_MISC_SET_CSFLAG_3, + /* 0x1F */ CS_MISC_SET_CSFLAG_4, + /* 0x20 */ CS_MISC_SANDSTORM_FILL, + /* 0x21 */ CS_MISC_SUNSSONG_START, + /* 0x22 */ CS_MISC_FREEZE_TIME, + /* 0x23 */ CS_MISC_LONG_SCARECROW_SONG +} CutsceneMiscType; + +typedef enum { + /* 0x00 */ CS_TEXT_NORMAL, + /* 0x01 */ CS_TEXT_CHOICE, + /* 0x02 */ CS_TEXT_OCARINA_ACTION, + /* 0x03 */ CS_TEXT_GORON_RUBY, // use `altTextId1` in the ruby cutscene if sapphire is already obtained + /* 0x04 */ CS_TEXT_ZORA_SAPPHIRE // use `altTextId1` in the sapphire cutscene if ruby is already obtained +} CutsceneTextType; + +typedef enum { + /* 0x03 */ CS_FADE_OUT_FANFARE = 3, + /* 0x04 */ CS_FADE_OUT_BGM_MAIN +} CutsceneFadeOutSeqPlayer; + +typedef enum { + /* 0x01 */ CS_TRANS_GRAY_FILL_IN = 1, // has hardcoded sounds for some scenes + /* 0x02 */ CS_TRANS_BLUE_FILL_IN, + /* 0x03 */ CS_TRANS_RED_FILL_OUT, + /* 0x04 */ CS_TRANS_GREEN_FILL_OUT, + /* 0x05 */ CS_TRANS_GRAY_FILL_OUT, + /* 0x06 */ CS_TRANS_BLUE_FILL_OUT, + /* 0x07 */ CS_TRANS_RED_FILL_IN, + /* 0x08 */ CS_TRANS_GREEN_FILL_IN, + /* 0x09 */ CS_TRANS_TRIGGER_INSTANCE, // used with `TRANS_MODE_INSTANCE_WAIT` + /* 0x0A */ CS_TRANS_BLACK_FILL_OUT, + /* 0x0B */ CS_TRANS_BLACK_FILL_IN, + /* 0x0C */ CS_TRANS_BLACK_FILL_OUT_TO_HALF, // used with `TRANS_MODE_CS_BLACK_FILL` + /* 0x0D */ CS_TRANS_BLACK_FILL_IN_FROM_HALF +} CutsceneTransitionType; + +typedef enum { + /* 0x00 */ CS_DEST_UNIMPLEMENTED_0, + /* 0x01 */ CS_DEST_CUTSCENE_MAP_GANON_HORSE, + /* 0x02 */ CS_DEST_CUTSCENE_MAP_THREE_GODDESSES, + /* 0x03 */ CS_DEST_GERUDO_VALLEY_DIN_PART_1, + /* 0x04 */ CS_DEST_DEATH_MOUNTAIN_TRAIL_NAYRU, + /* 0x05 */ CS_DEST_KOKIRI_FOREST_FARORE, + /* 0x06 */ CS_DEST_CUTSCENE_MAP_TRIFORCE_CREATION, + /* 0x07 */ CS_DEST_KOKIRI_FOREST_RECEIVE_KOKIRI_EMERALD, + /* 0x08 */ CS_DEST_TEMPLE_OF_TIME_FROM_MASTER_SWORD, + /* 0x09 */ CS_DEST_GERUDO_VALLEY_DIN_PART_2, + /* 0x0A */ CS_DEST_LINKS_HOUSE_INTRO, + /* 0x0B */ CS_DEST_KOKIRI_FOREST_INTRO, + /* 0x0C */ CS_DEST_DEATH_MOUNTAIN_TRAIL_FROM_GORON_RUBY, + /* 0x0D */ CS_DEST_ZORAS_FOUNTAIN_FROM_ZORAS_SAPPHIRE, + /* 0x0E */ CS_DEST_KOKIRI_FOREST_FROM_KOKIRI_EMERALD, + /* 0x0F */ CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED, // unused + /* 0x10 */ CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED, // unused + /* 0x11 */ CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED, // unused + /* 0x12 */ CS_DEST_TEMPLE_OF_TIME_AFTER_LIGHT_MEDALLION, + /* 0x13 */ CS_DEST_DEATH_MOUNTAIN_TRAIL, // unused + /* 0x14 */ CS_DEST_UNIMPLEMENTED_14, + /* 0x15 */ CS_DEST_LAKE_HYLIA_WATER_RESTORED, + /* 0x16 */ CS_DEST_DESERT_COLOSSUS_REQUIEM, // unused + /* 0x17 */ CS_DEST_CUTSCENE_MAP_GANONDORF_DEFEATED_CREDITS, + /* 0x18 */ CS_DEST_JABU_JABU, + /* 0x19 */ CS_DEST_CHAMBER_OF_SAGES_LIGHT_MEDALLION, + /* 0x1A */ CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED_2, // unused + /* 0x1B */ CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED_2, // unused + /* 0x1C */ CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED_2, // unused + /* 0x1D */ CS_DEST_CHAMBER_OF_SAGES_FOREST_MEDALLION, + /* 0x1E */ CS_DEST_CHAMBER_OF_SAGES_FIRE_MEDALLION, + /* 0x1F */ CS_DEST_CHAMBER_OF_SAGES_WATER_MEDALLION, + /* 0x20 */ CS_DEST_HYRULE_FIELD_FLASHBACK, + /* 0x21 */ CS_DEST_HYRULE_FIELD_FROM_ZELDA_ESCAPE, + /* 0x22 */ CS_DEST_CUTSCENE_MAP_GANONDORF_FROM_MASTER_SWORD, // unused + /* 0x23 */ CS_DEST_HYRULE_FIELD_INTRO_DREAM, + /* 0x24 */ CS_DEST_UNIMPLEMENTED_24, + /* 0x25 */ CS_DEST_UNIMPLEMENTED_25, + /* 0x26 */ CS_DEST_CUTSCENE_MAP_SHEIKAH_LEGEND, + /* 0x27 */ CS_DEST_TEMPLE_OF_TIME_ZELDA_REVEAL, + /* 0x28 */ CS_DEST_TEMPLE_OF_TIME_GET_LIGHT_ARROWS, + /* 0x29 */ CS_DEST_LAKE_HYLIA_FROM_LAKE_RESTORED, + /* 0x2A */ CS_DEST_KAKARIKO_VILLAGE_DRAIN_WELL, + /* 0x2B */ CS_DEST_WINDMILL_FROM_WELL_DRAINED, + /* 0x2C */ CS_DEST_TEMPLE_OF_TIME_FROM_ALL_STONES_RESTORED, + /* 0x2D */ CS_DEST_UNIMPLEMENTED_2D, + /* 0x2E */ CS_DEST_TEMPLE_OF_TIME_AFTER_LIGHT_MEDALLION_ALT, // unused, uses a different transition + /* 0x2F */ CS_DEST_KAKARIKO_VILLAGE_NOCTURNE_PART_2, + /* 0x30 */ CS_DEST_DESERT_COLOSSUS_FROM_REQUIEM, + /* 0x31 */ CS_DEST_TEMPLE_OF_TIME_FROM_LIGHT_ARROWS, + /* 0x32 */ CS_DEST_KAKARIKO_VILLAGE_FROM_NOCTURNE, + /* 0x33 */ CS_DEST_HYRULE_FIELD_FROM_ZELDAS_COURTYARD, + /* 0x34 */ CS_DEST_TEMPLE_OF_TIME_SONG_OF_TIME, + /* 0x35 */ CS_DEST_HYRULE_FIELD_FROM_SONG_OF_TIME, + /* 0x36 */ CS_DEST_GERUDO_VALLEY_CREDITS, + /* 0x37 */ CS_DEST_GERUDO_FORTRESS_CREDITS, + /* 0x38 */ CS_DEST_KAKARIKO_VILLAGE_CREDITS, + /* 0x39 */ CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_1, + /* 0x3A */ CS_DEST_GORON_CITY_CREDITS, + /* 0x3B */ CS_DEST_LAKE_HYLIA_CREDITS, + /* 0x3C */ CS_DEST_ZORAS_FOUNTAIN_CREDITS, // unused, crashes + /* 0x3D */ CS_DEST_ZORAS_DOMAIN_CREDITS, + /* 0x3E */ CS_DEST_KOKIRI_FOREST_CREDITS_PART_1, + /* 0x3F */ CS_DEST_KOKIRI_FOREST_CREDITS_PART_2, + /* 0x40 */ CS_DEST_HYRULE_FIELD_CREDITS, + /* 0x41 */ CS_DEST_LON_LON_RANCH_CREDITS_PART_1_ALT, // unused + /* 0x42 */ CS_DEST_KAKARIKO_VILLAGE_FROM_TRAIL_OWL, + /* 0x43 */ CS_DEST_HYRULE_FIELD_FROM_LAKE_HYLIA_OWL, + /* 0x44 */ CS_DEST_CUTSCENE_MAP_DEKU_SPROUT_PART_2, + /* 0x45 */ CS_DEST_KOKIRI_FOREST_DEKU_SPROUT_PART_3, + /* 0x46 */ CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_2, + /* 0x47 */ CS_DEST_TEMPLE_OF_TIME_CREDITS, + /* 0x48 */ CS_DEST_ZELDAS_COURTYARD_CREDITS, + /* 0x49 */ CS_DEST_LON_LON_RANCH_CREDITS_PART_1, + /* 0x4A */ CS_DEST_LON_LON_RANCH_CREDITS_PART_2, + /* 0x4B */ CS_DEST_LON_LON_RANCH_CREDITS_PART_3, + /* 0x4C */ CS_DEST_LON_LON_RANCH_CREDITS_PART_4, + /* 0x4D */ CS_DEST_LON_LON_RANCH_CREDITS_PART_5, + /* 0x4E */ CS_DEST_LON_LON_RANCH_CREDITS_PART_6, + /* 0x4F */ CS_DEST_LON_LON_RANCH_1, // unused + /* 0x50 */ CS_DEST_LON_LON_RANCH_2, // unused + /* 0x51 */ CS_DEST_LON_LON_RANCH_3, // unused + /* 0x52 */ CS_DEST_LON_LON_RANCH_4, // unused + /* 0x53 */ CS_DEST_LON_LON_RANCH_5, // unused + /* 0x54 */ CS_DEST_LON_LON_RANCH_6, // unused + /* 0x55 */ CS_DEST_LON_LON_RANCH_7, // unused + /* 0x56 */ CS_DEST_LON_LON_RANCH_8, // unused + /* 0x57 */ CS_DEST_LON_LON_RANCH_9, // unused + /* 0x58 */ CS_DEST_LON_LON_RANCH_10, // unused + /* 0x59 */ CS_DEST_LON_LON_RANCH_11, // unused + /* 0x5A */ CS_DEST_LON_LON_RANCH_12, // unused + /* 0x5B */ CS_DEST_LON_LON_RANCH_13, // unused + /* 0x5C */ CS_DEST_LON_LON_RANCH_14, // unused + /* 0x5D */ CS_DEST_LON_LON_RANCH_15, // unused + /* 0x5E */ CS_DEST_LON_LON_RANCH_FROM_EPONAS_SONG, + /* 0x5F */ CS_DEST_STONES_RESTORED_CONDITIONAL, // unused + /* 0x60 */ CS_DEST_DESERT_COLOSSUS_FROM_CHAMBER_OF_SAGES, + /* 0x61 */ CS_DEST_GRAVEYARD_FROM_CHAMBER_OF_SAGES, + /* 0x62 */ CS_DEST_DEATH_MOUNTAIN_CRATER_FROM_CHAMBER_OF_SAGES, + /* 0x63 */ CS_DEST_SACRED_FOREST_MEADOW_WARP_PAD, // unused + /* 0x64 */ CS_DEST_KOKIRI_FOREST_FROM_CHAMBER_OF_SAGES, + /* 0x65 */ CS_DEST_DESERT_COLOSSUS_FROM_NABOORU_CAPTURE, + /* 0x66 */ CS_DEST_TEMPLE_OF_TIME_FRONT_OF_PEDESTAL, // unused + /* 0x67 */ CS_DEST_HYRULE_FIELD_TITLE_SCREEN, + /* 0x68 */ CS_DEST_TITLE_SCREEN_DEMO, + /* 0x69 */ CS_DEST_GRAVEYARD_SUNS_SONG_PART_2, + /* 0x6A */ CS_DEST_ROYAL_FAMILYS_TOMB_SUNS_SONG_PART_3, + /* 0x6B */ CS_DEST_GANONS_CASTLE_DISPEL_FOREST_BEAM, + /* 0x6C */ CS_DEST_GANONS_CASTLE_DISPEL_WATER_BEAM, + /* 0x6D */ CS_DEST_GANONS_CASTLE_DISPEL_SHADOW_BEAM, + /* 0x6E */ CS_DEST_GANONS_CASTLE_DISPEL_FIRE_BEAM, + /* 0x6F */ CS_DEST_GANONS_CASTLE_DISPEL_LIGHT_BEAM, + /* 0x70 */ CS_DEST_GANONS_CASTLE_DISPEL_SPIRIT_BEAM, + /* 0x71 */ CS_DEST_GANONS_CASTLE_DISPEL_BARRIER_CONDITONAL, + /* 0x72 */ CS_DEST_HYRULE_FIELD_FROM_FAIRY_OCARINA, + /* 0x73 */ CS_DEST_HYRULE_FIELD_FROM_IMPA_ESCORT, + /* 0x74 */ CS_DEST_FROM_RAURU_FINAL_MESSAGE_CONDITIONAL, + /* 0x75 */ CS_DEST_HYRULE_FIELD_CREDITS_SKY, + /* 0x76 */ CS_DEST_GANON_BATTLE_TOWER_COLLAPSE, + /* 0x77 */ CS_DEST_ZELDAS_COURTYARD_RECEIVE_LETTER +} CutsceneDestination; + +typedef union { + struct { + /* 0x00 */ u16 unused0; + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; + }; + s32 _words[2]; +} CsCmdCam; // size = 0x8 + + +typedef union { + struct { + /* 0x00 */ u16 type; + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; + }; + s32 _words[12]; +} CsCmdMisc; // size = 0x30 + +typedef union { + struct { + /* 0x00 */ u8 unused0; + /* 0x01 */ u8 settingPlusOne; + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; // unused + }; + s32 _words[12]; +} CsCmdLightSetting; // size = 0x30 + +typedef union { + struct { + /* 0x00 */ u8 unused0; + /* 0x01 */ u8 seqIdPlusOne; + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; // unused + }; + s32 _words[12]; +} CsCmdStartSeq; // size = 0x30 + +typedef union { + struct { + /* 0x00 */ u8 unused0; + /* 0x01 */ u8 seqIdPlusOne; + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; // unused + }; + s32 _words[12]; +} CsCmdStopSeq; // size = 0x30 + +typedef union { + struct { + /* 0x00 */ u16 seqPlayer; + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; + }; + s32 _words[12]; +} CsCmdFadeOutSeq; // size = 0x30 + +typedef union { + struct { + /* 0x00 */ u16 unused0; + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; // unused + /* 0x06 */ u8 sourceStrength; + /* 0x07 */ u8 duration; + /* 0x08 */ u8 decreaseRate; + }; + s32 _words[3]; +} CsCmdRumble; // size = 0xC + +typedef union { + struct { + /* 0x00 */ u16 unused0; + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; // unused + /* 0x06 */ u8 hour; + /* 0x07 */ u8 minute; + }; + s32 _words[3]; +} CsCmdTime; // size = 0xC + +typedef union { + struct { + /* 0x00 */ u16 destination; + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; // unused + }; + s32 _words[2]; +} CsCmdDestination; // size = 0x8 + +typedef union { + struct { + /* 0x00 */ u16 textId; // can also be an ocarina action for `CS_TEXT_OCARINA_ACTION` + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; + /* 0x06 */ u16 type; + /* 0x08 */ u16 altTextId1; + /* 0x0A */ u16 altTextId2; + }; + s32 _words[3]; +} CsCmdText; // size = 0xC + +#define CS_TEXT_ID_NONE 0xFFFF + +typedef union { + struct { + /* 0x00 */ u16 type; + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; + }; + s32 _words[2]; +} CsCmdTransition; // size = 0x8 + +typedef union { + struct { + /* 0x00 */ u16 id; // "dousa" + /* 0x02 */ u16 startFrame; + /* 0x04 */ u16 endFrame; + /* 0x06 */ Vec3us rot; + /* 0x0C */ Vec3i startPos; + /* 0x18 */ Vec3i endPos; + }; + s32 _words[12]; +} CsCmdActorCue; // size = 0x30 + +typedef union { + struct { + /* 0x00 */ s8 continueFlag; + /* 0x01 */ s8 cameraRoll; + /* 0x02 */ u16 nextPointFrame; + /* 0x04 */ f32 viewAngle; // in degrees + /* 0x08 */ Vec3s pos; + }; + s32 _words[4]; +} CutsceneCameraPoint; // size = 0x10 + +#define CS_CAM_CONTINUE 0 +#define CS_CAM_STOP -1 + +// todo: remove after ZAPD is updated +#define CS_CMD_CONTINUE CS_CAM_CONTINUE +#define CS_CMD_STOP CS_CAM_STOP + +#define CS_CAM_DATA_NOT_APPLIED 0xFFFF + +typedef struct { + /* 0x00 */ Vec3f at; + /* 0x0C */ Vec3f eye; + /* 0x18 */ s16 roll; + /* 0x1A */ s16 fov; +} CutsceneCameraDirection; // size = 0x1C + +typedef struct { + /* 0x0 */ CutsceneCameraPoint* atPoints; + /* 0x4 */ CutsceneCameraPoint* eyePoints; + /* 0x8 */ s16 relativeToPlayer; +} CutsceneCameraMove; // size = 0xC #endif diff --git a/include/z64cutscene_commands.h b/include/z64cutscene_commands.h index 85e7166f45..fcaa4a009b 100644 --- a/include/z64cutscene_commands.h +++ b/include/z64cutscene_commands.h @@ -4,6 +4,23 @@ #include "command_macros_base.h" #include "z64cutscene.h" +/** + * Cutscene scripts are arrays of `CutsceneData` words, including bit-packed integers and floats. + * + * Most command macros have unused arguments. This is to account for the vanilla assets setting specific values + * that don't end up being used by any code. They can safely be set to anything, as they aren't used in the + * implementation. + * + * It is believed the original tool used for cutscenes handled most commands the same way, using similar + * fields, and the code would have accessed them using common structs. Given this, the unused values observed in vanilla + * assets may appear to map to a variable that makes sense, even if it doesn't end up being used in the code. It + * probably isn't garbage data. + * + * This codebase goes with specialized structs and macros to make it easier to follow the code. + * Note this common struct design is still partially reflected in all commands having a `startFrame` and `endFrame`, + * when sometimes only the `startFrame` matters (as documented). + */ + #ifdef __GNUC__ #define CMD_F(a) {.f = (a)} #else @@ -11,445 +28,281 @@ #endif /** - * ARGS - * s32 totalEntries (e), s32 endFrame (n) - * FORMAT - * eeeeeeee nnnnnnnn - * size = 0x8 + * Marks the beginning of a cutscene script. */ -#define CS_BEGIN_CUTSCENE(totalEntries, endFrame) CMD_W(totalEntries), CMD_W(endFrame) +#define CS_BEGIN_CUTSCENE(totalEntries, frameCount) CMD_W(totalEntries), CMD_W(frameCount) /** - * ARGS - * s16 startFrame (s), s16 endFrame (e) - * FORMAT - * 00000001 0001ssss eeee0000 - * size = 0xC + * Defines data for `CutsceneCameraPoint`, which can be used with any of the `eye` or `at` camera commands. */ -#define CS_CAM_POS_LIST CS_CAM_EYE_LIST -#define CS_CAM_EYE_LIST(startFrame, endFrame) \ +#define CS_CAM_POINT(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ + CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) + +/** + * Declares a list of camera `eye` points that form a spline. + * The points of the spline are interpolated over time to create smooth camera movements. + */ +#define CS_CAM_EYE_SPLINE(startFrame, endFrame) \ + CS_CMD_CAM_EYE_SPLINE, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) + +/** + * Declares a list of camera `at` points that form a spline. + * The points of the spline are interpolated over time to create smooth camera movements. + */ +#define CS_CAM_AT_SPLINE(startFrame, endFrame) \ + CS_CMD_CAM_AT_SPLINE, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) + +/** + * Declares a list of camera `eye` points that form a spline. + * The points of the spline are interpolated over time to create smooth camera movements. + * The points are relative to the player's position and yaw. + */ +#define CS_CAM_EYE_SPLINE_REL_TO_PLAYER(startFrame, endFrame) \ + CS_CMD_CAM_EYE_SPLINE_REL_TO_PLAYER, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) + +/** + * Declares a list of camera `at` points that form a spline. + * The points of the spline are interpolated over time to create smooth camera movements. + * The points are relative to the player's position and yaw. + */ +#define CS_CAM_AT_SPLINE_REL_TO_PLAYER(startFrame, endFrame) \ + CS_CMD_CAM_AT_SPLINE_REL_TO_PLAYER, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) + +/** + * Declares a single `eye` point that will be set on the specified frame, without any interpolation. + * Should only contain a single point, not a list. + * This feature is not used in the final game and lacks polish, it is recommended to use splines in all cases. + */ +#define CS_CAM_EYE(startFrame, endFrame) \ CS_CMD_CAM_EYE, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) /** - * ARGS - * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), - * s16 xPos (x), s16 yPos (y), s16 zPos (z) - * FORMAT - * Capital U is Unused - * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU - * size = 0x10 + * Declares a single `at` point that will be set on the specified frame, without any interpolation. + * Should only contain a single point, not a list. + * This feature is not used in the final game and lacks polish, it is recommended to use splines in all cases. */ -#define CS_CAM_POS CS_CAM_EYE -#define CS_CAM_EYE(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ - CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) - -/** - * ARGS - * s16 startFrame (s), s16 endFrame (e) - * FORMAT - * 00000002 0001ssss eeee0000 - * size = 0xC - */ -#define CS_CAM_FOCUS_POINT_LIST CS_CAM_AT_LIST -#define CS_CAM_AT_LIST(startFrame, endFrame) \ +#define CS_CAM_AT(startFrame, endFrame) \ CS_CMD_CAM_AT, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) /** - * ARGS - * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), - * s16 xPos (x), s16 yPos (y), s16 zPos (z) - * FORMAT - * Capital U is Unused - * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU - * size = 0x10 + * Declares a list of `CS_MISC` entries. */ -#define CS_CAM_FOCUS_POINT CS_CAM_AT -#define CS_CAM_AT(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ - CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) +#define CS_MISC_LIST(entries) \ + CS_CMD_MISC, CMD_W(entries) /** - * ARGS - * s32 entries (e) - * FORMAT - * 00000003 eeeeeeee - * size = 0x8 + * Various miscellaneous commands. + * @see `CutsceneMiscType` enum for the different types of commands. + * @note setting `endFrame` to same value as `startFrame` will not behave as expected. + * For commands that only need to last one frame, set `endFrame` to `startFrame + 1`. */ -#define CS_MISC_LIST(entries) CS_CMD_MISC, CMD_W(entries) - -/** - * ARGS - * s16 unk (u), s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused - * uuuussss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU - * size = 0x30 - */ -#define CS_MISC(unk, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7, unused8, unused9, unused10) \ - CMD_HH(unk, startFrame), CMD_HH(endFrame, unused0), \ +#define CS_MISC(type, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7, unused8, unused9, unused10) \ + CMD_HH(type, startFrame), CMD_HH(endFrame, unused0), \ CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ CMD_W(unused6), CMD_W(unused7), CMD_W(unused8), CMD_W(unused9), CMD_W(unused10) /** - * ARGS - * s32 entries (e) - * FORMAT - * 00000004 eeeeeeee - * size = 0x8 + * Declares a list of `CS_LIGHT_SETTING` entries. */ -#define CS_LIGHTING_LIST(entries) CS_CMD_SET_LIGHTING, CMD_W(entries) - +#define CS_LIGHT_SETTING_LIST(entries) \ + CS_CMD_LIGHT_SETTING, CMD_W(entries) /** - * ARGS - * s16 setting (m), s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused - * mmmmssss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU 00000000 00000000 00000000 - * size = 0x30 + * Changes the environment lights to the specified setting. + * The lighting change will take place immediately with no blending. + * @note `endFrame` is not used in the implementation of the command, so its value does not matter */ -#define CS_LIGHTING(setting, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ - CMD_HH(setting, startFrame), CMD_HH(endFrame, unused0), \ +#define CS_LIGHT_SETTING(lightSetting, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ + CMD_BBH(0, (lightSetting + 1), startFrame), CMD_HH(endFrame, unused0), \ CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 /** - * ARGS - * s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused , may be consistently zero - * 00000005 0001ssss eeee0000 - * size = 0xC + * Declares a list of `CS_RUMBLE_CONTROLLER` entries. */ -#define CS_CAM_POS_PLAYER_LIST CS_CAM_EYE_REL_TO_PLAYER_LIST -#define CS_CAM_EYE_REL_TO_PLAYER_LIST(startFrame, endFrame) \ - CS_CMD_CAM_EYE_REL_TO_PLAYER, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) +#define CS_RUMBLE_CONTROLLER_LIST(entries) \ + CS_CMD_RUMBLE_CONTROLLER, CMD_W(entries) /** - * ARGS - * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), - * s16 xPos (x), s16 yPos (y), s16 zPos (z) - * FORMAT - * Capital U is Unused - * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU - * size = 0x10 - */ -#define CS_CAM_POS_PLAYER CS_CAM_EYE_REL_TO_PLAYER -#define CS_CAM_EYE_REL_TO_PLAYER(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ - CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) + * Rumble the controller. + * @note `endFrame` is not used in the implementation of the command, so its value does not matter +*/ +#define CS_RUMBLE_CONTROLLER(unused0, startFrame, endFrame, sourceStrength, duration, decreaseRate, unused1, unused2) \ + CMD_HH(unused0, startFrame), CMD_HBB(endFrame, sourceStrength, duration), CMD_BBH(decreaseRate, unused1, unused2) /** - * ARGS - * s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused , may be consistently zero - * 00000006 0001ssss eeee0000 - * size = 0xC + * Declares a list of `CS_ACTOR_CUE` entries. */ -#define CS_CAM_FOCUS_POINT_PLAYER_LIST CS_CAM_AT_REL_TO_PLAYER_LIST -#define CS_CAM_AT_REL_TO_PLAYER_LIST(startFrame, endFrame) \ - CS_CMD_CAM_AT_REL_TO_PLAYER, CMD_HH(0x0001, startFrame), CMD_HH(endFrame, 0x0000) -/** - * ARGS - * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), - * s16 xPos (x), s16 yPos (y), s16 zPos (z) - * FORMAT - * Capital U is Unused - * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU - * size = 0x10 - */ -#define CS_CAM_FOCUS_POINT_PLAYER CS_CAM_AT_REL_TO_PLAYER -#define CS_CAM_AT_REL_TO_PLAYER(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ - CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) +#define CS_ACTOR_CUE_LIST(cmdType, entries) \ + CMD_W(cmdType), CMD_W(entries) /** - * ARGS - * s16 unk (u), s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused - * 00000007 uuuussss eeeeUUUU - * size = 0xC + * Defines a cue that an actor can listen for. + * The actor can choose whether or not to use the position and rotation data supplied to it. + * The cue `id` is a number that has an actor-specific meaning. */ -#define CS_CMD_07_LIST(unk, startFrame, endFrame, unused) \ - CS_CMD_07, CMD_HH(unk, startFrame), CMD_HH(endFrame, unused) +#define CS_ACTOR_CUE(id, startFrame, endFrame, rotX, rotY, rotZ, startX, startY, startZ, endX, endY, endZ, unused0, unused1, unused2) \ + CMD_HH(id, startFrame), CMD_HH(endFrame, rotX), CMD_HH(rotY, rotZ), \ + CMD_W(startX), CMD_W(startY), CMD_W(startZ), \ + CMD_W(endX), CMD_W(endY), CMD_W(endZ), \ + CMD_F(unused0), CMD_F(unused1), CMD_F(unused2) /** - * ARGS - * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), - * s16 xPos (x), s16 yPos (y), s16 zPos (z) - * FORMAT - * Capital U is Unused - * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU - * size = 0x10 + * Declares a list of `CS_PLAYER_CUE` entries. */ -#define CS_CMD_07(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ - CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) +#define CS_PLAYER_CUE_LIST(entries) \ + CS_CMD_PLAYER_CUE, CMD_W(entries) /** - * ARGS - * s16 unk (u), s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused - * 00000008 uuuussss eeeeUUUU - * size = 0xC + * A player cue is the same as `CS_ACTOR_CUE` but is specifically for player. */ -#define CS_CMD_08_LIST(unk, startFrame, endFrame, unused) \ - CS_CMD_08, CMD_HH(unk, startFrame), CMD_HH(endFrame, unused) +#define CS_PLAYER_CUE(id, startFrame, endFrame, rotX, rotY, rotZ, startX, startY, startZ, endX, endY, endZ, unused0, unused1, unused2) \ + CS_ACTOR_CUE(id, startFrame, endFrame, rotX, rotY, rotZ, startX, startY, startZ, endX, endY, endZ, unused0, unused1, unused2) /** - * ARGS - * s8 continueFlag (c), s8 roll (r), s16 frame (f), f32 viewAngle (a), - * s16 xPos (x), s16 yPos (y), s16 zPos (z) - * FORMAT - * Capital U is Unused - * ccrrffff aaaaaaaa xxxxyyyy zzzzUUUU - * size = 0x10 + * Declares a list of `CS_TEXT_*` entries. */ -#define CS_CMD_08(continueFlag, roll, frame, viewAngle, xPos, yPos, zPos, unused) \ - CMD_BBH(continueFlag, roll, frame), CMD_F(viewAngle), CMD_HH(xPos, yPos), CMD_HH(zPos, unused) +#define CS_TEXT_LIST(entries) \ + CS_CMD_TEXT, CMD_W(entries) /** - * ARGS - * s32 entries (e) - * FORMAT - * 00000009 eeeeeeee - * size = 0x8 + * Starts a textbox at the specified time. + * For `CS_TEXT_OCARINA_ACTION`, `textId` is used as an ocarina action. + * For a choice textbox, `altTextId1` is the top text id to branch to and `altTextId2` is the bottom. */ -#define CS_CMD_09_LIST(entries) CS_CMD_09, CMD_W(entries) +#define CS_TEXT(textId, startFrame, endFrame, type, altTextId1, altTextId2) \ + CMD_HH(textId, startFrame), CMD_HH(endFrame, type), CMD_HH(altTextId1, altTextId2) + +#define CS_TEXT_NONE(startFrame, endFrame) \ + CS_TEXT(CS_TEXT_ID_NONE, startFrame, endFrame, 0xFFFF, CS_TEXT_ID_NONE, CS_TEXT_ID_NONE) + +#define CS_TEXT_OCARINA_ACTION(ocarinaAction, startFrame, endFrame, messageId) \ + CS_TEXT(ocarinaAction, startFrame, endFrame, CS_TEXT_OCARINA_ACTION, messageId, CS_TEXT_ID_NONE) /** - * ARGS - * s16 unk (u), s16 startFrame (s), s16 endFrame (e), s16 unk2 (v), s16 unk3 (w), s16 unk4 (x) - * FORMAT - * Capital U is Unused - * uuuussss eeeevvww xxUUUUUU - * size = 0xC + * Controls various types of screen transitions. + * @see `CutsceneTransitionType` for type options. */ -#define CS_CMD_09(unk, startFrame, endFrame, unk2, unk3, unk4, unused0, unused1) \ - CMD_HH(unk, startFrame), CMD_HBB(endFrame, unk2, unk3), CMD_BBH(unk4, unused0, unused1) +#define CS_TRANSITION(type, startFrame, endFrame) \ + CS_CMD_TRANSITION, 0x00000001, CMD_HH(type, startFrame), CMD_HH(endFrame, endFrame) /** - * ARGS - * s32 cmdType (c), s32 entries (e) - * FORMAT - * cccccccc eeeeeeee - * size = 0x8 + * Declares a list of `CS_START_SEQ` entries. */ +#define CS_START_SEQ_LIST(entries) \ + CS_CMD_START_SEQ, CMD_W(entries) + +/** + * Starts a sequence at the specified time. + * @note `endFrame` is not used in the implementation of the command, so its value does not matter + */ +#define CS_START_SEQ(seqId, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ + CMD_HH((seqId + 1), startFrame), CMD_HH(endFrame, unused0), \ + CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ + CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 + +/** + * Declares a list of `CS_STOP_SEQ` entries. + */ +#define CS_STOP_SEQ_LIST(entries) \ + CS_CMD_STOP_SEQ, CMD_W(entries) + +/** + * Stops a sequence at the specified time. + * @note `endFrame` is not used in the implementation of the command, so its value does not matter + */ +#define CS_STOP_SEQ(seqId, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ + CMD_HH((seqId + 1), startFrame), CMD_HH(endFrame, unused0), \ + CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ + CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 + +/** + * Declares a list of `CS_FADE_OUT_SEQ` entries. + */ +#define CS_FADE_OUT_SEQ_LIST(entries) \ + CS_CMD_FADE_OUT_SEQ, CMD_W(entries) + +/** + * Fade out the sequence that is playing on the specified sequence player, over the specified frame range. + * @see `CutsceneFadeOutSeqPlayer` + */ +#define CS_FADE_OUT_SEQ(seqPlayer, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ + CMD_HH(seqPlayer, startFrame), CMD_HH(endFrame, unused0), \ + CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ + CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 + +/** + * Declares a list of `CS_TIME` entries. + */ +#define CS_TIME_LIST(entries) \ + CS_CMD_TIME, CMD_W(entries) + +/** + * Sets the time of day. + * Both the day time and skybox time are set by this command. + * @note `endFrame` is not used in the implementation of the command, so its value does not matter + */ +#define CS_TIME(unused0, startFrame, endFrame, hour, min) \ + CMD_HH(unused0, startFrame), CMD_HBB(endFrame, hour, min), CMD_W(0) + +/** + * Sends the player to a new destination. + * `destination` maps to a custom block of code that must implement the scene transition on its own. + * This custom code can also do other tasks like changing age, setting flags, or any other setup that is needed + * before going to the next destination. + * + * @see `CutsceneDestination` + * @note `endFrame` is not used in the implementation of the command, so its value does not matter + */ +#define CS_DESTINATION(destination, startFrame, endFrame) \ + CS_CMD_DESTINATION, 1, CMD_HH(destination, startFrame), CMD_HH(endFrame, endFrame) + +/** + * Marks the end of a cutscene script. + */ +#define CS_END() 0xFFFFFFFF, 0x00000000 + + +// most instances of this look like unimplemented actor cues. +// after confirming this, can probably switch those over and delete this #define CS_UNK_DATA_LIST(cmdType, entries) CMD_W(cmdType), CMD_W(entries) -/** - * ARGS - * s32 unk1 (a), s32 unk2 (b), s32 unk3 (c), s32 unk4 (d), s32 unk5 (e), s32 unk6 (f), - * s32 unk7 (g), s32 unk8 (h), s32 unk9 (i), s32 unk10 (j), s32 unk11 (k), s32 unk12 (l) - * FORMAT - * aaaaaaaa bbbbbbbb cccccccc dddddddd eeeeeeee ffffffff gggggggg hhhhhhhh iiiiiiii jjjjjjjj kkkkkkkk llllllll - * size = 0x30 - */ #define CS_UNK_DATA(unk1, unk2, unk3, unk4, unk5, unk6, unk7, unk8, unk9, unk10, unk11, unk12) \ CMD_W(unk1), CMD_W(unk2), CMD_W(unk3), CMD_W(unk4), CMD_W(unk5), CMD_W(unk6), \ CMD_W(unk7), CMD_W(unk8), CMD_W(unk9), CMD_W(unk10), CMD_W(unk11), CMD_W(unk12) -/** - * ARGS - * s32 cmdType (c), s32 entries (e) - * FORMAT - * cccccccc eeeeeeee - * size = 0x8 - */ -#define CS_NPC_ACTION_LIST(cmdType, entries) CMD_W(cmdType), CMD_W(entries) +// TODO: Fix ZAPD and delete these +#define CS_CAM_POS_LIST CS_CAM_EYE_SPLINE +#define CS_CAM_POS CS_CAM_POINT +#define CS_CAM_FOCUS_POINT_LIST CS_CAM_AT_SPLINE +#define CS_CAM_FOCUS_POINT CS_CAM_POINT +#define CS_CAM_POS_PLAYER_LIST CS_CAM_EYE_SPLINE_REL_TO_PLAYER +#define CS_CAM_POS_PLAYER CS_CAM_POINT +#define CS_CAM_FOCUS_POINT_PLAYER_LIST CS_CAM_AT_SPLINE_REL_TO_PLAYER +#define CS_CAM_FOCUS_POINT_PLAYER CS_CAM_POINT +#define CS_NPC_ACTION_LIST CS_ACTOR_CUE_LIST +#define CS_NPC_ACTION CS_ACTOR_CUE +#define CS_PLAYER_ACTION_LIST CS_PLAYER_CUE_LIST +#define CS_PLAYER_ACTION CS_PLAYER_CUE +#define CS_LIGHTING_LIST CS_LIGHT_SETTING_LIST +#define CS_CMD_09_LIST CS_RUMBLE_CONTROLLER_LIST +#define CS_CMD_09 CS_RUMBLE_CONTROLLER +#define CS_TEXT_DISPLAY_TEXTBOX CS_TEXT +#define CS_TEXT_LEARN_SONG CS_TEXT_OCARINA_ACTION +#define CS_SCENE_TRANS_FX CS_TRANSITION +#define CS_PLAY_BGM_LIST CS_START_SEQ_LIST +#define CS_STOP_BGM_LIST CS_STOP_SEQ_LIST +#define CS_FADE_BGM_LIST CS_FADE_OUT_SEQ_LIST +#define CS_FADE_BGM CS_FADE_OUT_SEQ +#define CS_TERMINATOR CS_DESTINATION -/** - * ARGS - * s16 npcAction (a), s16 startFrame (s), s16 endFrame (e), - * s16 rotX (u), s16 rotY (v), s16 rotZ (w), - * s32 startX (i), s32 startY (j), s32 startZ (k), - * s32 endX (l), s32 endY (m), s32 endZ (n), - * f32 normX (x), f32 normY (y), f32 normZ (z), - * FORMAT - * aaaassss eeeeuuuu vvvvwwww iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmm nnnnnnnn xxxxxxxx yyyyyyyy zzzzzzzz - * size = 0x30 - */ -#define CS_NPC_ACTION(npcAction, startFrame, endFrame, rotX, rotY, rotZ, startX, startY, startZ, endX, endY, endZ, normX, normY, normZ) \ - CMD_HH(npcAction, startFrame), CMD_HH(endFrame, rotX), CMD_HH(rotY, rotZ), \ - CMD_W(startX), CMD_W(startY), CMD_W(startZ), \ - CMD_W(endX), CMD_W(endY), CMD_W(endZ), \ - CMD_F(normX), CMD_F(normY), CMD_F(normZ) +#define CS_PLAY_BGM(seqId, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ +CS_START_SEQ((seqId)-1, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) -/** - * ARGS - * s32 cmdType (c), s32 entries (e) - * FORMAT - * cccccccc eeeeeeee - * size = 0x8 - */ -#define CS_PLAYER_ACTION_LIST(entries) CS_CMD_SET_PLAYER_ACTION, CMD_W(entries) +#define CS_STOP_BGM(seqId, frame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7, unused8) \ +CS_STOP_SEQ((seqId)-1, frame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7, unused8) -/** - * ARGS - * s16 linkAction (a), s16 startFrame (s), s16 endFrame (e), - * s16 rotX (u), s16 rotY (v), s16 rotZ (w), - * s32 startX (i), s32 startY (j), s32 startZ (k), - * s32 endX (l), s32 endY (m), s32 endZ (n), - * f32 normX (x), f32 normY (y), f32 normZ (z), - * FORMAT - * aaaassss eeeeuuuu vvvvwwww iiiiiiii jjjjjjjj kkkkkkkk llllllll mmmmmmmm nnnnnnnn xxxxxxxx yyyyyyyy zzzzzzzz - * size = 0x30 - */ -#define CS_PLAYER_ACTION(linkAction, startFrame, endFrame, rotX, rotY, rotZ, startX, startY, startZ, endX, endY, endZ, normX, normY, normZ) \ - CS_NPC_ACTION(linkAction, startFrame, endFrame, rotX, rotY, rotZ, startX, startY, startZ, endX, endY, endZ, normX, normY, normZ) - -/** - * ARGS - * s32 entries (e) - * FORMAT - * 00000013 eeeeeeee - * size = 0x8 - */ -#define CS_TEXT_LIST(entries) CS_CMD_TEXTBOX, CMD_W(entries) - -/** - * ARGS - * s16 messageId (i), s16 startFrame (s), s16 endFrame (e), s16 type (o), - * s16 topOptionBranch (y), s16 bottomOptionBranch (n) - * FORMAT - * iiiissss eeeeoooo yyyynnnn - * size = 0xC - */ -#define CS_TEXT_DISPLAY_TEXTBOX(messageId, startFrame, endFrame, type, topOptionBranch, bottomOptionBranch) \ - CMD_HH(messageId, startFrame), CMD_HH(endFrame, type), CMD_HH(topOptionBranch, bottomOptionBranch) - -/** - * ARGS - * s16 startFrame (s), s16 endFrame (e) - * FORMAT - * FFFFssss eeeeFFFF FFFFFFFF - * size = 0xC - */ -#define CS_TEXT_NONE(startFrame, endFrame) \ - CS_TEXT_DISPLAY_TEXTBOX(0xFFFF, startFrame, endFrame, 0xFFFF, 0xFFFF, 0xFFFF) - -/** - * ARGS - * s16 ocarinaSongAction (o), s16 startFrame (s), s16 endFrame (e), s16 topOptionBranch (i) - * FORMAT - * oooossss eeee0002 iiiiFFFF - * size = 0xC - */ -#define CS_TEXT_LEARN_SONG(ocarinaSongAction, startFrame, endFrame, messageId) \ - CS_TEXT_DISPLAY_TEXTBOX(ocarinaSongAction, startFrame, endFrame, 0x0002, messageId, 0xFFFF) - -/** - * ARGS - * s16 transitionType (t), s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused , endFrame duplicate - * 0000002D 00000001 ttttssss eeeeUUUU - * size = 0x10 - */ -#define CS_SCENE_TRANS_FX(transitionType, startFrame, endFrame) \ - CS_CMD_SCENE_TRANS_FX, 0x00000001, CMD_HH(transitionType, startFrame), CMD_HH(endFrame, endFrame) - -/** - * ARGS - * s32 entries (e) - * FORMAT - * 00000056 eeeeeeee - * size = 0x8 - */ -#define CS_PLAY_BGM_LIST(entries) CS_CMD_PLAYBGM, CMD_W(entries) - -/** - * ARGS - * s16 sequence (q), s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused - * qqqqssss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU 00000000 00000000 00000000 - * size = 0x30 - */ -#define CS_PLAY_BGM(sequence, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ - CMD_HH(sequence, startFrame), CMD_HH(endFrame, unused0), \ - CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ - CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 - -/** - * ARGS - * s32 entries (e) - * FORMAT - * 00000057 eeeeeeee - * size = 0x8 - */ -#define CS_STOP_BGM_LIST(entries) CS_CMD_STOPBGM, CMD_W(entries) - -/** - * ARGS - * s16 sequence (q), s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused - * uuqqssss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU 00000000 00000000 00000000 - * size = 0x30 - */ -#define CS_STOP_BGM(sequence, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ - CMD_HH(sequence, startFrame), CMD_HH(endFrame, unused0), \ - CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ - CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 - -/** - * ARGS - * s32 entries (e) - * FORMAT - * 0000007C eeeeeeee - * size = 0x8 - */ -#define CS_FADE_BGM_LIST(entries) CS_CMD_FADEBGM, CMD_W(entries) - -/** - * ARGS - * s16 fadeType (t), s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused - * ttttssss eeeeUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU 00000000 00000000 00000000 - * size = 0x30 - */ -#define CS_FADE_BGM(fadeType, startFrame, endFrame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7) \ - CMD_HH(fadeType, startFrame), CMD_HH(endFrame, unused0), \ - CMD_W(unused1), CMD_W(unused2), CMD_W(unused3), CMD_W(unused4), CMD_W(unused5), \ - CMD_W(unused6), CMD_W(unused7), 0x00000000, 0x00000000, 0x00000000 - -/** - * ARGS - * s32 entries (e) - * FORMAT - * 0000008C eeeeeeee - * size = 0x8 - */ -#define CS_TIME_LIST(entries) CS_CMD_SETTIME, CMD_W(entries) - -/** - * ARGS - * s16 unk (u), s16 startFrame (s), s16 endFrame (e), s8 hour (h), s8 min (m) - * FORMAT - * Capital U is Unused - * uuuussss eeeehhmm UUUUUUUU - * size = 0xC - */ -#define CS_TIME(unk, startFrame, endFrame, hour, min, unused) \ - CMD_HH(unk, startFrame), \ - CMD_HBB(endFrame, hour, min), \ - CMD_W(unused) - -/** - * ARGS - * CutsceneTerminatorDestination dest (d), s16 startFrame (s), s16 endFrame (e) - * FORMAT - * Capital U is Unused , endFrame duplicate - * 000003E8 00000001 ddddssss eeeeUUUU - * size = 0x10 - */ -#define CS_TERMINATOR(dest, startFrame, endFrame) \ - CS_CMD_TERMINATOR, 0x00000001, CMD_HH(dest, startFrame), CMD_HH(endFrame, endFrame) - -/** - * Marks the end of a cutscene - */ -#define CS_END() 0xFFFFFFFF, 0x00000000 +#define CS_LIGHTING(lightSetting, frame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7, unused8) \ +CS_LIGHT_SETTING((lightSetting)-1, frame, unused0, unused1, unused2, unused3, unused4, unused5, unused6, unused7, unused8) #endif diff --git a/include/z64player.h b/include/z64player.h index cd3730baed..f08f0719b5 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -632,7 +632,7 @@ typedef struct Player { /* 0x0440 */ Actor* rideActor; /* 0x0444 */ u8 csMode; /* 0x0445 */ u8 prevCsMode; - /* 0x0446 */ u8 unk_446; + /* 0x0446 */ u8 cueId; /* 0x0447 */ u8 unk_447; /* 0x0448 */ Actor* unk_448; /* 0x044C */ char unk_44C[0x004]; diff --git a/include/z64transition.h b/include/z64transition.h index 17d20d3f4e..e49ef1e660 100644 --- a/include/z64transition.h +++ b/include/z64transition.h @@ -23,9 +23,14 @@ typedef struct { /* 0xDC */ u16* zBuffer; } TransitionUnk; // size = 0xE0 +typedef enum { + /* 1 */ TRANS_INSTANCE_TYPE_FILL_OUT = 1, + /* 2 */ TRANS_INSTANCE_TYPE_FILL_IN +} TransitionInstanceType; + typedef struct { /* 0x000 */ Color_RGBA8_u32 color; - /* 0x004 */ Color_RGBA8_u32 envColor; + /* 0x004 */ Color_RGBA8_u32 unkColor; /* 0x008 */ u8 direction; /* 0x009 */ u8 frame; /* 0x00A */ u8 isDone; @@ -37,12 +42,14 @@ typedef struct { /* 0x098 */ Mtx modelView[2][3]; } TransitionWipe; // size = 0x218 +#define TRANS_INSTANCE_TYPE_FADE_FLASH 3 + typedef struct { - /* 0x000 */ u8 fadeType; + /* 0x000 */ u8 type; /* 0x001 */ u8 isDone; - /* 0x002 */ u8 fadeDirection; - /* 0x004 */ Color_RGBA8_u32 fadeColor; - /* 0x008 */ u16 fadeTimer; + /* 0x002 */ u8 direction; + /* 0x004 */ Color_RGBA8_u32 color; + /* 0x008 */ u16 timer; } TransitionFade; // size = 0xC typedef struct { @@ -69,7 +76,7 @@ typedef struct { /* 0x004 */ f32 transPos; /* 0x008 */ f32 step; /* 0x00C */ s32 state; - /* 0x010 */ s32 fadeDirection; + /* 0x010 */ s32 type; /* 0x018 */ Mtx projection; /* 0x058 */ s32 frame; /* 0x060 */ Mtx modelView[2][3]; diff --git a/src/code/code_8006C3A0.c b/src/code/code_8006C3A0.c index 8943d8b938..0057128e22 100644 --- a/src/code/code_8006C3A0.c +++ b/src/code/code_8006C3A0.c @@ -1,33 +1,33 @@ #include "global.h" -void Flags_UnsetAllEnv(PlayState* play) { +void CutsceneFlags_UnsetAll(PlayState* play) { u8 i; - for (i = 0; i < ARRAY_COUNT(play->envFlags); i++) { - play->envFlags[i] = 0; + for (i = 0; i < ARRAY_COUNT(play->cutsceneFlags); i++) { + play->cutsceneFlags[i] = 0; } } -void Flags_SetEnv(PlayState* play, s16 flag) { +void CutsceneFlags_Set(PlayState* play, s16 flag) { s16 index = flag / 16; s16 bit = flag % 16; s16 mask = 1 << bit; - play->envFlags[index] |= mask; + play->cutsceneFlags[index] |= mask; } -void Flags_UnsetEnv(PlayState* play, s16 flag) { +void CutsceneFlags_Unset(PlayState* play, s16 flag) { s16 index = flag / 16; s16 bit = flag % 16; s16 mask = (1 << bit) ^ 0xFFFF; - play->envFlags[index] &= mask; + play->cutsceneFlags[index] &= mask; } -s32 Flags_GetEnv(PlayState* play, s16 flag) { +s32 CutsceneFlags_Get(PlayState* play, s16 flag) { s16 index = flag / 16; s16 bit = flag % 16; s16 mask = 1 << bit; - return play->envFlags[index] & mask; + return play->cutsceneFlags[index] & mask; } diff --git a/src/code/code_800BB0A0.c b/src/code/code_800BB0A0.c index 0f2ee7d744..8dfd375e1c 100644 --- a/src/code/code_800BB0A0.c +++ b/src/code/code_800BB0A0.c @@ -33,7 +33,8 @@ s32 func_800BB2B4(Vec3f* pos, f32* roll, f32* fov, CutsceneCameraPoint* point, s progress = 0.0f; } - if ((point[key].continueFlag == -1) || (point[key + 1].continueFlag == -1) || (point[key + 2].continueFlag == -1)) { + if ((point[key].continueFlag == CS_CAM_STOP) || (point[key + 1].continueFlag == CS_CAM_STOP) || + (point[key + 2].continueFlag == CS_CAM_STOP)) { return true; } diff --git a/src/code/code_800EC960.c b/src/code/code_800EC960.c index fb4fd25fe1..a5a76016b6 100644 --- a/src/code/code_800EC960.c +++ b/src/code/code_800EC960.c @@ -2259,7 +2259,7 @@ void AudioOcarina_Update(void) { AudioOcarina_UpdateRecordingStaff(); } -void AudioOcarina_PlayLongScarecrowAfterCredits(void) { +void AudioOcarina_PlayLongScarecrowSong(void) { static u8 sScarecrowAfterCreditsState = 0; static u8 sScarecrowAfterCreditsIntrumentId = OCARINA_INSTRUMENT_DEFAULT; static u16 sScarecrowAfterCreditsTimer = 1200; diff --git a/src/code/db_camera.c b/src/code/db_camera.c index 0c50abbc05..80a9eb58db 100644 --- a/src/code/db_camera.c +++ b/src/code/db_camera.c @@ -252,7 +252,7 @@ s32 func_800B4088(DbCamera* dbCamera, Camera* cam) { position = &dbCamera->sub.position[dbCamera->sub.unkIdx]; lookAt = &dbCamera->sub.lookAt[dbCamera->sub.unkIdx]; - position->continueFlag = -1; + position->continueFlag = CS_CAM_STOP; lookAt->continueFlag = position->continueFlag; position->nextPointFrame = 0; lookAt->nextPointFrame = 30; @@ -268,10 +268,10 @@ s32 func_800B4088(DbCamera* dbCamera, Camera* cam) { } for (i = 0; i < (dbCamera->sub.nPoints - 2); i++) { - dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = 0; + dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = CS_CAM_CONTINUE; } - dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = -1; + dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = CS_CAM_STOP; return dbCamera->sub.unkIdx; } @@ -299,7 +299,7 @@ s32 func_800B42C0(DbCamera* dbCamera, Camera* cameraPtr) { CutsceneCameraPoint* position = &dbCamera->sub.position[dbCamera->sub.unkIdx]; CutsceneCameraPoint* lookAt = &dbCamera->sub.lookAt[dbCamera->sub.unkIdx]; - position->continueFlag = lookAt->continueFlag = 0; + position->continueFlag = lookAt->continueFlag = CS_CAM_CONTINUE; if (dbCamera->sub.mode != 1) { DbCamera_Vec3FToS(&dbCamera->eye, &position->pos); @@ -352,10 +352,10 @@ void func_800B44E0(DbCamera* dbCamera, Camera* cam) { sDbCamAnim.unk_04 = 0; for (i = 0; i < (dbCamera->sub.nPoints - 2); i++) { - dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = 0; + dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = CS_CAM_CONTINUE; } - dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = -1; + dbCamera->sub.position[i].continueFlag = dbCamera->sub.lookAt[i].continueFlag = CS_CAM_STOP; } if (dbCamera->sub.nPoints < 6) { @@ -2155,7 +2155,7 @@ s32 DbCamera_UpdateDemoControl(DbCamera* dbCamera, Camera* cam) { } if (CHECK_BTN_ALL(sPlay->state.input[1].press.button, BTN_CRIGHT)) { - D_8015FCC8 = 0; + gUseCutsceneCam = false; gSaveContext.cutsceneIndex = 0xFFFD; gSaveContext.cutsceneTrigger = 1; sDbCamAnim.curFrame = 0.0f; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index a58bc208a8..964d434b4e 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -850,8 +850,8 @@ void func_8002D7EC(Actor* actor) { } void func_8002D868(Actor* actor) { - actor->velocity.x = Math_SinS(actor->world.rot.y) * actor->speedXZ; - actor->velocity.z = Math_CosS(actor->world.rot.y) * actor->speedXZ; + actor->velocity.x = Math_SinS(actor->world.rot.y) * actor->speed; + actor->velocity.z = Math_CosS(actor->world.rot.y) * actor->speed; actor->velocity.y += actor->gravity; if (actor->velocity.y < actor->minVelocityY) { @@ -865,11 +865,11 @@ void Actor_MoveForward(Actor* actor) { } void func_8002D908(Actor* actor) { - f32 sp24 = Math_CosS(actor->world.rot.x) * actor->speedXZ; + f32 speedXZ = Math_CosS(actor->world.rot.x) * actor->speed; - actor->velocity.x = Math_SinS(actor->world.rot.y) * sp24; - actor->velocity.y = Math_SinS(actor->world.rot.x) * actor->speedXZ; - actor->velocity.z = Math_CosS(actor->world.rot.y) * sp24; + actor->velocity.x = Math_SinS(actor->world.rot.y) * speedXZ; + actor->velocity.y = Math_SinS(actor->world.rot.x) * actor->speed; + actor->velocity.z = Math_CosS(actor->world.rot.y) * speedXZ; } void func_8002D97C(Actor* actor) { @@ -878,7 +878,7 @@ void func_8002D97C(Actor* actor) { } void func_8002D9A4(Actor* actor, f32 arg1) { - actor->speedXZ = Math_CosS(actor->world.rot.x) * arg1; + actor->speed = Math_CosS(actor->world.rot.x) * arg1; actor->velocity.y = -Math_SinS(actor->world.rot.x) * arg1; } @@ -3350,9 +3350,9 @@ Actor* Actor_GetProjectileActor(PlayState* play, Actor* refActor, f32 radius) { (((ArmsHook*)actor)->timer == 0)) { actor = actor->next; } else { - deltaX = Math_SinS(actor->world.rot.y) * (actor->speedXZ * 10.0f); + deltaX = Math_SinS(actor->world.rot.y) * (actor->speed * 10.0f); deltaY = actor->velocity.y + (actor->gravity * 10.0f); - deltaZ = Math_CosS(actor->world.rot.y) * (actor->speedXZ * 10.0f); + deltaZ = Math_CosS(actor->world.rot.y) * (actor->speed * 10.0f); spA8.x = actor->world.pos.x + deltaX; spA8.y = actor->world.pos.y + deltaY; @@ -4091,7 +4091,7 @@ s32 func_80035124(Actor* actor, PlayState* play) { actor->params = 1; } else if (!(actor->bgCheckFlags & BGCHECKFLAG_GROUND)) { Actor_MoveForward(actor); - Math_SmoothStepToF(&actor->speedXZ, 0.0f, 1.0f, 0.1f, 0.0f); + Math_SmoothStepToF(&actor->speed, 0.0f, 1.0f, 0.1f, 0.0f); } else if ((actor->bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) && (actor->velocity.y < -4.0f)) { ret = 1; } else { @@ -4299,7 +4299,7 @@ Actor* func_800358DC(Actor* actor, Vec3f* spawnPos, Vec3s* spawnRot, f32* arg3, spawnPos->z, spawnRot->x, spawnRot->y, actor->objBankIndex, params); if (spawnedEnPart != NULL) { spawnedEnPart->actor.scale = actor->scale; - spawnedEnPart->actor.speedXZ = arg3[0]; + spawnedEnPart->actor.speed = arg3[0]; spawnedEnPart->displayList = dList; spawnedEnPart->action = 2; spawnedEnPart->timer = timer; diff --git a/src/code/z_camera.c b/src/code/z_camera.c index 100783217f..e91e4fe8ee 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -7716,7 +7716,7 @@ Vec3s Camera_Update(Camera* camera) { if (gDbgCamEnabled) { DbgCamera_Enable(&D_8015BD80, camera); } else if (camera->play->csCtx.state != CS_STATE_IDLE) { - func_80064534(camera->play, &camera->play->csCtx); + Cutscene_StopManual(camera->play, &camera->play->csCtx); } } diff --git a/src/code/z_demo.c b/src/code/z_demo.c index 4b3a239948..5fd51a5bdf 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -30,27 +30,48 @@ #include "assets/scenes/misc/hakaana_ouke/hakaana_ouke_scene.h" -u16 D_8011E1C0 = 0; -u16 D_8011E1C4 = 0; +u16 sCurTextId = 0; +u16 sCurOcarinaAction = 0; -typedef void (*CutsceneStateHandler)(PlayState*, CutsceneContext*); +typedef void (*CutsceneHandler)(PlayState*, CutsceneContext*); -void func_80064720(PlayState* play, CutsceneContext* csCtx); -void func_80064760(PlayState* play, CutsceneContext* csCtx); -void func_800647C0(PlayState* play, CutsceneContext* csCtx); -void func_80068C3C(PlayState* play, CutsceneContext* csCtx); -void func_80068D84(PlayState* play, CutsceneContext* csCtx); -void func_80068DC0(PlayState* play, CutsceneContext* csCtx); +void CutsceneHandler_DoNothing(PlayState* play, CutsceneContext* csCtx); +void CutsceneHandler_StartManual(PlayState* play, CutsceneContext* csCtx); +void CutsceneHandler_StartScript(PlayState* play, CutsceneContext* csCtx); +void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx); +void CutsceneHandler_StopManual(PlayState* play, CutsceneContext* csCtx); +void CutsceneHandler_StopScript(PlayState* play, CutsceneContext* csCtx); -CutsceneStateHandler sCsStateHandlers1[] = { - func_80064720, func_80064760, func_80064720, func_80068D84, func_80064720, +CutsceneHandler sManualCutsceneHandlers[] = { + CutsceneHandler_DoNothing, // CS_STATE_IDLE + CutsceneHandler_StartManual, // CS_STATE_START + CutsceneHandler_DoNothing, // CS_STATE_RUN + CutsceneHandler_StopManual, // CS_STATE_STOP + CutsceneHandler_DoNothing, // CS_STATE_RUN_UNSTOPPABLE }; -CutsceneStateHandler sCsStateHandlers2[] = { - func_80064720, func_800647C0, func_80068C3C, func_80068DC0, func_80068C3C, +CutsceneHandler sScriptedCutsceneHandlers[] = { + CutsceneHandler_DoNothing, // CS_STATE_IDLE + CutsceneHandler_StartScript, // CS_STATE_START + CutsceneHandler_RunScript, // CS_STATE_RUN + CutsceneHandler_StopScript, // CS_STATE_STOP + CutsceneHandler_RunScript, // CS_STATE_RUN_UNSTOPPABLE }; -u8 sTitleCsState = 0; +typedef enum { + /* 0 */ TITLE_DEMO_SPIRIT_TEMPLE, + /* 1 */ TITLE_DEMO_DEATH_MOUNTAIN_CRATER, + /* 2 */ TITLE_DEMO_GANONDORF_HORSE +} TitleDemoDestination; + +u8 sTitleDemoDestination = TITLE_DEMO_SPIRIT_TEMPLE; + +typedef struct { + /* 0x00 */ u16 entrance; // entrance index upon which the cutscene should trigger + /* 0x02 */ u8 ageRestriction; // 0 for adult only, 1 for child only, 2 for both ages + /* 0x03 */ u8 flag; // eventChkInf flag bound to the entrance cutscene + /* 0x04 */ void* script; // cutscene script that should run +} EntranceCutscene; // size = 0x8 EntranceCutscene sEntranceCutsceneTable[] = { { ENTR_HYRULE_FIELD_3, 2, EVENTCHKINF_A0, gHyruleFieldIntroCs }, @@ -89,22 +110,25 @@ EntranceCutscene sEntranceCutsceneTable[] = { { ENTR_KOKIRI_FOREST_12, 2, EVENTCHKINF_C6, gKokiriForestDekuSproutCs }, }; -// Unused, seems to be an early list of dungeon entrance cutscene locations -void* D_8011E304[] = { +void* sUnusedEntranceCsList[] = { gDekuTreeIntroCs, gJabuJabuIntroCs, gDcOpeningCs, gMinuetCs, gIceCavernSerenadeCs, gTowerBarrierCs, }; -u16 D_8015FCC0; -u16 D_8015FCC2; -u16 D_8015FCC4; -s16 sReturnToCamId; -u8 D_8015FCC8; -s16 sQuakeIndex; -u16 D_8015FCCC; // only written to, never read -char D_8015FCD0[20]; // unreferenced -u8 D_8015FCE4; // only written to, never read +// Stores the frame the relevant cam data was last applied on +u16 gCamAtSplinePointsAppliedFrame; +u16 gCamEyePointAppliedFrame; +u16 gCamAtPointAppliedFrame; -void func_80068ECC(PlayState* play, CutsceneContext* csCtx); +// Cam ID to return to when a scripted cutscene is finished +s16 sReturnToCamId; + +// Setting this to false will skip applying changes to the camera from the current cutscene script. +// It is set to true in most normal situations, only changed to false for debugging purposes. +u8 gUseCutsceneCam; + +s16 sQuakeIndex; + +void Cutscene_SetupScripted(PlayState* play, CutsceneContext* csCtx); void Cutscene_DrawDebugInfo(PlayState* play, Gfx** dlist, CutsceneContext* csCtx) { GfxPrint printer; @@ -117,7 +141,7 @@ void Cutscene_DrawDebugInfo(PlayState* play, Gfx** dlist, CutsceneContext* csCtx GfxPrint_SetColor(&printer, 255, 255, 55, 32); GfxPrint_Printf(&printer, "%s", "FLAME "); GfxPrint_SetColor(&printer, 255, 255, 255, 32); - GfxPrint_Printf(&printer, "%06d", csCtx->frames); + GfxPrint_Printf(&printer, "%06d", csCtx->curFrame); GfxPrint_SetColor(&printer, 50, 255, 255, 60); GfxPrint_SetPos(&printer, 4, 26); GfxPrint_Printf(&printer, "%s", "SKIP=(START) or (Cursole Right)"); @@ -126,40 +150,40 @@ void Cutscene_DrawDebugInfo(PlayState* play, Gfx** dlist, CutsceneContext* csCtx GfxPrint_Destroy(&printer); } -void func_8006450C(PlayState* play, CutsceneContext* csCtx) { +void Cutscene_InitContext(PlayState* play, CutsceneContext* csCtx) { csCtx->state = CS_STATE_IDLE; - csCtx->unk_0C = 0.0f; + csCtx->timer = 0.0f; } -void func_80064520(PlayState* play, CutsceneContext* csCtx) { - csCtx->state = CS_STATE_SKIPPABLE_INIT; - csCtx->linkAction = NULL; +void Cutscene_StartManual(PlayState* play, CutsceneContext* csCtx) { + csCtx->state = CS_STATE_START; + csCtx->playerCue = NULL; } -void func_80064534(PlayState* play, CutsceneContext* csCtx) { - if (csCtx->state != CS_STATE_UNSKIPPABLE_EXEC) { - csCtx->state = CS_STATE_UNSKIPPABLE_INIT; +void Cutscene_StopManual(PlayState* play, CutsceneContext* csCtx) { + if (csCtx->state != CS_STATE_RUN_UNSTOPPABLE) { + csCtx->state = CS_STATE_STOP; } } -void func_80064558(PlayState* play, CutsceneContext* csCtx) { +void Cutscene_UpdateManual(PlayState* play, CutsceneContext* csCtx) { if (gSaveContext.cutsceneIndex < 0xFFF0) { - sCsStateHandlers1[csCtx->state](play, csCtx); + sManualCutsceneHandlers[csCtx->state](play, csCtx); } } -void func_800645A0(PlayState* play, CutsceneContext* csCtx) { +void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) { Input* input = &play->state.input[0]; if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER) { - D_8015FCC8 = 0; + gUseCutsceneCam = false; gSaveContext.cutsceneIndex = 0xFFFD; gSaveContext.cutsceneTrigger = 1; } if (CHECK_BTN_ALL(input->press.button, BTN_DUP) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER && !gDbgCamEnabled) { - D_8015FCC8 = 1; + gUseCutsceneCam = true; gSaveContext.cutsceneIndex = 0xFFFD; gSaveContext.cutsceneTrigger = 1; } @@ -175,85 +199,93 @@ void func_800645A0(PlayState* play, CutsceneContext* csCtx) { } if (gSaveContext.cutsceneIndex >= 0xFFF0) { - func_80068ECC(play, csCtx); - sCsStateHandlers2[csCtx->state](play, csCtx); + Cutscene_SetupScripted(play, csCtx); + sScriptedCutsceneHandlers[csCtx->state](play, csCtx); } } -void func_80064720(PlayState* play, CutsceneContext* csCtx) { +void CutsceneHandler_DoNothing(PlayState* play, CutsceneContext* csCtx) { } -u32 func_8006472C(PlayState* play, CutsceneContext* csCtx, f32 target) { - return Math_StepToF(&csCtx->unk_0C, target, 0.1f); +u32 Cutscene_StepTimer(PlayState* play, CutsceneContext* csCtx, f32 target) { + return Math_StepToF(&csCtx->timer, target, 0.1f); } -void func_80064760(PlayState* play, CutsceneContext* csCtx) { +void CutsceneHandler_StartManual(PlayState* play, CutsceneContext* csCtx) { Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING); Letterbox_SetSizeTarget(32); - if (func_8006472C(play, csCtx, 1.0f)) { + if (Cutscene_StepTimer(play, csCtx, 1.0f)) { Audio_SetCutsceneFlag(1); - csCtx->state++; + csCtx->state++; // CS_STATE_RUN } } -void func_800647C0(PlayState* play, CutsceneContext* csCtx) { - func_80068C3C(play, csCtx); +void CutsceneHandler_StartScript(PlayState* play, CutsceneContext* csCtx) { + CutsceneHandler_RunScript(play, csCtx); Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING); Letterbox_SetSizeTarget(32); - if (func_8006472C(play, csCtx, 1.0f)) { + if (Cutscene_StepTimer(play, csCtx, 1.0f)) { Audio_SetCutsceneFlag(1); - csCtx->state++; + csCtx->state++; // CS_STATE_RUN } } -// Command 3: Misc. Actions -void func_80064824(PlayState* play, CutsceneContext* csCtx, CsCmdBase* cmd) { +void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) { Player* player = GET_PLAYER(play); - f32 temp; - u8 sp3F = 0; + f32 lerp; + u8 isFirstFrame = false; - if ((csCtx->frames < cmd->startFrame) || ((csCtx->frames >= cmd->endFrame) && (cmd->endFrame != cmd->startFrame))) { + if (!((csCtx->curFrame >= cmd->startFrame) && + ((csCtx->curFrame < cmd->endFrame) || (cmd->endFrame == cmd->startFrame)))) { return; } - temp = Environment_LerpWeight(cmd->endFrame - 1, cmd->startFrame, csCtx->frames); + lerp = Environment_LerpWeight(cmd->endFrame - 1, cmd->startFrame, csCtx->curFrame); - if (csCtx->frames == cmd->startFrame) { - sp3F = 1; + if (csCtx->curFrame == cmd->startFrame) { + isFirstFrame = true; } - switch (cmd->base) { - case 1: - if (sp3F != 0) { + switch (cmd->type) { + case CS_MISC_RAIN: + if (isFirstFrame) { Audio_SetNatureAmbienceChannelIO(NATURE_CHANNEL_RAIN, CHANNEL_IO_PORT_4, 0x3F); Audio_SetNatureAmbienceChannelIO(NATURE_CHANNEL_RAIN, CHANNEL_IO_PORT_1, 1); play->envCtx.precipitation[PRECIP_RAIN_MAX] = 20; } break; - case 2: - if (sp3F != 0) { + + case CS_MISC_LIGHTNING: + if (isFirstFrame) { Audio_SetNatureAmbienceChannelIO(NATURE_CHANNEL_LIGHTNING, CHANNEL_IO_PORT_0, 0); Environment_AddLightningBolts(play, 3); gLightningStrike.state = LIGHTNING_STRIKE_START; } break; - case 3: - if (sp3F != 0) { - Flags_SetEnv(play, 0); + + case CS_MISC_SET_CSFLAG_0: + if (isFirstFrame) { + CutsceneFlags_Set(play, 0); + + // Because this check uses an entrance index, the Door of Time will only open + // after entering Temple of Time from the front entrance. + // This is not an issue in the context of normal gameplay. if (gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_0) { - Flags_SetEnv(play, 2); + CutsceneFlags_Set(play, 2); } } break; - case 6: + + case CS_MISC_LIFT_FOG: if (play->envCtx.adjZFar < ENV_ZFAR_MAX) { play->envCtx.adjZFar += 35; } break; - case 7: - if (sp3F != 0) { + + case CS_MISC_CLOUDY_SKY: + if (isFirstFrame) { play->envCtx.changeSkyboxState = CHANGE_SKYBOX_REQUESTED; play->envCtx.skyboxConfig = 1; play->envCtx.changeSkyboxNextConfig = 0; @@ -264,107 +296,131 @@ void func_80064824(PlayState* play, CutsceneContext* csCtx, CsCmdBase* cmd) { play->envCtx.changeLightTimer = play->envCtx.changeDuration = 60; } break; - case 8: - if (play->roomCtx.unk_74[0] < 0x80) { + + case CS_MISC_FADE_KOKIRI_GRASS_ENV_ALPHA: + if (play->roomCtx.unk_74[0] <= 127) { play->roomCtx.unk_74[0] += 4; } break; - case 9: + + case CS_MISC_SNOW: play->envCtx.precipitation[PRECIP_SNOW_MAX] = 16; break; - case 10: - Flags_SetEnv(play, 1); + + case CS_MISC_SET_CSFLAG_1: + CutsceneFlags_Set(play, 1); break; - case 11: - if (play->roomCtx.unk_74[0] < 0x672) { - play->roomCtx.unk_74[0] += 0x14; + + case CS_MISC_DEKU_TREE_DEATH: + if (play->roomCtx.unk_74[0] < 1650) { + play->roomCtx.unk_74[0] += 20; } - if (csCtx->frames == 0x30F) { + + if (csCtx->curFrame == 783) { func_80078884(NA_SE_EV_DEKU_DEATH); - } else if (csCtx->frames == 0x2CD) { + } else if (csCtx->curFrame == 717) { play->roomCtx.unk_74[0] = 0; } break; - case 12: - if (sp3F != 0) { - if (csCtx->state != CS_STATE_UNSKIPPABLE_EXEC) { - csCtx->state = CS_STATE_UNSKIPPABLE_INIT; + + case CS_MISC_STOP_CUTSCENE: + if (isFirstFrame) { + if (csCtx->state != CS_STATE_RUN_UNSTOPPABLE) { + csCtx->state = CS_STATE_STOP; } } break; - case 13: + + case CS_MISC_TRIFORCE_FLASH: if (play->roomCtx.unk_74[1] == 0) { func_80078884(NA_SE_EV_TRIFORCE_FLASH); } - if (play->roomCtx.unk_74[1] < 0xFF) { + + if (play->roomCtx.unk_74[1] < 255) { play->roomCtx.unk_74[1] += 5; } break; - case 14: - if (sp3F != 0) { + + case CS_MISC_SET_LOCKED_VIEWPOINT: + if (isFirstFrame) { Play_SetViewpoint(play, VIEWPOINT_LOCKED); } break; - case 15: - if (sp3F != 0) { + + case CS_MISC_SHOW_TITLE_CARD: + if (isFirstFrame) { TitleCard_InitPlaceName(play, &play->actorCtx.titleCtx, player->giObjectSegment, 160, 120, 144, 24, 20); } break; - case 16: - if (sp3F != 0) { + + case CS_MISC_QUAKE_START: + if (isFirstFrame) { sQuakeIndex = Quake_Request(GET_ACTIVE_CAM(play), QUAKE_TYPE_6); Quake_SetSpeed(sQuakeIndex, 0x7FFF); Quake_SetPerturbations(sQuakeIndex, 4, 0, 1000, 0); Quake_SetDuration(sQuakeIndex, 800); } break; - case 17: - if (sp3F != 0) { + + case CS_MISC_QUAKE_STOP: + if (isFirstFrame) { Quake_RemoveRequest(sQuakeIndex); } break; - case 18: + + case CS_MISC_STOP_STORM_AND_ADVANCE_TO_DAY: play->envCtx.precipitation[PRECIP_RAIN_MAX] = 0; play->envCtx.stormRequest = STORM_REQUEST_STOP; + if (gSaveContext.dayTime < CLOCK_TIME(7, 0)) { gSaveContext.dayTime += 30; } + if (play->envCtx.precipitation[PRECIP_RAIN_CUR] == 0) { gWeatherMode = WEATHER_MODE_CLEAR; Audio_SetNatureAmbienceChannelIO(NATURE_CHANNEL_RAIN, CHANNEL_IO_PORT_1, 0); } break; - case 19: + + case CS_MISC_SET_FLAG_FAST_WINDMILL: SET_EVENTCHKINF(EVENTCHKINF_65); break; - case 20: + + case CS_MISC_SET_FLAG_WELL_DRAINED: SET_EVENTCHKINF(EVENTCHKINF_67); break; - case 21: + + case CS_MISC_SET_FLAG_LAKE_HYLIA_RESTORED: SET_EVENTCHKINF(EVENTCHKINF_69); break; - case 22: - D_801614B0.r = 255; - D_801614B0.g = 255; - D_801614B0.b = 255; - D_801614B0.a = 255; + + case CS_MISC_VISMONO_BLACK_AND_WHITE: + gVisMonoColor.r = 255; + gVisMonoColor.g = 255; + gVisMonoColor.b = 255; + gVisMonoColor.a = 255; break; - case 23: - D_801614B0.r = 255; - D_801614B0.g = 180; - D_801614B0.b = 100; - D_801614B0.a = 255.0f * temp; + + case CS_MISC_VISMONO_SEPIA: + gVisMonoColor.r = 255; + gVisMonoColor.g = 180; + gVisMonoColor.b = 100; + gVisMonoColor.a = 255.0f * lerp; break; - case 24: + + case CS_MISC_HIDE_ROOM: play->roomCtx.curRoom.segment = NULL; break; - case 25: + + case CS_MISC_TIME_ADVANCE_TO_NIGHT: gSaveContext.dayTime += 30; + if ((gSaveContext.dayTime) >= CLOCK_TIME(19, 0)) { gSaveContext.dayTime = CLOCK_TIME(19, 0) - 1; } break; - case 26: + + case CS_MISC_SET_TIME_BASED_LIGHT_SETTING: if ((gSaveContext.dayTime < CLOCK_TIME(4, 30)) || (gSaveContext.dayTime >= CLOCK_TIME(6, 30))) { if ((gSaveContext.dayTime >= CLOCK_TIME(6, 30)) && (gSaveContext.dayTime < CLOCK_TIME(16, 0))) { play->envCtx.lightSettingOverride = 1; @@ -376,7 +432,8 @@ void func_80064824(PlayState* play, CutsceneContext* csCtx, CsCmdBase* cmd) { } } break; - case 27: + + case CS_MISC_RED_PULSATING_LIGHTS: if (play->state.frames & 8) { if (play->envCtx.adjAmbientColor[0] < 40) { play->envCtx.adjAmbientColor[0] += 2; @@ -391,176 +448,190 @@ void func_80064824(PlayState* play, CutsceneContext* csCtx, CsCmdBase* cmd) { } } break; - case 28: - play->unk_11DE9 = true; + + case CS_MISC_HALT_ALL_ACTORS: + play->haltAllActors = true; break; - case 29: - play->unk_11DE9 = false; + + case CS_MISC_RESUME_ALL_ACTORS: + play->haltAllActors = false; break; - case 30: - Flags_SetEnv(play, 3); + + case CS_MISC_SET_CSFLAG_3: + CutsceneFlags_Set(play, 3); break; - case 31: - Flags_SetEnv(play, 4); + + case CS_MISC_SET_CSFLAG_4: + CutsceneFlags_Set(play, 4); break; - case 32: - if (sp3F != 0) { + + case CS_MISC_SANDSTORM_FILL: + if (isFirstFrame) { play->envCtx.sandstormState = SANDSTORM_FILL; } + func_800788CC(NA_SE_EV_SAND_STORM - SFX_FLAG); break; - case 33: + + case CS_MISC_SUNSSONG_START: gSaveContext.sunsSongState = SUNSSONG_START; break; - case 34: + + case CS_MISC_FREEZE_TIME: if (IS_DAY) { gSaveContext.dayTime -= gTimeSpeed; } else { + // doubled to compensate for time moving twice as fast at night gSaveContext.dayTime -= gTimeSpeed * 2; } break; - case 35: - AudioOcarina_PlayLongScarecrowAfterCredits(); - csCtx->frames = cmd->startFrame - 1; + + case CS_MISC_LONG_SCARECROW_SONG: + AudioOcarina_PlayLongScarecrowSong(); + csCtx->curFrame = cmd->startFrame - 1; // the cutscene runs forever break; } } -// Command 4: Set Environment Lighting -void Cutscene_Command_SetLighting(PlayState* play, CutsceneContext* csCtx, CsCmdEnvLighting* cmd) { - if (csCtx->frames == cmd->startFrame) { - play->envCtx.lightSettingOverride = cmd->setting - 1; +void CutsceneCmd_SetLightSetting(PlayState* play, CutsceneContext* csCtx, CsCmdLightSetting* cmd) { + if (csCtx->curFrame == cmd->startFrame) { + play->envCtx.lightSettingOverride = cmd->settingPlusOne - 1; play->envCtx.lightBlend = 1.0f; } } -// Command 0x56: Play Background Music -void Cutscene_Command_PlayBGM(PlayState* play, CutsceneContext* csCtx, CsCmdMusicChange* cmd) { - if (csCtx->frames == cmd->startFrame) { - Audio_PlaySequenceInCutscene(cmd->sequence - 1); +void CutsceneCmd_StartSequence(PlayState* play, CutsceneContext* csCtx, CsCmdStartSeq* cmd) { + if (csCtx->curFrame == cmd->startFrame) { + Audio_PlaySequenceInCutscene(cmd->seqIdPlusOne - 1); } } -// Command 0x57: Stop Background Music -void Cutscene_Command_StopBGM(PlayState* play, CutsceneContext* csCtx, CsCmdMusicChange* cmd) { - if (csCtx->frames == cmd->startFrame) { - Audio_StopSequenceInCutscene(cmd->sequence - 1); +void CutsceneCmd_StopSequence(PlayState* play, CutsceneContext* csCtx, CsCmdStopSeq* cmd) { + if (csCtx->curFrame == cmd->startFrame) { + Audio_StopSequenceInCutscene(cmd->seqIdPlusOne - 1); } } -// Command 0x7C: Fade Background Music over duration -void Cutscene_Command_FadeBGM(PlayState* play, CutsceneContext* csCtx, CsCmdMusicFade* cmd) { - u8 fadeTimer; +void CutsceneCmd_FadeOutSequence(PlayState* play, CutsceneContext* csCtx, CsCmdFadeOutSeq* cmd) { + u8 fadeOutDuration; - if ((csCtx->frames == cmd->startFrame) && (csCtx->frames < cmd->endFrame)) { - fadeTimer = cmd->endFrame - cmd->startFrame; + if ((csCtx->curFrame == cmd->startFrame) && (csCtx->curFrame < cmd->endFrame)) { + fadeOutDuration = cmd->endFrame - cmd->startFrame; - if (cmd->type == 3) { - SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, fadeTimer); + if (cmd->seqPlayer == CS_FADE_OUT_FANFARE) { + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, fadeOutDuration); } else { - SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, fadeTimer); + SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, fadeOutDuration); } } } -// Command 9: ? -void Cutscene_Command_09(PlayState* play, CutsceneContext* csCtx, CsCmdUnknown9* cmd) { - if (csCtx->frames == cmd->startFrame) { - Rumble_Request(0.0f, cmd->unk_06, cmd->unk_07, cmd->unk_08); +void CutsceneCmd_RumbleController(PlayState* play, CutsceneContext* csCtx, CsCmdRumble* cmd) { + if (csCtx->curFrame == cmd->startFrame) { + Rumble_Request(0.0f, cmd->sourceStrength, cmd->duration, cmd->decreaseRate); } } -// Command 0x8C: Set Time of Day & Environment Time -void func_80065134(PlayState* play, CutsceneContext* csCtx, CsCmdDayTime* cmd) { - s16 temp1; - s16 temp2; +void CutsceneCmd_SetTime(PlayState* play, CutsceneContext* csCtx, CsCmdTime* cmd) { + s16 hours; + s16 minutes; - if (csCtx->frames == cmd->startFrame) { - temp1 = (cmd->hour * 60.0f) / (360.0f / 0x4000); - temp2 = (cmd->minute + 1) / (360.0f / 0x4000); + if (csCtx->curFrame == cmd->startFrame) { + hours = (cmd->hour * 60.0f) / (24.0f * 60.0f / 0x10000); + minutes = (cmd->minute + 1) / (24.0f * 60.0f / 0x10000); - gSaveContext.dayTime = temp1 + temp2; - gSaveContext.skyboxTime = temp1 + temp2; + gSaveContext.dayTime = hours + minutes; + gSaveContext.skyboxTime = hours + minutes; } } -// Command 0x3E8: Code Execution (& Terminates Cutscene?) -void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdBase* cmd) { +void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDestination* cmd) { Player* player = GET_PLAYER(play); - s32 temp = 0; + s32 titleDemoSkipped = false; if ((gSaveContext.gameMode != GAMEMODE_NORMAL) && (gSaveContext.gameMode != GAMEMODE_END_CREDITS) && - (play->sceneId != SCENE_HYRULE_FIELD) && (csCtx->frames > 20) && + (play->sceneId != SCENE_HYRULE_FIELD) && (csCtx->curFrame > 20) && (CHECK_BTN_ALL(play->state.input[0].press.button, BTN_A) || CHECK_BTN_ALL(play->state.input[0].press.button, BTN_B) || CHECK_BTN_ALL(play->state.input[0].press.button, BTN_START)) && (gSaveContext.fileNum != 0xFEDC) && (play->transitionTrigger == TRANS_TRIGGER_OFF)) { Audio_PlaySfxGeneral(NA_SE_SY_PIECE_OF_HEART, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - temp = 1; + titleDemoSkipped = true; } - if ((csCtx->frames == cmd->startFrame) || (temp != 0) || - ((csCtx->frames > 20) && CHECK_BTN_ALL(play->state.input[0].press.button, BTN_START) && + if ((csCtx->curFrame == cmd->startFrame) || titleDemoSkipped || + ((csCtx->curFrame > 20) && CHECK_BTN_ALL(play->state.input[0].press.button, BTN_START) && (gSaveContext.fileNum != 0xFEDC))) { - csCtx->state = CS_STATE_UNSKIPPABLE_EXEC; + csCtx->state = CS_STATE_RUN_UNSTOPPABLE; Audio_SetCutsceneFlag(0); gSaveContext.cutsceneTransitionControl = 1; - osSyncPrintf("\n分岐先指定!!=[%d]番", cmd->base); // "Future fork designation=No. [%d]" + osSyncPrintf("\n分岐先指定!!=[%d]番", cmd->destination); // "Future fork designation=No. [%d]" - if ((gSaveContext.gameMode != GAMEMODE_NORMAL) && (csCtx->frames != cmd->startFrame)) { + // `forceRisingButtonAlphas` has a secondary purpose, which is to signal to the title screen actor + // that it should display immediately. This occurs when a title screen cutscene that is not the main + // hyrule field scene is skipped. + if ((gSaveContext.gameMode != GAMEMODE_NORMAL) && (csCtx->curFrame != cmd->startFrame)) { gSaveContext.forceRisingButtonAlphas = true; } gSaveContext.cutsceneIndex = 0; - switch (cmd->base) { - case 1: + switch (cmd->destination) { + case CS_DEST_CUTSCENE_MAP_GANON_HORSE: play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; gSaveContext.cutsceneIndex = 0xFFF1; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 2: + + case CS_DEST_CUTSCENE_MAP_THREE_GODDESSES: play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FILL_WHITE; break; - case 3: + + case CS_DEST_GERUDO_VALLEY_DIN_PART_1: play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0; gSaveContext.cutsceneIndex = 0xFFF1; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FILL_WHITE; break; - case 4: + + case CS_DEST_DEATH_MOUNTAIN_TRAIL_NAYRU: play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FILL_WHITE; break; - case 5: + + case CS_DEST_KOKIRI_FOREST_FARORE: play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FILL_WHITE; break; - case 6: + + case CS_DEST_CUTSCENE_MAP_TRIFORCE_CREATION: play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; gSaveContext.cutsceneIndex = 0xFFF2; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FILL_WHITE; break; - case 7: + + case CS_DEST_KOKIRI_FOREST_RECEIVE_KOKIRI_EMERALD: play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0; gSaveContext.cutsceneIndex = 0xFFF2; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_INSTANT; break; - case 8: + + case CS_DEST_TEMPLE_OF_TIME_FROM_MASTER_SWORD: gSaveContext.fw.set = 0; gSaveContext.respawn[RESPAWN_MODE_TOP].data = 0; + if (!GET_EVENTCHKINF(EVENTCHKINF_45)) { SET_EVENTCHKINF(EVENTCHKINF_45); play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; @@ -575,216 +646,252 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB play->linkAgeOnLoad = LINK_AGE_CHILD; } } + play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_2; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; } break; - case 9: + + case CS_DEST_GERUDO_VALLEY_DIN_PART_2: play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FILL_BROWN; break; - case 10: + + case CS_DEST_LINKS_HOUSE_INTRO: play->nextEntranceIndex = ENTR_LINKS_HOUSE_0; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 11: + + case CS_DEST_KOKIRI_FOREST_INTRO: play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0; gSaveContext.cutsceneIndex = 0xFFF3; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 12: + + case CS_DEST_DEATH_MOUNTAIN_TRAIL_FROM_GORON_RUBY: play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_5; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 13: + + case CS_DEST_ZORAS_FOUNTAIN_FROM_ZORAS_SAPPHIRE: play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; break; - case 14: + + case CS_DEST_KOKIRI_FOREST_FROM_KOKIRI_EMERALD: play->nextEntranceIndex = ENTR_KOKIRI_FOREST_11; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 15: + + case CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF4; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 16: + + case CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF5; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 17: + + case CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF6; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 18: + + case CS_DEST_TEMPLE_OF_TIME_AFTER_LIGHT_MEDALLION: SET_EVENTCHKINF(EVENTCHKINF_4F); play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_4; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; break; - case 19: + + case CS_DEST_DEATH_MOUNTAIN_TRAIL: play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; gSaveContext.cutsceneIndex = 0x8000; break; - case 21: + + case CS_DEST_LAKE_HYLIA_WATER_RESTORED: play->nextEntranceIndex = ENTR_LAKE_HYLIA_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 22: + + case CS_DEST_DESERT_COLOSSUS_REQUIEM: Item_Give(play, ITEM_SONG_REQUIEM); play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 23: + + case CS_DEST_CUTSCENE_MAP_GANONDORF_DEFEATED_CREDITS: play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF8; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 24: + + case CS_DEST_JABU_JABU: play->nextEntranceIndex = ENTR_JABU_JABU_0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 25: + + case CS_DEST_CHAMBER_OF_SAGES_LIGHT_MEDALLION: play->linkAgeOnLoad = LINK_AGE_ADULT; play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 26: + + case CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED_2: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF4; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 27: + + case CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED_2: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF5; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 28: + + case CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED_2: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF6; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 29: + + case CS_DEST_CHAMBER_OF_SAGES_FOREST_MEDALLION: play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.chamberCutsceneNum = 0; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 30: + + case CS_DEST_CHAMBER_OF_SAGES_FIRE_MEDALLION: play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; Item_Give(play, ITEM_MEDALLION_FIRE); gSaveContext.chamberCutsceneNum = 1; break; - case 31: + + case CS_DEST_CHAMBER_OF_SAGES_WATER_MEDALLION: play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; gSaveContext.chamberCutsceneNum = 2; break; - case 32: + + case CS_DEST_HYRULE_FIELD_FLASHBACK: play->linkAgeOnLoad = LINK_AGE_CHILD; play->nextEntranceIndex = ENTR_HYRULE_FIELD_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF2; play->transitionType = TRANS_TYPE_INSTANT; break; - case 33: + + case CS_DEST_HYRULE_FIELD_FROM_ZELDA_ESCAPE: play->nextEntranceIndex = ENTR_HYRULE_FIELD_0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 34: + + case CS_DEST_CUTSCENE_MAP_GANONDORF_FROM_MASTER_SWORD: play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF3; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 35: + + case CS_DEST_HYRULE_FIELD_INTRO_DREAM: play->nextEntranceIndex = ENTR_HYRULE_FIELD_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; - case 38: + + case CS_DEST_CUTSCENE_MAP_SHEIKAH_LEGEND: play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF4; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; - case 39: + + case CS_DEST_TEMPLE_OF_TIME_ZELDA_REVEAL: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF9; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; - case 40: + + case CS_DEST_TEMPLE_OF_TIME_GET_LIGHT_ARROWS: play->linkAgeOnLoad = LINK_AGE_ADULT; play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFFA; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; - case 41: + + case CS_DEST_LAKE_HYLIA_FROM_LAKE_RESTORED: play->nextEntranceIndex = ENTR_LAKE_HYLIA_5; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 42: + + case CS_DEST_KAKARIKO_VILLAGE_DRAIN_WELL: play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF2; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; - case 43: + + case CS_DEST_WINDMILL_FROM_WELL_DRAINED: play->nextEntranceIndex = ENTR_WINDMILL_AND_DAMPES_GRAVE_2; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; - case 44: + + case CS_DEST_TEMPLE_OF_TIME_FROM_ALL_STONES_RESTORED: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_3; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE_INSTANT; break; - case 46: + + case CS_DEST_TEMPLE_OF_TIME_AFTER_LIGHT_MEDALLION_ALT: SET_EVENTCHKINF(EVENTCHKINF_4F); play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_4; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; - case 47: + + case CS_DEST_KAKARIKO_VILLAGE_NOCTURNE_PART_2: Item_Give(play, ITEM_SONG_NOCTURNE); SET_EVENTCHKINF(EVENTCHKINF_54); play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0; @@ -792,40 +899,47 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB gSaveContext.cutsceneIndex = 0xFFF1; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; - case 48: + + case CS_DEST_DESERT_COLOSSUS_FROM_REQUIEM: play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_4; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_SANDSTORM_END; gSaveContext.nextTransitionType = TRANS_TYPE_SANDSTORM_END; break; - case 49: + + case CS_DEST_TEMPLE_OF_TIME_FROM_LIGHT_ARROWS: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_5; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; - case 50: + + case CS_DEST_KAKARIKO_VILLAGE_FROM_NOCTURNE: play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_13; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE_INSTANT; break; - case 51: + + case CS_DEST_HYRULE_FIELD_FROM_ZELDAS_COURTYARD: play->nextEntranceIndex = ENTR_HYRULE_FIELD_0; gSaveContext.cutsceneIndex = 0xFFF8; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_CIRCLE(TCA_NORMAL, TCC_WHITE, TCS_SLOW); break; - case 52: + + case CS_DEST_TEMPLE_OF_TIME_SONG_OF_TIME: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; gSaveContext.cutsceneIndex = 0xFFF7; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_INSTANT; break; - case 53: + + case CS_DEST_HYRULE_FIELD_FROM_SONG_OF_TIME: play->nextEntranceIndex = ENTR_HYRULE_FIELD_16; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 54: + + case CS_DEST_GERUDO_VALLEY_CREDITS: gSaveContext.gameMode = GAMEMODE_END_CREDITS; Audio_SetSfxBanksMute(0x6F); play->linkAgeOnLoad = LINK_AGE_CHILD; @@ -834,103 +948,120 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 55: + + case CS_DEST_GERUDO_FORTRESS_CREDITS: play->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_0; gSaveContext.cutsceneIndex = 0xFFF1; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 56: + + case CS_DEST_KAKARIKO_VILLAGE_CREDITS: play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0; gSaveContext.cutsceneIndex = 0xFFF4; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 57: + + case CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_1: play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0; gSaveContext.cutsceneIndex = 0xFFF3; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 58: + + case CS_DEST_GORON_CITY_CREDITS: play->nextEntranceIndex = ENTR_GORON_CITY_0; gSaveContext.cutsceneIndex = 0xFFF1; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 59: + + case CS_DEST_LAKE_HYLIA_CREDITS: play->nextEntranceIndex = ENTR_LAKE_HYLIA_0; gSaveContext.cutsceneIndex = 0xFFF1; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 60: + + case CS_DEST_ZORAS_FOUNTAIN_CREDITS: play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0; gSaveContext.cutsceneIndex = 0xFFF2; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 61: + + case CS_DEST_ZORAS_DOMAIN_CREDITS: play->nextEntranceIndex = ENTR_ZORAS_DOMAIN_0; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 62: + + case CS_DEST_KOKIRI_FOREST_CREDITS_PART_1: play->linkAgeOnLoad = LINK_AGE_ADULT; play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0; gSaveContext.cutsceneIndex = 0xFFF6; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 63: + + case CS_DEST_KOKIRI_FOREST_CREDITS_PART_2: play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0; gSaveContext.cutsceneIndex = 0xFFF7; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 64: + + case CS_DEST_HYRULE_FIELD_CREDITS: play->nextEntranceIndex = ENTR_HYRULE_FIELD_0; gSaveContext.cutsceneIndex = 0xFFF5; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 65: + + case CS_DEST_LON_LON_RANCH_CREDITS_PART_1_ALT: play->linkAgeOnLoad = LINK_AGE_CHILD; play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; gSaveContext.cutsceneIndex = 0xFFF2; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 66: + + case CS_DEST_KAKARIKO_VILLAGE_FROM_TRAIL_OWL: play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_14; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 67: + + case CS_DEST_HYRULE_FIELD_FROM_LAKE_HYLIA_OWL: play->nextEntranceIndex = ENTR_HYRULE_FIELD_9; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 68: + + case CS_DEST_CUTSCENE_MAP_DEKU_SPROUT_PART_2: play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF5; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 69: + + case CS_DEST_KOKIRI_FOREST_DEKU_SPROUT_PART_3: play->nextEntranceIndex = ENTR_KOKIRI_FOREST_12; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 70: + + case CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_2: play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF4; play->transitionType = TRANS_TYPE_FADE_BLACK; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; break; - case 71: + + case CS_DEST_TEMPLE_OF_TIME_CREDITS: gSaveContext.equips.equipment |= EQUIP_VALUE_TUNIC_KOKIRI << (EQUIP_TYPE_TUNIC * 4); Player_SetEquipmentData(play, player); gSaveContext.equips.equipment |= EQUIP_VALUE_BOOTS_KOKIRI << (EQUIP_TYPE_BOOTS * 4); @@ -941,79 +1072,94 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB gSaveContext.cutsceneIndex = 0xFFF1; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 72: + + case CS_DEST_ZELDAS_COURTYARD_CREDITS: play->nextEntranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF0; play->transitionType = TRANS_TYPE_FADE_BLACK; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; break; - case 73: + + case CS_DEST_LON_LON_RANCH_CREDITS_PART_1: play->linkAgeOnLoad = LINK_AGE_CHILD; play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF2; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 74: + + case CS_DEST_LON_LON_RANCH_CREDITS_PART_2: play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF3; play->transitionType = TRANS_TYPE_FADE_WHITE; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; break; - case 75: + + case CS_DEST_LON_LON_RANCH_CREDITS_PART_3: play->linkAgeOnLoad = LINK_AGE_CHILD; play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF4; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 76: + + case CS_DEST_LON_LON_RANCH_CREDITS_PART_4: play->linkAgeOnLoad = LINK_AGE_ADULT; play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF5; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 77: + + case CS_DEST_LON_LON_RANCH_CREDITS_PART_5: play->linkAgeOnLoad = LINK_AGE_CHILD; play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF6; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 78: + + case CS_DEST_LON_LON_RANCH_CREDITS_PART_6: play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF7; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 88: - case 89: - case 90: - case 91: - case 92: - case 93: + + case CS_DEST_LON_LON_RANCH_1: + case CS_DEST_LON_LON_RANCH_2: + case CS_DEST_LON_LON_RANCH_3: + case CS_DEST_LON_LON_RANCH_4: + case CS_DEST_LON_LON_RANCH_5: + case CS_DEST_LON_LON_RANCH_6: + case CS_DEST_LON_LON_RANCH_7: + case CS_DEST_LON_LON_RANCH_8: + case CS_DEST_LON_LON_RANCH_9: + case CS_DEST_LON_LON_RANCH_10: + case CS_DEST_LON_LON_RANCH_11: + case CS_DEST_LON_LON_RANCH_12: + case CS_DEST_LON_LON_RANCH_13: + case CS_DEST_LON_LON_RANCH_14: + case CS_DEST_LON_LON_RANCH_15: play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 94: + + case CS_DEST_LON_LON_RANCH_FROM_EPONAS_SONG: play->nextEntranceIndex = ENTR_LON_LON_RANCH_1; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 95: + + case CS_DEST_STONES_RESTORED_CONDITIONAL: + // At one point in development, Forest, Fire and Water temples blocked the ability to return to child. + // Completing each dungeon would "restore" their respective stone, with the Door of Time opening after + // all 3 are restored. This cutscene destination sends the player to the correct blue warp destination, + // unless all 3 dungeons have been cleared. In that case, the destination is the Temple of Time which + // plays a cutscene where the door opens. if (GET_EVENTCHKINF(EVENTCHKINF_48) && GET_EVENTCHKINF(EVENTCHKINF_49) && GET_EVENTCHKINF(EVENTCHKINF_4A)) { play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; @@ -1027,11 +1173,13 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; + case 9: play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; + case 10: play->nextEntranceIndex = ENTR_LAKE_HYLIA_0; play->transitionTrigger = TRANS_TRIGGER_START; @@ -1041,7 +1189,8 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB } } break; - case 96: + + case CS_DEST_DESERT_COLOSSUS_FROM_CHAMBER_OF_SAGES: if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) { play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->transitionTrigger = TRANS_TRIGGER_START; @@ -1055,7 +1204,8 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; } break; - case 97: + + case CS_DEST_GRAVEYARD_FROM_CHAMBER_OF_SAGES: if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) { play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; play->transitionTrigger = TRANS_TRIGGER_START; @@ -1068,133 +1218,154 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; } break; - case 98: + + case CS_DEST_DEATH_MOUNTAIN_CRATER_FROM_CHAMBER_OF_SAGES: play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_5; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; break; - case 99: + + case CS_DEST_SACRED_FOREST_MEADOW_WARP_PAD: play->nextEntranceIndex = ENTR_SACRED_FOREST_MEADOW_3; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; break; - case 100: + + case CS_DEST_KOKIRI_FOREST_FROM_CHAMBER_OF_SAGES: play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0; gSaveContext.cutsceneIndex = 0xFFF8; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; break; - case 101: + + case CS_DEST_DESERT_COLOSSUS_FROM_NABOORU_CAPTURE: play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_6; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_SANDSTORM_END; break; - case 102: + + case CS_DEST_TEMPLE_OF_TIME_FRONT_OF_PEDESTAL: play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_6; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 103: + + case CS_DEST_HYRULE_FIELD_TITLE_SCREEN: play->nextEntranceIndex = ENTR_HYRULE_FIELD_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF3; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 104: - switch (sTitleCsState) { - case 0: + + case CS_DEST_TITLE_SCREEN_DEMO: + switch (sTitleDemoDestination) { + case TITLE_DEMO_SPIRIT_TEMPLE: play->nextEntranceIndex = ENTR_SPIRIT_TEMPLE_BOSS_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF2; play->transitionType = TRANS_TYPE_FADE_BLACK; - sTitleCsState++; + sTitleDemoDestination++; break; - case 1: + + case TITLE_DEMO_DEATH_MOUNTAIN_CRATER: play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF1; play->transitionType = TRANS_TYPE_FADE_BLACK; - sTitleCsState++; + sTitleDemoDestination++; break; - case 2: + + case TITLE_DEMO_GANONDORF_HORSE: play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF6; play->transitionType = TRANS_TYPE_FADE_BLACK; - sTitleCsState = 0; + sTitleDemoDestination = TITLE_DEMO_SPIRIT_TEMPLE; break; } break; - case 105: + + case CS_DEST_GRAVEYARD_SUNS_SONG_PART_2: play->nextEntranceIndex = ENTR_GRAVEYARD_0; play->transitionTrigger = TRANS_TRIGGER_START; gSaveContext.cutsceneIndex = 0xFFF1; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 106: + + case CS_DEST_ROYAL_FAMILYS_TOMB_SUNS_SONG_PART_3: play->nextEntranceIndex = ENTR_ROYAL_FAMILYS_TOMB_1; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 107: + + case CS_DEST_GANONS_CASTLE_DISPEL_FOREST_BEAM: play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_2; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 108: + + case CS_DEST_GANONS_CASTLE_DISPEL_WATER_BEAM: play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_3; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 109: + + case CS_DEST_GANONS_CASTLE_DISPEL_SHADOW_BEAM: play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_4; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 110: + + case CS_DEST_GANONS_CASTLE_DISPEL_FIRE_BEAM: play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_5; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 111: + + case CS_DEST_GANONS_CASTLE_DISPEL_LIGHT_BEAM: play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_6; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 112: + + case CS_DEST_GANONS_CASTLE_DISPEL_SPIRIT_BEAM: play->nextEntranceIndex = ENTR_INSIDE_GANONS_CASTLE_7; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 113: + + case CS_DEST_GANONS_CASTLE_DISPEL_BARRIER_CONDITONAL: if (Flags_GetEventChkInf(EVENTCHKINF_BB) && Flags_GetEventChkInf(EVENTCHKINF_BC) && Flags_GetEventChkInf(EVENTCHKINF_BD) && Flags_GetEventChkInf(EVENTCHKINF_BE) && Flags_GetEventChkInf(EVENTCHKINF_BF) && Flags_GetEventChkInf(EVENTCHKINF_AD)) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gTowerBarrierCs); - play->csCtx.frames = 0; + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gTowerBarrierCs); + play->csCtx.curFrame = 0; gSaveContext.cutsceneTrigger = 1; gSaveContext.cutsceneIndex = 0xFFFF; - csCtx->state = CS_STATE_UNSKIPPABLE_INIT; + csCtx->state = CS_STATE_STOP; } else { gSaveContext.cutsceneIndex = 0xFFFF; - csCtx->state = CS_STATE_UNSKIPPABLE_INIT; + csCtx->state = CS_STATE_STOP; } break; - case 114: + + case CS_DEST_HYRULE_FIELD_FROM_FAIRY_OCARINA: play->nextEntranceIndex = ENTR_HYRULE_FIELD_3; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; - case 115: + + case CS_DEST_HYRULE_FIELD_FROM_IMPA_ESCORT: play->nextEntranceIndex = ENTR_HYRULE_FIELD_17; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; break; - case 116: + + case CS_DEST_FROM_RAURU_FINAL_MESSAGE_CONDITIONAL: if (GET_EVENTCHKINF(EVENTCHKINF_C8)) { play->nextEntranceIndex = ENTR_GRAVEYARD_8; play->transitionTrigger = TRANS_TRIGGER_START; @@ -1204,9 +1375,11 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; } + gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; break; - case 117: + + case CS_DEST_HYRULE_FIELD_CREDITS_SKY: gSaveContext.gameMode = GAMEMODE_END_CREDITS; Audio_SetSfxBanksMute(0x6F); play->linkAgeOnLoad = LINK_AGE_ADULT; @@ -1215,13 +1388,15 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; break; - case 118: + + case CS_DEST_GANON_BATTLE_TOWER_COLLAPSE: gSaveContext.respawn[RESPAWN_MODE_DOWN].entranceIndex = ENTR_GANON_BOSS_0; Play_TriggerVoidOut(play); gSaveContext.respawnFlag = -2; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; break; - case 119: + + case CS_DEST_ZELDAS_COURTYARD_RECEIVE_LETTER: gSaveContext.dayTime = CLOCK_TIME(12, 0); gSaveContext.skyboxTime = CLOCK_TIME(12, 0); play->nextEntranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_1; @@ -1232,684 +1407,787 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB } } -// Command 0x2D: Transition Effects -void Cutscene_Command_TransitionFX(PlayState* play, CutsceneContext* csCtx, CsCmdBase* cmd) { - f32 temp; +void CutsceneCmd_Transition(PlayState* play, CutsceneContext* csCtx, CsCmdTransition* cmd) { + f32 lerp; - if ((csCtx->frames >= cmd->startFrame) && (csCtx->frames <= cmd->endFrame)) { + if ((csCtx->curFrame >= cmd->startFrame) && (csCtx->curFrame <= cmd->endFrame)) { play->envCtx.fillScreen = true; - temp = Environment_LerpWeight(cmd->endFrame, cmd->startFrame, csCtx->frames); + lerp = Environment_LerpWeight(cmd->endFrame, cmd->startFrame, csCtx->curFrame); - switch (cmd->base) { - case 1: - case 5: + switch (cmd->type) { + case CS_TRANS_GRAY_FILL_IN: + case CS_TRANS_GRAY_FILL_OUT: play->envCtx.screenFillColor[0] = 160; play->envCtx.screenFillColor[1] = 160; play->envCtx.screenFillColor[2] = 160; - if (cmd->base == 1) { - play->envCtx.screenFillColor[3] = 255.0f * temp; - if ((temp == 0.0f) && (gSaveContext.entranceIndex == ENTR_CHAMBER_OF_THE_SAGES_0)) { + + if (cmd->type == CS_TRANS_GRAY_FILL_IN) { + play->envCtx.screenFillColor[3] = 255.0f * lerp; + + if ((lerp == 0.0f) && (gSaveContext.entranceIndex == ENTR_CHAMBER_OF_THE_SAGES_0)) { Audio_PlaySfxGeneral(NA_SE_SY_WHITE_OUT_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - } else if ((temp == 0.0f) && + } else if ((lerp == 0.0f) && ((gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_0) || (gSaveContext.entranceIndex == ENTR_HYRULE_CASTLE_0) || (gSaveContext.entranceIndex == ENTR_GREAT_FAIRYS_FOUNTAIN_SPELLS_0))) { Audio_PlaySfxGeneral(NA_SE_EV_WHITE_OUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - } else if ((temp == 0.0f) && (play->sceneId == SCENE_INSIDE_GANONS_CASTLE)) { + } else if ((lerp == 0.0f) && (play->sceneId == SCENE_INSIDE_GANONS_CASTLE)) { func_800788CC(NA_SE_EV_WHITE_OUT); } } else { - play->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f; + play->envCtx.screenFillColor[3] = (1.0f - lerp) * 255.0f; } break; - case 2: - case 6: + case CS_TRANS_BLUE_FILL_IN: + case CS_TRANS_BLUE_FILL_OUT: play->envCtx.screenFillColor[0] = 0; play->envCtx.screenFillColor[1] = 0; play->envCtx.screenFillColor[2] = 255; - if (cmd->base == 2) { - play->envCtx.screenFillColor[3] = 255.0f * temp; + + if (cmd->type == CS_TRANS_BLUE_FILL_IN) { + play->envCtx.screenFillColor[3] = 255.0f * lerp; } else { - play->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f; + play->envCtx.screenFillColor[3] = (1.0f - lerp) * 255.0f; } break; - case 3: - case 7: + case CS_TRANS_RED_FILL_OUT: + case CS_TRANS_RED_FILL_IN: play->envCtx.screenFillColor[0] = 255; play->envCtx.screenFillColor[1] = 0; play->envCtx.screenFillColor[2] = 0; - if (cmd->base == 3) { - play->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f; + + if (cmd->type == CS_TRANS_RED_FILL_OUT) { + play->envCtx.screenFillColor[3] = (1.0f - lerp) * 255.0f; } else { - play->envCtx.screenFillColor[3] = 255.0f * temp; + play->envCtx.screenFillColor[3] = 255.0f * lerp; } break; - case 4: - case 8: + case CS_TRANS_GREEN_FILL_OUT: + case CS_TRANS_GREEN_FILL_IN: play->envCtx.screenFillColor[0] = 0; play->envCtx.screenFillColor[1] = 255; play->envCtx.screenFillColor[2] = 0; - if (cmd->base == 4) { - play->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f; + + if (cmd->type == CS_TRANS_GREEN_FILL_OUT) { + play->envCtx.screenFillColor[3] = (1.0f - lerp) * 255.0f; } else { - play->envCtx.screenFillColor[3] = 255.0f * temp; + play->envCtx.screenFillColor[3] = 255.0f * lerp; } break; - case 9: + case CS_TRANS_TRIGGER_INSTANCE: gSaveContext.cutsceneTransitionControl = 1; break; - case 10: - case 11: + case CS_TRANS_BLACK_FILL_OUT: + case CS_TRANS_BLACK_FILL_IN: play->envCtx.screenFillColor[0] = 0; play->envCtx.screenFillColor[1] = 0; play->envCtx.screenFillColor[2] = 0; - if (cmd->base == 10) { - play->envCtx.screenFillColor[3] = (1.0f - temp) * 255.0f; + + if (cmd->type == CS_TRANS_BLACK_FILL_OUT) { + play->envCtx.screenFillColor[3] = (1.0f - lerp) * 255.0f; } else { - play->envCtx.screenFillColor[3] = 255.0f * temp; + play->envCtx.screenFillColor[3] = 255.0f * lerp; } break; - case 12: - gSaveContext.cutsceneTransitionControl = 255.0f - (155.0f * temp); + case CS_TRANS_BLACK_FILL_OUT_TO_HALF: + gSaveContext.cutsceneTransitionControl = 255.0f - (155.0f * lerp); break; - case 13: + case CS_TRANS_BLACK_FILL_IN_FROM_HALF: play->envCtx.screenFillColor[0] = 0; play->envCtx.screenFillColor[1] = 0; play->envCtx.screenFillColor[2] = 0; - play->envCtx.screenFillColor[3] = 255.0f - ((1.0f - temp) * 155.0f); + play->envCtx.screenFillColor[3] = 255.0f - ((1.0f - lerp) * 155.0f); break; } } } -// Command 0x1 & 0x5: Camera Eye Points -s32 Cutscene_Command_CameraEyePoints(PlayState* play, CutsceneContext* csCtx, u8* cmd, u8 relativeToLink) { - s32 shouldContinue = 1; - CsCmdBase* cmdBase = (CsCmdBase*)cmd; +s32 CutsceneCmd_UpdateCamEyeSpline(PlayState* play, CutsceneContext* csCtx, u8* script, u8 relativeToPlayer) { + s32 shouldContinue = true; + CsCmdCam* cmd = (CsCmdCam*)script; s32 size; - cmd += 8; - size = 8; + script += sizeof(CsCmdCam); + size = sizeof(CsCmdCam); - if ((cmdBase->startFrame < csCtx->frames) && (csCtx->frames < cmdBase->endFrame) && - ((csCtx->unk_18 < cmdBase->startFrame) || (csCtx->unk_18 >= 0xF000))) { - csCtx->unk_1B = 1; - csCtx->subCamEyePoints = (CutsceneCameraPoint*)cmd; - if (csCtx->unk_1A != 0) { - csCtx->unk_18 = cmdBase->startFrame; - if (D_8015FCC8 != 0) { + if ((csCtx->curFrame > cmd->startFrame) && (csCtx->curFrame < cmd->endFrame) && + ((cmd->startFrame > csCtx->camEyeSplinePointsAppliedFrame) || + (csCtx->camEyeSplinePointsAppliedFrame >= 0xF000))) { + csCtx->camEyeReady = true; + csCtx->camEyePoints = (CutsceneCameraPoint*)script; + + if (csCtx->camAtReady) { + csCtx->camEyeSplinePointsAppliedFrame = cmd->startFrame; + + if (gUseCutsceneCam) { Play_ChangeCameraSetting(play, csCtx->subCamId, CAM_SET_CS_0); Play_ChangeCameraStatus(play, sReturnToCamId, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, csCtx->subCamId, CAM_STAT_ACTIVE); Camera_ResetAnim(Play_GetCamera(play, csCtx->subCamId)); - Camera_SetCSParams(Play_GetCamera(play, csCtx->subCamId), csCtx->subCamLookAtPoints, - csCtx->subCamEyePoints, GET_PLAYER(play), relativeToLink); + Camera_SetCSParams(Play_GetCamera(play, csCtx->subCamId), csCtx->camAtPoints, csCtx->camEyePoints, + GET_PLAYER(play), relativeToPlayer); } } } while (shouldContinue) { - if (((CutsceneCameraPoint*)cmd)->continueFlag == CS_CMD_STOP) { - shouldContinue = 0; + if (((CutsceneCameraPoint*)script)->continueFlag == CS_CAM_STOP) { + shouldContinue = false; } - cmd += 0x10; - size += 0x10; + + script += sizeof(CutsceneCameraPoint); + size += sizeof(CutsceneCameraPoint); } return size; } -// Command 0x2 & 0x6: Camera At Points -s32 Cutscene_Command_CameraLookAtPoints(PlayState* play, CutsceneContext* csCtx, u8* cmd, u8 relativeToLink) { - s32 shouldContinue = 1; - CsCmdBase* cmdBase = (CsCmdBase*)cmd; +s32 CutsceneCmd_UpdateCamAtSpline(PlayState* play, CutsceneContext* csCtx, u8* script, u8 relativeToPlayer) { + s32 shouldContinue = true; + CsCmdCam* cmd = (CsCmdCam*)script; s32 size; - cmd += 8; - size = 8; + script += sizeof(CsCmdCam); + size = sizeof(CsCmdCam); - if ((cmdBase->startFrame < csCtx->frames) && (csCtx->frames < cmdBase->endFrame) && - ((D_8015FCC0 < cmdBase->startFrame) || (D_8015FCC0 >= 0xF000))) { - csCtx->unk_1A = 1; - csCtx->subCamLookAtPoints = (CutsceneCameraPoint*)cmd; - if (csCtx->unk_1B != 0) { - D_8015FCC0 = cmdBase->startFrame; - if (D_8015FCC8 != 0) { + if ((csCtx->curFrame > cmd->startFrame) && (csCtx->curFrame < cmd->endFrame) && + ((cmd->startFrame > gCamAtSplinePointsAppliedFrame) || (gCamAtSplinePointsAppliedFrame >= 0xF000))) { + csCtx->camAtReady = true; + csCtx->camAtPoints = (CutsceneCameraPoint*)script; + + if (csCtx->camEyeReady) { + gCamAtSplinePointsAppliedFrame = cmd->startFrame; + + if (gUseCutsceneCam) { Play_ChangeCameraSetting(play, csCtx->subCamId, CAM_SET_CS_0); Play_ChangeCameraStatus(play, sReturnToCamId, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, csCtx->subCamId, CAM_STAT_ACTIVE); Camera_ResetAnim(Play_GetCamera(play, csCtx->subCamId)); - Camera_SetCSParams(Play_GetCamera(play, csCtx->subCamId), csCtx->subCamLookAtPoints, - csCtx->subCamEyePoints, GET_PLAYER(play), relativeToLink); + Camera_SetCSParams(Play_GetCamera(play, csCtx->subCamId), csCtx->camAtPoints, csCtx->camEyePoints, + GET_PLAYER(play), relativeToPlayer); } } } while (shouldContinue) { - if (((CutsceneCameraPoint*)cmd)->continueFlag == CS_CMD_STOP) { - shouldContinue = 0; + if (((CutsceneCameraPoint*)script)->continueFlag == CS_CAM_STOP) { + shouldContinue = false; } - cmd += 0x10; - size += 0x10; + + script += sizeof(CutsceneCameraPoint); + size += sizeof(CutsceneCameraPoint); } return size; } -// Command 0x7: ? (Related to camera positons) -s32 Cutscene_Command_07(PlayState* play, CutsceneContext* csCtx, u8* cmd, u8 unused) { - CsCmdBase* cmdBase = (CsCmdBase*)cmd; +s32 CutsceneCmd_SetCamEye(PlayState* play, CutsceneContext* csCtx, u8* script, u8 unused) { + CsCmdCam* cmd = (CsCmdCam*)script; s32 size; - Vec3f sp3C; - Vec3f sp30; + Vec3f at; + Vec3f eye; Camera* subCam; - f32 sp28; + f32 roll; - cmd += 8; - size = 8; + script += sizeof(CsCmdCam); + size = sizeof(CsCmdCam); - if ((cmdBase->startFrame < csCtx->frames) && (csCtx->frames < cmdBase->endFrame) && - ((D_8015FCC2 < cmdBase->startFrame) || (D_8015FCC2 >= 0xF000))) { - csCtx->unk_1B = 1; - csCtx->subCamEyePoints = (CutsceneCameraPoint*)cmd; - if (csCtx->unk_1A != 0) { - D_8015FCC2 = cmdBase->startFrame; - if (D_8015FCC8 != 0) { + if ((csCtx->curFrame > cmd->startFrame) && (csCtx->curFrame < cmd->endFrame) && + ((cmd->startFrame > gCamEyePointAppliedFrame) || (gCamEyePointAppliedFrame >= 0xF000))) { + csCtx->camEyeReady = true; + csCtx->camEyePoints = (CutsceneCameraPoint*)script; + + if (csCtx->camAtReady) { + gCamEyePointAppliedFrame = cmd->startFrame; + + if (gUseCutsceneCam) { subCam = Play_GetCamera(play, csCtx->subCamId); subCam->player = NULL; + Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, csCtx->subCamId, CAM_STAT_ACTIVE); Play_ChangeCameraSetting(play, csCtx->subCamId, CAM_SET_FREE0); - sp28 = csCtx->subCamLookAtPoints->cameraRoll * 1.40625f; - Camera_SetViewParam(subCam, CAM_VIEW_ROLL, &sp28); - sp3C.x = csCtx->subCamLookAtPoints->pos.x; - sp3C.y = csCtx->subCamLookAtPoints->pos.y; - sp3C.z = csCtx->subCamLookAtPoints->pos.z; - sp30.x = csCtx->subCamEyePoints->pos.x; - sp30.y = csCtx->subCamEyePoints->pos.y; - sp30.z = csCtx->subCamEyePoints->pos.z; - Play_SetCameraAtEye(play, csCtx->subCamId, &sp3C, &sp30); - Play_SetCameraFov(play, csCtx->subCamId, csCtx->subCamEyePoints->viewAngle); + + roll = csCtx->camAtPoints->cameraRoll * 1.40625f; + Camera_SetViewParam(subCam, CAM_VIEW_ROLL, &roll); + + at.x = csCtx->camAtPoints->pos.x; + at.y = csCtx->camAtPoints->pos.y; + at.z = csCtx->camAtPoints->pos.z; + + eye.x = csCtx->camEyePoints->pos.x; + eye.y = csCtx->camEyePoints->pos.y; + eye.z = csCtx->camEyePoints->pos.z; + + Play_SetCameraAtEye(play, csCtx->subCamId, &at, &eye); + Play_SetCameraFov(play, csCtx->subCamId, csCtx->camEyePoints->viewAngle); } } } - size += 0x10; + size += sizeof(CutsceneCameraPoint); return size; } -// Command 0x8: ? (Related to camera focus points) -s32 Cutscene_Command_08(PlayState* play, CutsceneContext* csCtx, u8* cmd, u8 unused) { - CsCmdBase* cmdBase = (CsCmdBase*)cmd; +s32 CutsceneCmd_SetCamAt(PlayState* play, CutsceneContext* csCtx, u8* script, u8 unused) { + CsCmdCam* cmd = (CsCmdCam*)script; s32 size; - Vec3f sp3C; - Vec3f sp30; + Vec3f at; + Vec3f eye; Camera* subCam; - f32 sp28; - cmd += 8; - size = 8; + script += sizeof(CsCmdCam); + size = sizeof(CsCmdCam); - if ((cmdBase->startFrame < csCtx->frames) && (csCtx->frames < cmdBase->endFrame) && - ((D_8015FCC4 < cmdBase->startFrame) || (D_8015FCC4 >= 0xF000))) { - csCtx->unk_1A = 1; - csCtx->subCamLookAtPoints = (CutsceneCameraPoint*)cmd; - if (csCtx->unk_1B != 0) { - D_8015FCC4 = cmdBase->startFrame; - if (D_8015FCC8 != 0) { + if ((csCtx->curFrame > cmd->startFrame) && (csCtx->curFrame < cmd->endFrame) && + ((cmd->startFrame > gCamAtPointAppliedFrame) || (gCamAtPointAppliedFrame >= 0xF000))) { + csCtx->camAtReady = true; + csCtx->camAtPoints = (CutsceneCameraPoint*)script; + + if (csCtx->camEyeReady) { + gCamAtPointAppliedFrame = cmd->startFrame; + + if (gUseCutsceneCam) { subCam = Play_GetCamera(play, csCtx->subCamId); subCam->player = NULL; + Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, csCtx->subCamId, CAM_STAT_ACTIVE); Play_ChangeCameraSetting(play, csCtx->subCamId, CAM_SET_FREE0); - sp3C.x = csCtx->subCamLookAtPoints->pos.x; - sp3C.y = csCtx->subCamLookAtPoints->pos.y; - sp3C.z = csCtx->subCamLookAtPoints->pos.z; - sp30.x = csCtx->subCamEyePoints->pos.x; - sp30.y = csCtx->subCamEyePoints->pos.y; - sp30.z = csCtx->subCamEyePoints->pos.z; - Play_SetCameraAtEye(play, csCtx->subCamId, &sp3C, &sp30); - Play_SetCameraFov(play, csCtx->subCamId, csCtx->subCamEyePoints->viewAngle); + + at.x = csCtx->camAtPoints->pos.x; + at.y = csCtx->camAtPoints->pos.y; + at.z = csCtx->camAtPoints->pos.z; + + eye.x = csCtx->camEyePoints->pos.x; + eye.y = csCtx->camEyePoints->pos.y; + eye.z = csCtx->camEyePoints->pos.z; + + Play_SetCameraAtEye(play, csCtx->subCamId, &at, &eye); + Play_SetCameraFov(play, csCtx->subCamId, csCtx->camEyePoints->viewAngle); } } } - size += 0x10; + size += sizeof(CutsceneCameraPoint); return size; } -// Command 0x13: Textbox -void Cutscene_Command_Textbox(PlayState* play, CutsceneContext* csCtx, CsCmdTextbox* cmd) { +void CutsceneCmd_Text(PlayState* play, CutsceneContext* csCtx, CsCmdText* cmd) { u8 dialogState; - s16 originalCsFrames; + s16 endFrame; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - if (cmd->type != 2) { - if (D_8011E1C0 != cmd->base) { - D_8011E1C0 = cmd->base; - if ((cmd->type == 3) && CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) { - Message_StartTextbox(play, cmd->textId1, NULL); - } else if ((cmd->type == 4) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) { - Message_StartTextbox(play, cmd->textId1, NULL); + if ((csCtx->curFrame > cmd->startFrame) && (csCtx->curFrame <= cmd->endFrame)) { + if (cmd->type != CS_TEXT_OCARINA_ACTION) { + if (sCurTextId != cmd->textId) { + sCurTextId = cmd->textId; + + if ((cmd->type == CS_TEXT_GORON_RUBY) && CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE)) { + Message_StartTextbox(play, cmd->altTextId1, NULL); + } else if ((cmd->type == CS_TEXT_ZORA_SAPPHIRE) && CHECK_QUEST_ITEM(QUEST_GORON_RUBY)) { + Message_StartTextbox(play, cmd->altTextId1, NULL); } else { - Message_StartTextbox(play, cmd->base, NULL); + Message_StartTextbox(play, cmd->textId, NULL); } return; } } else { - if (D_8011E1C4 != cmd->base) { - D_8011E1C4 = cmd->base; - func_8010BD58(play, cmd->base); + if (sCurOcarinaAction != cmd->textId) { + sCurOcarinaAction = cmd->textId; + Message_StartOcarina(play, cmd->textId); return; } } - if (csCtx->frames >= cmd->endFrame) { - originalCsFrames = csCtx->frames; + if (csCtx->curFrame >= cmd->endFrame) { + endFrame = csCtx->curFrame; dialogState = Message_GetState(&play->msgCtx); if ((dialogState != TEXT_STATE_CLOSING) && (dialogState != TEXT_STATE_NONE) && (dialogState != TEXT_STATE_SONG_DEMO_DONE) && (dialogState != TEXT_STATE_8)) { - csCtx->frames--; + csCtx->curFrame--; if ((dialogState == TEXT_STATE_CHOICE) && Message_ShouldAdvance(play)) { if (play->msgCtx.choiceIndex == 0) { - if (cmd->textId1 != 0xFFFF) { - Message_ContinueTextbox(play, cmd->textId1); + if (cmd->altTextId1 != CS_TEXT_ID_NONE) { + Message_ContinueTextbox(play, cmd->altTextId1); } else { - csCtx->frames++; + csCtx->curFrame++; } } else { - if (cmd->textId2 != 0xFFFF) { - Message_ContinueTextbox(play, cmd->textId2); + if (cmd->altTextId2 != CS_TEXT_ID_NONE) { + Message_ContinueTextbox(play, cmd->altTextId2); } else { - csCtx->frames++; + csCtx->curFrame++; } } } if (dialogState == TEXT_STATE_9) { - if (cmd->textId1 != 0xFFFF) { - Message_ContinueTextbox(play, cmd->textId1); + if (cmd->altTextId1 != CS_TEXT_ID_NONE) { + Message_ContinueTextbox(play, cmd->altTextId1); } else { - csCtx->frames++; + csCtx->curFrame++; } } if (dialogState == TEXT_STATE_EVENT) { if (Message_ShouldAdvance(play)) { - func_8010BD58(play, cmd->base); + Message_StartOcarina(play, cmd->textId); } } } - if (csCtx->frames == originalCsFrames) { + if (csCtx->curFrame == endFrame) { Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING); - D_8011E1C0 = 0; - D_8011E1C4 = 0; + sCurTextId = 0; + sCurOcarinaAction = 0; } } } } -void Cutscene_ProcessCommands(PlayState* play, CutsceneContext* csCtx, u8* cutscenePtr) { +void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script) { s16 i; s32 totalEntries; s32 cmdType; s32 cmdEntries; - CsCmdBase* cmd; - s32 cutsceneEndFrame; + void* cmd; + s32 csFrameCount; s16 j; - MemCpy(&totalEntries, cutscenePtr, 4); - cutscenePtr += 4; - MemCpy(&cutsceneEndFrame, cutscenePtr, 4); - cutscenePtr += 4; + MemCpy(&totalEntries, script, sizeof(totalEntries)); + script += sizeof(totalEntries); - if ((cutsceneEndFrame < csCtx->frames) && (csCtx->state != CS_STATE_UNSKIPPABLE_EXEC)) { - csCtx->state = CS_STATE_UNSKIPPABLE_INIT; + MemCpy(&csFrameCount, script, sizeof(csFrameCount)); + script += sizeof(csFrameCount); + + if ((csCtx->curFrame > csFrameCount) && (csCtx->state != CS_STATE_RUN_UNSTOPPABLE)) { + csCtx->state = CS_STATE_STOP; return; } if (CHECK_BTN_ALL(play->state.input[0].press.button, BTN_DRIGHT)) { - csCtx->state = CS_STATE_UNSKIPPABLE_INIT; + csCtx->state = CS_STATE_STOP; return; } for (i = 0; i < totalEntries; i++) { - MemCpy(&cmdType, cutscenePtr, 4); - cutscenePtr += 4; + MemCpy(&cmdType, script, sizeof(cmdType)); + script += sizeof(cmdType); - if (cmdType == -1) { + if (cmdType == CS_CAM_STOP) { return; } switch (cmdType) { case CS_CMD_MISC: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - func_80064824(play, csCtx, (void*)cutscenePtr); - cutscenePtr += 0x30; + CutsceneCmd_Misc(play, csCtx, (void*)script); + script += sizeof(CsCmdMisc); } break; - case CS_CMD_SET_LIGHTING: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_LIGHT_SETTING: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - Cutscene_Command_SetLighting(play, csCtx, (void*)cutscenePtr); - cutscenePtr += 0x30; + CutsceneCmd_SetLightSetting(play, csCtx, (void*)script); + script += sizeof(CsCmdLightSetting); } break; - case CS_CMD_PLAYBGM: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_START_SEQ: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - Cutscene_Command_PlayBGM(play, csCtx, (void*)cutscenePtr); - cutscenePtr += 0x30; + CutsceneCmd_StartSequence(play, csCtx, (void*)script); + script += sizeof(CsCmdStartSeq); } break; - case CS_CMD_STOPBGM: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_STOP_SEQ: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - Cutscene_Command_StopBGM(play, csCtx, (void*)cutscenePtr); - cutscenePtr += 0x30; + CutsceneCmd_StopSequence(play, csCtx, (void*)script); + script += sizeof(CsCmdStopSeq); } break; - case CS_CMD_FADEBGM: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_FADE_OUT_SEQ: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - Cutscene_Command_FadeBGM(play, csCtx, (void*)cutscenePtr); - cutscenePtr += 0x30; + CutsceneCmd_FadeOutSequence(play, csCtx, (void*)script); + script += sizeof(CsCmdFadeOutSeq); } break; - case CS_CMD_09: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_RUMBLE_CONTROLLER: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - Cutscene_Command_09(play, csCtx, (void*)cutscenePtr); - cutscenePtr += 0xC; + CutsceneCmd_RumbleController(play, csCtx, (void*)script); + script += sizeof(CsCmdRumble); } break; - case CS_CMD_SETTIME: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_TIME: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - func_80065134(play, csCtx, (void*)cutscenePtr); - cutscenePtr += 0xC; + CutsceneCmd_SetTime(play, csCtx, (void*)script); + script += sizeof(CsCmdTime); } break; - case CS_CMD_SET_PLAYER_ACTION: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_PLAYER_CUE: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->linkAction = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->playerCue = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; - case CS_CMD_SET_ACTOR_ACTION_1: - case 17: - case 18: - case 23: - case 34: - case 39: - case 46: - case 76: - case 85: - case 93: - case 105: - case 107: - case 110: - case 119: - case 123: - case 138: - case 139: - case 144: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_ACTOR_CUE_0_0: + case CS_CMD_ACTOR_CUE_0_1: + case CS_CMD_ACTOR_CUE_0_2: + case CS_CMD_ACTOR_CUE_0_3: + case CS_CMD_ACTOR_CUE_0_4: + case CS_CMD_ACTOR_CUE_0_5: + case CS_CMD_ACTOR_CUE_0_6: + case CS_CMD_ACTOR_CUE_0_7: + case CS_CMD_ACTOR_CUE_0_8: + case CS_CMD_ACTOR_CUE_0_9: + case CS_CMD_ACTOR_CUE_0_10: + case CS_CMD_ACTOR_CUE_0_11: + case CS_CMD_ACTOR_CUE_0_12: + case CS_CMD_ACTOR_CUE_0_13: + case CS_CMD_ACTOR_CUE_0_14: + case CS_CMD_ACTOR_CUE_0_15: + case CS_CMD_ACTOR_CUE_0_16: + case CS_CMD_ACTOR_CUE_0_17: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->npcActions[0] = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->actorCues[0] = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; - case CS_CMD_SET_ACTOR_ACTION_2: - case 16: - case 24: - case 35: - case 40: - case 48: - case 64: - case 68: - case 70: - case 78: - case 80: - case 94: - case 116: - case 118: - case 120: - case 125: - case 131: - case 141: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_ACTOR_CUE_1_0: + case CS_CMD_ACTOR_CUE_1_1: + case CS_CMD_ACTOR_CUE_1_2: + case CS_CMD_ACTOR_CUE_1_3: + case CS_CMD_ACTOR_CUE_1_4: + case CS_CMD_ACTOR_CUE_1_5: + case CS_CMD_ACTOR_CUE_1_6: + case CS_CMD_ACTOR_CUE_1_7: + case CS_CMD_ACTOR_CUE_1_8: + case CS_CMD_ACTOR_CUE_1_9: + case CS_CMD_ACTOR_CUE_1_10: + case CS_CMD_ACTOR_CUE_1_11: + case CS_CMD_ACTOR_CUE_1_12: + case CS_CMD_ACTOR_CUE_1_13: + case CS_CMD_ACTOR_CUE_1_14: + case CS_CMD_ACTOR_CUE_1_15: + case CS_CMD_ACTOR_CUE_1_16: + case CS_CMD_ACTOR_CUE_1_17: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->npcActions[1] = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->actorCues[1] = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; - case CS_CMD_SET_ACTOR_ACTION_3: - case 36: - case 41: - case 50: - case 67: - case 69: - case 72: - case 74: - case 81: - case 106: - case 117: - case 121: - case 126: - case 132: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_ACTOR_CUE_2_0: + case CS_CMD_ACTOR_CUE_2_1: + case CS_CMD_ACTOR_CUE_2_2: + case CS_CMD_ACTOR_CUE_2_3: + case CS_CMD_ACTOR_CUE_2_4: + case CS_CMD_ACTOR_CUE_2_5: + case CS_CMD_ACTOR_CUE_2_6: + case CS_CMD_ACTOR_CUE_2_7: + case CS_CMD_ACTOR_CUE_2_8: + case CS_CMD_ACTOR_CUE_2_9: + case CS_CMD_ACTOR_CUE_2_10: + case CS_CMD_ACTOR_CUE_2_11: + case CS_CMD_ACTOR_CUE_2_12: + case CS_CMD_ACTOR_CUE_2_13: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->npcActions[2] = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->actorCues[2] = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; - case CS_CMD_SET_ACTOR_ACTION_4: - case 37: - case 42: - case 51: - case 53: - case 63: - case 65: - case 66: - case 75: - case 82: - case 108: - case 127: - case 133: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_ACTOR_CUE_3_0: + case CS_CMD_ACTOR_CUE_3_1: + case CS_CMD_ACTOR_CUE_3_2: + case CS_CMD_ACTOR_CUE_3_3: + case CS_CMD_ACTOR_CUE_3_4: + case CS_CMD_ACTOR_CUE_3_5: + case CS_CMD_ACTOR_CUE_3_6: + case CS_CMD_ACTOR_CUE_3_7: + case CS_CMD_ACTOR_CUE_3_8: + case CS_CMD_ACTOR_CUE_3_9: + case CS_CMD_ACTOR_CUE_3_10: + case CS_CMD_ACTOR_CUE_3_11: + case CS_CMD_ACTOR_CUE_3_12: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->npcActions[3] = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->actorCues[3] = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; - case CS_CMD_SET_ACTOR_ACTION_5: - case 38: - case 43: - case 47: - case 54: - case 79: - case 83: - case 128: - case 135: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_ACTOR_CUE_4_0: + case CS_CMD_ACTOR_CUE_4_1: + case CS_CMD_ACTOR_CUE_4_2: + case CS_CMD_ACTOR_CUE_4_3: + case CS_CMD_ACTOR_CUE_4_4: + case CS_CMD_ACTOR_CUE_4_5: + case CS_CMD_ACTOR_CUE_4_6: + case CS_CMD_ACTOR_CUE_4_7: + case CS_CMD_ACTOR_CUE_4_8: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->npcActions[4] = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->actorCues[4] = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; - case CS_CMD_SET_ACTOR_ACTION_6: - case 55: - case 77: - case 84: - case 90: - case 129: - case 136: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_ACTOR_CUE_5_0: + case CS_CMD_ACTOR_CUE_5_1: + case CS_CMD_ACTOR_CUE_5_2: + case CS_CMD_ACTOR_CUE_5_3: + case CS_CMD_ACTOR_CUE_5_4: + case CS_CMD_ACTOR_CUE_5_5: + case CS_CMD_ACTOR_CUE_5_6: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->npcActions[5] = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->actorCues[5] = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; - case CS_CMD_SET_ACTOR_ACTION_7: - case 52: - case 57: - case 58: - case 88: - case 115: - case 130: - case 137: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_ACTOR_CUE_6_0: + case CS_CMD_ACTOR_CUE_6_1: + case CS_CMD_ACTOR_CUE_6_2: + case CS_CMD_ACTOR_CUE_6_3: + case CS_CMD_ACTOR_CUE_6_4: + case CS_CMD_ACTOR_CUE_6_5: + case CS_CMD_ACTOR_CUE_6_6: + case CS_CMD_ACTOR_CUE_6_7: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->npcActions[6] = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->actorCues[6] = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; - case CS_CMD_SET_ACTOR_ACTION_8: - case 60: - case 89: - case 111: - case 114: - case 134: - case 142: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_ACTOR_CUE_7_0: + case CS_CMD_ACTOR_CUE_7_1: + case CS_CMD_ACTOR_CUE_7_2: + case CS_CMD_ACTOR_CUE_7_3: + case CS_CMD_ACTOR_CUE_7_4: + case CS_CMD_ACTOR_CUE_7_5: + case CS_CMD_ACTOR_CUE_7_6: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->npcActions[7] = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->actorCues[7] = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; - case CS_CMD_SET_ACTOR_ACTION_9: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_ACTOR_CUE_8_0: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->npcActions[8] = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->actorCues[8] = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; - case CS_CMD_SET_ACTOR_ACTION_10: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_ACTOR_CUE_9_0: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if ((cmd->startFrame < csCtx->frames) && (csCtx->frames <= cmd->endFrame)) { - csCtx->npcActions[9] = (void*)cutscenePtr; + cmd = script; + + if ((csCtx->curFrame > ((CsCmdActorCue*)cmd)->startFrame) && + (csCtx->curFrame <= ((CsCmdActorCue*)cmd)->endFrame)) { + csCtx->actorCues[9] = (void*)script; } - cutscenePtr += 0x30; + + script += sizeof(CsCmdActorCue); } break; + + case CS_CMD_CAM_EYE_SPLINE: + script += CutsceneCmd_UpdateCamEyeSpline(play, csCtx, (void*)script, false); + break; + + case CS_CMD_CAM_EYE_SPLINE_REL_TO_PLAYER: + script += CutsceneCmd_UpdateCamEyeSpline(play, csCtx, (void*)script, true); + break; + + case CS_CMD_CAM_AT_SPLINE: + script += CutsceneCmd_UpdateCamAtSpline(play, csCtx, (void*)script, false); + break; + + case CS_CMD_CAM_AT_SPLINE_REL_TO_PLAYER: + script += CutsceneCmd_UpdateCamAtSpline(play, csCtx, (void*)script, true); + break; + case CS_CMD_CAM_EYE: - cutscenePtr += Cutscene_Command_CameraEyePoints(play, csCtx, (void*)cutscenePtr, 0); - break; - case CS_CMD_CAM_EYE_REL_TO_PLAYER: - cutscenePtr += Cutscene_Command_CameraEyePoints(play, csCtx, (void*)cutscenePtr, 1); + script += CutsceneCmd_SetCamEye(play, csCtx, (void*)script, 0); break; + case CS_CMD_CAM_AT: - cutscenePtr += Cutscene_Command_CameraLookAtPoints(play, csCtx, (void*)cutscenePtr, 0); + script += CutsceneCmd_SetCamAt(play, csCtx, (void*)script, 0); break; - case CS_CMD_CAM_AT_REL_TO_PLAYER: - cutscenePtr += Cutscene_Command_CameraLookAtPoints(play, csCtx, (void*)cutscenePtr, 1); + + case CS_CMD_DESTINATION: + script += sizeof(cmdEntries); + CutsceneCmd_Destination(play, csCtx, (void*)script); + script += sizeof(CsCmdDestination); break; - case CS_CMD_07: - cutscenePtr += Cutscene_Command_07(play, csCtx, (void*)cutscenePtr, 0); - break; - case CS_CMD_08: - cutscenePtr += Cutscene_Command_08(play, csCtx, (void*)cutscenePtr, 0); - break; - case CS_CMD_TERMINATOR: - cutscenePtr += 4; - Cutscene_Command_Terminator(play, csCtx, (void*)cutscenePtr); - cutscenePtr += 8; - break; - case CS_CMD_TEXTBOX: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + + case CS_CMD_TEXT: + MemCpy(&cmdEntries, script, sizeof(cmdEntries)); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cmd = (CsCmdBase*)cutscenePtr; - if (cmd->base != 0xFFFF) { - Cutscene_Command_Textbox(play, csCtx, (void*)cutscenePtr); + cmd = script; + + if (((CsCmdText*)cmd)->textId != CS_TEXT_ID_NONE) { + CutsceneCmd_Text(play, csCtx, (void*)script); } - cutscenePtr += 0xC; + + script += sizeof(CsCmdText); } break; - case CS_CMD_SCENE_TRANS_FX: - cutscenePtr += 4; - Cutscene_Command_TransitionFX(play, csCtx, (void*)cutscenePtr); - cutscenePtr += 8; + + case CS_CMD_TRANSITION: + script += sizeof(cmdEntries); + CutsceneCmd_Transition(play, csCtx, (void*)script); + script += sizeof(CsCmdTransition); break; + default: - MemCpy(&cmdEntries, cutscenePtr, 4); - cutscenePtr += 4; + MemCpy(&cmdEntries, script, 4); + script += sizeof(cmdEntries); + for (j = 0; j < cmdEntries; j++) { - cutscenePtr += 0x30; + script += 0x30; } break; } } } -void func_80068C3C(PlayState* play, CutsceneContext* csCtx) { +void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx) { Gfx* displayList; Gfx* prevDisplayList; @@ -1932,42 +2210,44 @@ void func_80068C3C(PlayState* play, CutsceneContext* csCtx) { CLOSE_DISPS(play->state.gfxCtx, "../z_demo.c", 4108); } - csCtx->frames++; - if (dREG(95) != 0) { - Cutscene_ProcessCommands(play, csCtx, D_8012D1F0); + csCtx->curFrame++; + + if (R_USE_DEBUG_CUTSCENE) { + Cutscene_ProcessScript(play, csCtx, gDebugCutsceneScript); } else { - Cutscene_ProcessCommands(play, csCtx, play->csCtx.segment); + Cutscene_ProcessScript(play, csCtx, play->csCtx.script); } } } -void func_80068D84(PlayState* play, CutsceneContext* csCtx) { - if (func_8006472C(play, csCtx, 0.0f)) { +void CutsceneHandler_StopManual(PlayState* play, CutsceneContext* csCtx) { + if (Cutscene_StepTimer(play, csCtx, 0.0f)) { Audio_SetCutsceneFlag(0); csCtx->state = CS_STATE_IDLE; } } -void func_80068DC0(PlayState* play, CutsceneContext* csCtx) { +void CutsceneHandler_StopScript(PlayState* play, CutsceneContext* csCtx) { s16 i; - if (func_8006472C(play, csCtx, 0.0f)) { - csCtx->linkAction = NULL; + if (Cutscene_StepTimer(play, csCtx, 0.0f)) { + csCtx->playerCue = NULL; - for (i = 0; i < 10; i++) { - csCtx->npcActions[i] = NULL; + for (i = 0; i < ARRAY_COUNT(csCtx->actorCues); i++) { + csCtx->actorCues[i] = NULL; } osSyncPrintf("\n\n\n\n\nやっぱりここかいな"); // "Right here, huh" + gSaveContext.cutsceneIndex = 0; gSaveContext.gameMode = GAMEMODE_NORMAL; - if (D_8015FCC8 != 0) { + if (gUseCutsceneCam) { switch (gSaveContext.entranceIndex) { - case 0x028A: - case 0x028E: - case 0x0292: - case 0x0476: + case ENTR_HYRULE_FIELD_11: + case ENTR_HYRULE_FIELD_12: + case ENTR_HYRULE_FIELD_13: + case ENTR_HYRULE_FIELD_15: Play_CopyCamera(play, sReturnToCamId, csCtx->subCamId); } @@ -1981,7 +2261,7 @@ void func_80068DC0(PlayState* play, CutsceneContext* csCtx) { } } -void func_80068ECC(PlayState* play, CutsceneContext* csCtx) { +void Cutscene_SetupScripted(PlayState* play, CutsceneContext* csCtx) { u8 i; if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE) && !Player_InCsMode(play)) { @@ -1989,32 +2269,35 @@ void func_80068ECC(PlayState* play, CutsceneContext* csCtx) { } if ((gSaveContext.cutsceneIndex >= 0xFFF0) && (csCtx->state == CS_STATE_IDLE)) { - Flags_UnsetEnv(play, 0); + CutsceneFlags_Unset(play, 0); - D_8011E1C0 = 0; - D_8011E1C4 = 0; + sCurTextId = 0; + sCurOcarinaAction = 0; csCtx->unk_12 = 0; - csCtx->linkAction = NULL; + csCtx->playerCue = NULL; - for (i = 0; i < 10; i++) { - csCtx->npcActions[i] = NULL; + for (i = 0; i < ARRAY_COUNT(csCtx->actorCues); i++) { + csCtx->actorCues[i] = NULL; } - csCtx->state++; + csCtx->state++; // CS_STATE_START - if (csCtx->state == CS_STATE_SKIPPABLE_INIT) { + if (csCtx->state == CS_STATE_START) { Audio_SetCutsceneFlag(1); - csCtx->frames = 0xFFFF; - csCtx->unk_18 = 0xFFFF; - D_8015FCC0 = 0xFFFF; - D_8015FCC2 = 0xFFFF; - D_8015FCC4 = 0xFFFF; - csCtx->unk_1A = 0; - csCtx->unk_1B = 0; + csCtx->curFrame = 0xFFFF; + + csCtx->camEyeSplinePointsAppliedFrame = CS_CAM_DATA_NOT_APPLIED; + gCamAtSplinePointsAppliedFrame = CS_CAM_DATA_NOT_APPLIED; + gCamEyePointAppliedFrame = CS_CAM_DATA_NOT_APPLIED; + gCamAtPointAppliedFrame = CS_CAM_DATA_NOT_APPLIED; + + csCtx->camAtReady = false; + csCtx->camEyeReady = false; + sReturnToCamId = play->activeCamId; - if (D_8015FCC8 != 0) { + if (gUseCutsceneCam) { csCtx->subCamId = Play_CreateSubCamera(play); } @@ -2022,16 +2305,20 @@ void func_80068ECC(PlayState* play, CutsceneContext* csCtx) { Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING); Letterbox_SetSizeTarget(32); Letterbox_SetSize(32); - csCtx->state++; + csCtx->state++; // CS_STATE_RUN } - func_80068C3C(play, csCtx); + CutsceneHandler_RunScript(play, csCtx); } gSaveContext.cutsceneTrigger = 0; } } +u16 D_8015FCCC; +char D_8015FCD0[20]; // unreferenced +u8 D_8015FCE4; // only written to, never read + void func_80069048(PlayState* play) { s16 i; @@ -2055,8 +2342,8 @@ void Cutscene_HandleEntranceTriggers(PlayState* play) { for (i = 0; i < ARRAY_COUNT(sEntranceCutsceneTable); i++) { entranceCutscene = &sEntranceCutsceneTable[i]; - requiredAge = entranceCutscene->ageRestriction; + if (requiredAge == 2) { requiredAge = gSaveContext.linkAge; } @@ -2066,7 +2353,7 @@ void Cutscene_HandleEntranceTriggers(PlayState* play) { (gSaveContext.cutsceneIndex < 0xFFF0) && ((u8)gSaveContext.linkAge == requiredAge) && (gSaveContext.respawnFlag <= 0)) { Flags_SetEventChkInf(entranceCutscene->flag); - Cutscene_SetSegment(play, entranceCutscene->segAddr); + Cutscene_SetScript(play, entranceCutscene->script); gSaveContext.cutsceneTrigger = 2; gSaveContext.showTitleCard = false; break; @@ -2108,10 +2395,10 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) { } } -void Cutscene_SetSegment(PlayState* play, void* segment) { - if (SEGMENT_NUMBER(segment) != 0) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(segment); +void Cutscene_SetScript(PlayState* play, void* script) { + if (SEGMENT_NUMBER(script) != 0) { + play->csCtx.script = SEGMENTED_TO_VIRTUAL(script); } else { - play->csCtx.segment = segment; + play->csCtx.script = script; } } diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c index 61d48446d0..b58e813cd4 100644 --- a/src/code/z_en_a_keep.c +++ b/src/code/z_en_a_keep.c @@ -265,11 +265,11 @@ void EnAObj_SetupBoulderFragment(EnAObj* this, s16 type) { } void EnAObj_BoulderFragment(EnAObj* this, PlayState* play) { - Math_SmoothStepToF(&this->dyna.actor.speedXZ, 1.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->dyna.actor.speed, 1.0f, 1.0f, 0.5f, 0.0f); this->dyna.actor.shape.rot.x += this->dyna.actor.world.rot.x >> 1; this->dyna.actor.shape.rot.z += this->dyna.actor.world.rot.z >> 1; - if (this->dyna.actor.speedXZ != 0.0f && this->dyna.actor.bgCheckFlags & BGCHECKFLAG_WALL) { + if (this->dyna.actor.speed != 0.0f && this->dyna.actor.bgCheckFlags & BGCHECKFLAG_WALL) { this->dyna.actor.world.rot.y = this->dyna.actor.wallYaw - this->dyna.actor.world.rot.y + this->dyna.actor.wallYaw - 0x8000; if (1) {} @@ -279,7 +279,7 @@ void EnAObj_BoulderFragment(EnAObj* this, PlayState* play) { if (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { if (this->dyna.actor.velocity.y < -8.0f) { this->dyna.actor.velocity.y *= -0.6f; - this->dyna.actor.speedXZ *= 0.6f; + this->dyna.actor.speed *= 0.6f; this->dyna.actor.bgCheckFlags &= ~(BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH); } else { Actor_Kill(&this->dyna.actor); @@ -294,13 +294,13 @@ void EnAObj_SetupBlock(EnAObj* this, s16 type) { } void EnAObj_Block(EnAObj* this, PlayState* play) { - this->dyna.actor.speedXZ += this->dyna.unk_150; + this->dyna.actor.speed += this->dyna.unk_150; this->dyna.actor.world.rot.y = this->dyna.unk_158; - this->dyna.actor.speedXZ = CLAMP(this->dyna.actor.speedXZ, -2.5f, 2.5f); + this->dyna.actor.speed = CLAMP(this->dyna.actor.speed, -2.5f, 2.5f); - Math_SmoothStepToF(&this->dyna.actor.speedXZ, 0.0f, 1.0f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->dyna.actor.speed, 0.0f, 1.0f, 1.0f, 0.0f); - if (this->dyna.actor.speedXZ != 0.0f) { + if (this->dyna.actor.speed != 0.0f) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); } diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index f1ad800879..18e8ef1117 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -280,7 +280,7 @@ void EnItem00_Init(Actor* thisx, PlayState* play) { this->despawnTimer = 15; this->unk_154 = 35; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; @@ -390,7 +390,7 @@ void func_8001DFC8(EnItem00* this, PlayState* play) { this->actor.shape.yOffset = Math_SinS(this->actor.shape.rot.y) * 150.0f + 850.0f; } - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); if (this->unk_154 == 0) { if ((this->actor.params != ITEM00_SMALL_KEY) && (this->actor.params != ITEM00_HEART_PIECE) && @@ -448,7 +448,7 @@ void func_8001E304(EnItem00* this, PlayState* play) { if (this->actor.params == ITEM00_RECOVERY_HEART) { if (this->actor.velocity.y < 0.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = -0.4f; if (this->actor.velocity.y < -1.5f) { this->actor.velocity.y = -1.5f; @@ -489,7 +489,7 @@ void func_8001E304(EnItem00* this, PlayState* play) { EnItem00_SetupAction(this, func_8001DFC8); this->actor.shape.rot.z = 0; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } @@ -733,7 +733,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) { this->despawnTimer = 15; this->unk_154 = 35; this->actor.shape.rot.z = 0; - this->actor.speedXZ = 0; + this->actor.speed = 0; this->actor.velocity.y = 0; this->actor.gravity = 0; @@ -969,7 +969,7 @@ EnItem00* Item_DropCollectible(PlayState* play, Vec3f* spawnPos, s16 params) { spawnPos->z, 0, 0, 0, params | param8000 | param3F00); if ((spawnedActor != NULL) && !param8000) { spawnedActor->actor.velocity.y = !param4000 ? 8.0f : -2.0f; - spawnedActor->actor.speedXZ = 2.0f; + spawnedActor->actor.speed = 2.0f; spawnedActor->actor.gravity = -0.9f; spawnedActor->actor.world.rot.y = Rand_CenteredFloat(65536.0f); Actor_SetScale(&spawnedActor->actor, 0.0f); @@ -1009,7 +1009,7 @@ EnItem00* Item_DropCollectible2(PlayState* play, Vec3f* spawnPos, s16 params) { spawnPos->z, 0, 0, 0, params | param8000 | param3F00); if ((spawnedActor != NULL) && !param8000) { spawnedActor->actor.velocity.y = 0.0f; - spawnedActor->actor.speedXZ = 0.0f; + spawnedActor->actor.speed = 0.0f; spawnedActor->actor.gravity = param4000 ? 0.0f : -0.9f; spawnedActor->actor.world.rot.y = Rand_CenteredFloat(65536.0f); spawnedActor->actor.flags |= ACTOR_FLAG_4; @@ -1119,7 +1119,7 @@ void Item_DropCollectibleRandom(PlayState* play, Actor* fromActor, Vec3f* spawnP spawnPos->y, spawnPos->z, 0, 0, 0, dropId); if ((spawnedActor != NULL) && (dropId != ITEM00_NONE)) { spawnedActor->actor.velocity.y = 8.0f; - spawnedActor->actor.speedXZ = 2.0f; + spawnedActor->actor.speed = 2.0f; spawnedActor->actor.gravity = -0.9f; spawnedActor->actor.world.rot.y = Rand_ZeroOne() * 40000.0f; Actor_SetScale(&spawnedActor->actor, 0.0f); diff --git a/src/code/z_fbdemo_circle.c b/src/code/z_fbdemo_circle.c index 36460e9188..72ee6e1288 100644 --- a/src/code/z_fbdemo_circle.c +++ b/src/code/z_fbdemo_circle.c @@ -1,13 +1,18 @@ #include "global.h" +typedef enum { + /* 0 */ TRANS_CIRCLE_DIR_IN, + /* 1 */ TRANS_CIRCLE_DIR_OUT +} TransitionCircleDirection; + // unused -Gfx sCircleEmptyDList[] = { +Gfx sTransCircleEmptyDL[] = { gsSPEndDisplayList(), }; #include "assets/code/fbdemo_circle/z_fbdemo_circle.c" -Gfx sCircleDList[] = { +Gfx sTransCircleDL[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH), @@ -20,7 +25,7 @@ Gfx sCircleDList[] = { gsDPLoadTextureBlock(0x08000000, G_IM_FMT_I, G_IM_SIZ_8b, 16, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_CLAMP, 4, 6, G_TX_NOLOD, G_TX_NOLOD), gsSPDisplayList(0x09000000), - gsSPVertex(sCircleWipeVtx, 32, 0), + gsSPVertex(sTransCircleVtx, 32, 0), gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0), gsSP2Triangles(3, 5, 6, 0, 5, 7, 8, 0), gsSP2Triangles(7, 9, 10, 0, 9, 11, 12, 0), @@ -29,7 +34,7 @@ Gfx sCircleDList[] = { gsSP2Triangles(19, 21, 22, 0, 21, 23, 24, 0), gsSP2Triangles(23, 25, 26, 0, 25, 27, 28, 0), gsSP1Triangle(27, 29, 30, 0), - gsSPVertex(&sCircleWipeVtx[31], 3, 0), + gsSPVertex(&sTransCircleVtx[31], 3, 0), gsSP1Triangle(0, 1, 2, 0), gsSPEndDisplayList(), }; @@ -43,12 +48,15 @@ void TransitionCircle_Start(void* thisx) { case TCA_WAVE: this->texture = sTransCircleWaveTex; break; + case TCA_RIPPLE: this->texture = sTransCircleRippleTex; break; + case TCA_STARBURST: this->texture = sTransCircleStarburstTex; break; + default: this->texture = sTransCircleNormalTex; break; @@ -71,20 +79,22 @@ void TransitionCircle_Start(void* thisx) { this->color.a = 255; } else { this->speed = 40; - this->color.rgba = this->appearanceType == TCA_WAVE ? RGBA8(0, 0, 0, 255) : RGBA8(160, 160, 160, 255); + this->color.rgba = (this->appearanceType == TCA_WAVE) ? RGBA8(0, 0, 0, 255) : RGBA8(160, 160, 160, 255); } - if (this->direction != 0) { - this->texY = (s32)(0.0 * (1 << 2)); + + if (this->direction != TRANS_CIRCLE_DIR_IN) { + this->texY = (s32)(0.0f * (1 << 2)); if (this->colorType == TCC_SPECIAL) { - this->texY = (s32)(62.5 * (1 << 2)); + this->texY = (s32)(62.5f * (1 << 2)); } } else { - this->texY = (s32)(125.0 * (1 << 2)); + this->texY = (s32)(125.0f * (1 << 2)); if (this->appearanceType == TCA_RIPPLE) { Audio_PlaySfxGeneral(NA_SE_OC_SECRET_WARP_OUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } } + guPerspective(&this->projection, &this->normal, 60.0f, (4.0f / 3.0f), 10.0f, 12800.0f, 1.0f); guLookAt(&this->lookAt, 0.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); } @@ -92,7 +102,7 @@ void TransitionCircle_Start(void* thisx) { void* TransitionCircle_Init(void* thisx) { TransitionCircle* this = (TransitionCircle*)thisx; - bzero(this, sizeof(*this)); + bzero(this, sizeof(TransitionCircle)); return this; } @@ -101,10 +111,8 @@ void TransitionCircle_Destroy(void* thisx) { void TransitionCircle_Update(void* thisx, s32 updateRate) { TransitionCircle* this = (TransitionCircle*)thisx; - s32 temp_t2; - s32 temp_t3; - if (this->direction != 0) { + if (this->direction != TRANS_CIRCLE_DIR_IN) { if (this->texY == 0) { if (this->appearanceType == TCA_RIPPLE) { Audio_PlaySfxGeneral(NA_SE_OC_SECRET_WARP_IN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, @@ -112,20 +120,20 @@ void TransitionCircle_Update(void* thisx, s32 updateRate) { } } this->texY += this->speed * 3 / updateRate; - if (this->texY >= (s32)(125.0 * (1 << 2))) { - this->texY = (s32)(125.0 * (1 << 2)); + if (this->texY >= (s32)(125.0f * (1 << 2))) { + this->texY = (s32)(125.0f * (1 << 2)); this->isDone = true; } } else { this->texY -= this->speed * 3 / updateRate; if (this->colorType != TCC_SPECIAL) { - if (this->texY <= (s32)(0.0 * (1 << 2))) { - this->texY = (s32)(0.0 * (1 << 2)); + if (this->texY <= (s32)(0.0f * (1 << 2))) { + this->texY = (s32)(0.0f * (1 << 2)); this->isDone = true; } } else { - if (this->texY <= (s32)(62.5 * (1 << 2))) { - this->texY = (s32)(62.5 * (1 << 2)); + if (this->texY <= (s32)(62.5f * (1 << 2))) { + this->texY = (s32)(62.5f * (1 << 2)); this->isDone = true; } } @@ -169,7 +177,7 @@ void TransitionCircle_Draw(void* thisx, Gfx** gfxP) { guTranslate(&modelView[2], tPos, tPos, 0.0f); gSPMatrix(gfx++, &modelView[2], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); } - gSPDisplayList(gfx++, sCircleDList); + gSPDisplayList(gfx++, sTransCircleDL); gDPPipeSync(gfx++); *gfxP = gfx; } @@ -186,15 +194,15 @@ void TransitionCircle_SetType(void* thisx, s32 type) { if (type & TC_SET_PARAMS) { // SetType is called twice for circles, the actual direction value will be set on the second call. // The direction set here will be overwritten on that second call. - this->direction = (type >> 5) & 0x1; + this->direction = (type >> 5) & 1; - this->colorType = (type >> 3) & 0x3; - this->speedType = type & 0x1; - this->appearanceType = (type >> 1) & 0x3; - } else if (type == 1) { - this->direction = 1; + this->colorType = (type >> 3) & 3; + this->speedType = type & 1; + this->appearanceType = (type >> 1) & 3; + } else if (type == TRANS_INSTANCE_TYPE_FILL_OUT) { + this->direction = TRANS_CIRCLE_DIR_OUT; } else { - this->direction = 0; + this->direction = TRANS_CIRCLE_DIR_IN; } } @@ -204,8 +212,8 @@ void TransitionCircle_SetColor(void* thisx, u32 color) { this->color.rgba = color; } -void TransitionCircle_SetUnkColor(void* thisx, u32 unkColor) { +void TransitionCircle_SetUnkColor(void* thisx, u32 color) { TransitionCircle* this = (TransitionCircle*)thisx; - this->unkColor.rgba = unkColor; + this->unkColor.rgba = color; } diff --git a/src/code/z_fbdemo_fade.c b/src/code/z_fbdemo_fade.c index 7d3481076e..8769a5909a 100644 --- a/src/code/z_fbdemo_fade.c +++ b/src/code/z_fbdemo_fade.c @@ -1,7 +1,18 @@ #include "global.h" #include "terminal.h" -static Gfx sRCPSetupFade[] = { +typedef enum { + /* 0 */ TRANS_FADE_DIR_IN, + /* 1 */ TRANS_FADE_DIR_OUT +} TransitionFadeDirection; + +typedef enum { + /* 0 */ TRANS_FADE_TYPE_NONE, + /* 1 */ TRANS_FADE_TYPE_ONE_WAY, + /* 2 */ TRANS_FADE_TYPE_FLASH +} TransitionFadeType; + +static Gfx sTransFadeSetupDL[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH), @@ -15,15 +26,17 @@ static Gfx sRCPSetupFade[] = { void TransitionFade_Start(void* thisx) { TransitionFade* this = (TransitionFade*)thisx; - switch (this->fadeType) { - case 0: + switch (this->type) { + case TRANS_FADE_TYPE_NONE: break; - case 1: - this->fadeTimer = 0; - this->fadeColor.a = this->fadeDirection != 0 ? 0xFF : 0; + + case TRANS_FADE_TYPE_ONE_WAY: + this->timer = 0; + this->color.a = (this->direction != TRANS_FADE_DIR_IN) ? 255 : 0; break; - case 2: - this->fadeColor.a = 0; + + case TRANS_FADE_TYPE_FLASH: + this->color.a = 0; break; } this->isDone = false; @@ -32,7 +45,7 @@ void TransitionFade_Start(void* thisx) { void* TransitionFade_Init(void* thisx) { TransitionFade* this = (TransitionFade*)thisx; - bzero(this, sizeof(*this)); + bzero(this, sizeof(TransitionFade)); return this; } @@ -44,39 +57,41 @@ void TransitionFade_Update(void* thisx, s32 updateRate) { s16 newAlpha; TransitionFade* this = (TransitionFade*)thisx; - switch (this->fadeType) { - case 0: + switch (this->type) { + case TRANS_FADE_TYPE_NONE: break; - case 1: - this->fadeTimer += updateRate; - if (this->fadeTimer >= gSaveContext.transFadeDuration) { - this->fadeTimer = gSaveContext.transFadeDuration; + + case TRANS_FADE_TYPE_ONE_WAY: + this->timer += updateRate; + if (this->timer >= gSaveContext.transFadeDuration) { + this->timer = gSaveContext.transFadeDuration; this->isDone = true; } - if (!gSaveContext.transFadeDuration) { + if ((u32)gSaveContext.transFadeDuration == 0) { // "Divide by 0! Zero is included in ZCommonGet fade_speed" osSyncPrintf(VT_COL(RED, WHITE) "0除算! ZCommonGet fade_speed に0がはいってる" VT_RST); } - alpha = (255.0f * this->fadeTimer) / ((void)0, gSaveContext.transFadeDuration); - this->fadeColor.a = (this->fadeDirection != 0) ? 255 - alpha : alpha; + alpha = (255.0f * this->timer) / ((void)0, gSaveContext.transFadeDuration); + this->color.a = (this->direction != TRANS_FADE_DIR_IN) ? 255 - alpha : alpha; break; - case 2: - newAlpha = this->fadeColor.a; - if (iREG(50) != 0) { - if (iREG(50) < 0) { + + case TRANS_FADE_TYPE_FLASH: + newAlpha = this->color.a; + if (R_TRANS_FADE_FLASH_ALPHA_STEP != 0) { + if (R_TRANS_FADE_FLASH_ALPHA_STEP < 0) { if (Math_StepToS(&newAlpha, 255, 255)) { - iREG(50) = 150; + R_TRANS_FADE_FLASH_ALPHA_STEP = 150; } } else { - Math_StepToS(&iREG(50), 20, 60); - if (Math_StepToS(&newAlpha, 0, iREG(50))) { - iREG(50) = 0; + Math_StepToS(&R_TRANS_FADE_FLASH_ALPHA_STEP, 20, 60); + if (Math_StepToS(&newAlpha, 0, R_TRANS_FADE_FLASH_ALPHA_STEP)) { + R_TRANS_FADE_FLASH_ALPHA_STEP = 0; this->isDone = true; } } } - this->fadeColor.a = newAlpha; + this->color.a = newAlpha; break; } } @@ -84,11 +99,11 @@ void TransitionFade_Update(void* thisx, s32 updateRate) { void TransitionFade_Draw(void* thisx, Gfx** gfxP) { TransitionFade* this = (TransitionFade*)thisx; Gfx* gfx; - Color_RGBA8_u32* color = &this->fadeColor; + Color_RGBA8_u32* color = &this->color; if (color->a > 0) { gfx = *gfxP; - gSPDisplayList(gfx++, sRCPSetupFade); + gSPDisplayList(gfx++, sTransFadeSetupDL); gDPSetPrimColor(gfx++, 0, 0, color->r, color->g, color->b, color->a); gDPFillRectangle(gfx++, 0, 0, gScreenWidth - 1, gScreenHeight - 1); gDPPipeSync(gfx++); @@ -105,21 +120,21 @@ s32 TransitionFade_IsDone(void* thisx) { void TransitionFade_SetColor(void* thisx, u32 color) { TransitionFade* this = (TransitionFade*)thisx; - this->fadeColor.rgba = color; + this->color.rgba = color; } void TransitionFade_SetType(void* thisx, s32 type) { TransitionFade* this = (TransitionFade*)thisx; - if (type == 1) { - this->fadeType = 1; - this->fadeDirection = 1; - } else if (type == 2) { - this->fadeType = 1; - this->fadeDirection = 0; - } else if (type == 3) { - this->fadeType = 2; + if (type == TRANS_INSTANCE_TYPE_FILL_OUT) { + this->type = TRANS_FADE_TYPE_ONE_WAY; + this->direction = TRANS_FADE_DIR_OUT; + } else if (type == TRANS_INSTANCE_TYPE_FILL_IN) { + this->type = TRANS_FADE_TYPE_ONE_WAY; + this->direction = TRANS_FADE_DIR_IN; + } else if (type == TRANS_INSTANCE_TYPE_FADE_FLASH) { + this->type = TRANS_FADE_TYPE_FLASH; } else { - this->fadeType = 0; + this->type = TRANS_FADE_TYPE_NONE; } } diff --git a/src/code/z_fbdemo_triforce.c b/src/code/z_fbdemo_triforce.c index fe7068f26b..19ce810f8f 100644 --- a/src/code/z_fbdemo_triforce.c +++ b/src/code/z_fbdemo_triforce.c @@ -10,19 +10,23 @@ void TransitionTriforce_Start(void* thisx) { case 2: this->transPos = 1.0f; return; + + default: + this->transPos = 0.03f; + return; } - this->transPos = 0.03f; } void* TransitionTriforce_Init(void* thisx) { TransitionTriforce* this = (TransitionTriforce*)thisx; - bzero(this, sizeof(*this)); + bzero(this, sizeof(TransitionTriforce)); guOrtho(&this->projection, -160.0f, 160.0f, -120.0f, 120.0f, -1000.0f, 1000.0f, 1.0f); this->transPos = 1.0f; this->state = 2; this->step = 0.015f; - this->fadeDirection = 1; + this->type = TRANS_INSTANCE_TYPE_FILL_OUT; + return this; } @@ -31,7 +35,6 @@ void TransitionTriforce_Destroy(void* thisx) { void TransitionTriforce_Update(void* thisx, s32 updateRate) { TransitionTriforce* this = (TransitionTriforce*)thisx; - f32 temp_f0; s32 i; for (i = updateRate; i > 0; i--) { @@ -56,7 +59,7 @@ void TransitionTriforce_SetColor(void* thisx, u32 color) { void TransitionTriforce_SetType(void* thisx, s32 type) { TransitionTriforce* this = (TransitionTriforce*)thisx; - this->fadeDirection = type; + this->type = type; } // unused @@ -82,21 +85,23 @@ void TransitionTriforce_Draw(void* thisx, Gfx** gfxP) { guRotate(&modelView[1], rotation, 0.0f, 0.0f, 1.0f); guTranslate(&modelView[2], 0.0f, 0.0f, 0.0f); gDPPipeSync(gfx++); - gSPDisplayList(gfx++, sTriforceWipeDL); + gSPDisplayList(gfx++, sTransTriforceDL); gDPSetColor(gfx++, G_SETPRIMCOLOR, this->color.rgba); gDPSetCombineMode(gfx++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); gSPMatrix(gfx++, &this->projection, G_MTX_LOAD | G_MTX_PROJECTION); gSPMatrix(gfx++, &modelView[0], G_MTX_LOAD); gSPMatrix(gfx++, &modelView[1], G_MTX_NOPUSH | G_MTX_MODELVIEW | G_MTX_MUL); gSPMatrix(gfx++, &modelView[2], G_MTX_NOPUSH | G_MTX_MODELVIEW | G_MTX_MUL); - gSPVertex(gfx++, sTriforceWipeVtx, 10, 0); + gSPVertex(gfx++, sTransTriforceVtx, 10, 0); + if (!TransitionTriforce_IsDone(this)) { - switch (this->fadeDirection) { - case 1: + switch (this->type) { + case TRANS_INSTANCE_TYPE_FILL_OUT: gSP2Triangles(gfx++, 0, 4, 5, 0, 4, 1, 3, 0); gSP1Triangle(gfx++, 5, 3, 2, 0); break; - case 2: + + case TRANS_INSTANCE_TYPE_FILL_IN: gSP2Triangles(gfx++, 3, 4, 5, 0, 0, 2, 6, 0); gSP2Triangles(gfx++, 0, 6, 7, 0, 1, 0, 7, 0); gSP2Triangles(gfx++, 1, 7, 8, 0, 1, 8, 9, 0); @@ -104,10 +109,11 @@ void TransitionTriforce_Draw(void* thisx, Gfx** gfxP) { break; } } else { - switch (this->fadeDirection) { - case 1: + switch (this->type) { + case TRANS_INSTANCE_TYPE_FILL_OUT: break; - case 2: + + case TRANS_INSTANCE_TYPE_FILL_IN: gSP1Quadrangle(gfx++, 6, 7, 8, 9, 0); break; } @@ -119,13 +125,11 @@ void TransitionTriforce_Draw(void* thisx, Gfx** gfxP) { s32 TransitionTriforce_IsDone(void* thisx) { TransitionTriforce* this = (TransitionTriforce*)thisx; - s32 ret = 0; - if (this->state == 1 || this->state == 2) { return this->transPos <= 0.03f; - } else if (this->state == 3 || this->state == 4) { return this->transPos >= 1.0f; + } else { + return false; } - return ret; } diff --git a/src/code/z_fbdemo_wipe1.c b/src/code/z_fbdemo_wipe1.c index 16b4fc2e41..aea2235e34 100644 --- a/src/code/z_fbdemo_wipe1.c +++ b/src/code/z_fbdemo_wipe1.c @@ -1,8 +1,13 @@ #include "global.h" +typedef enum { + /* 0 */ TRANS_WIPE_DIR_IN, + /* 1 */ TRANS_WIPE_DIR_OUT +} TransitionWipeDirection; + #include "assets/code/fbdemo_wipe1/z_fbdemo_wipe1.c" -Gfx sWipeDList[] = { +Gfx sTransWipeDL[] = { gsDPPipeSync(), gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH), @@ -13,14 +18,14 @@ Gfx sWipeDList[] = { gsDPSetCombineLERP(TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, COMBINED, 0, PRIMITIVE, 0, COMBINED, 0, PRIMITIVE, 0), gsDPSetPrimDepth(0, 0), - gsDPLoadTextureBlock_4b(sWipe1Tex, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, 6, - 11, G_TX_NOLOD), - gsDPLoadMultiBlock_4b(sWipe1Tex, 0x0100, 1, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, + gsDPLoadTextureBlock_4b(sTransWipeTex, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, + 6, 11, G_TX_NOLOD), + gsDPLoadMultiBlock_4b(sTransWipeTex, 0x0100, 1, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, 6, 11, 1), gsDPSetTextureLUT(G_TT_NONE), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsSPDisplayList(0x08000000), - gsSPVertex(sWipe1Vtx, 25, 0), + gsSPVertex(sTransWipeVtx, 25, 0), gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0), gsSP2Triangles(5, 6, 7, 0, 6, 8, 9, 0), gsSP2Triangles(8, 10, 11, 0, 10, 12, 13, 0), @@ -31,7 +36,7 @@ Gfx sWipeDList[] = { }; // unused. -Gfx sWipeSyncDList[] = { +Gfx sTransWipeSyncDL[] = { gsDPPipeSync(), gsSPEndDisplayList(), }; @@ -41,20 +46,20 @@ void TransitionWipe_Start(void* thisx) { this->isDone = false; - if (this->direction) { - this->texY = (s32)(83.25 * (1 << 2)); + if (this->direction != TRANS_WIPE_DIR_IN) { + this->texY = (s32)(83.25f * (1 << 2)); } else { - this->texY = (s32)(153.0 * (1 << 2)); + this->texY = (s32)(153.0f * (1 << 2)); } - guPerspective(&this->projection, &this->normal, 60.0f, 4.0 / 3.0f, 10.0f, 12800.0f, 1.0f); + guPerspective(&this->projection, &this->normal, 60.0f, (4.0f / 3.0f), 10.0f, 12800.0f, 1.0f); guLookAt(&this->lookAt, 0.0f, 0.0f, 400.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); } void* TransitionWipe_Init(void* thisx) { TransitionWipe* this = (TransitionWipe*)thisx; - bzero(this, sizeof(*this)); + bzero(this, sizeof(TransitionWipe)); return this; } @@ -64,16 +69,16 @@ void TransitionWipe_Destroy(void* thisx) { void TransitionWipe_Update(void* thisx, s32 updateRate) { TransitionWipe* this = (TransitionWipe*)thisx; - if (this->direction != 0) { + if (this->direction != TRANS_WIPE_DIR_IN) { this->texY += (((void)0, gSaveContext.transWipeSpeed) * 3) / updateRate; - if (this->texY >= (s32)(153.0 * (1 << 2))) { - this->texY = (s32)(153.0 * (1 << 2)); + if (this->texY >= (s32)(153.0f * (1 << 2))) { + this->texY = (s32)(153.0f * (1 << 2)); this->isDone = true; } } else { this->texY -= (((void)0, gSaveContext.transWipeSpeed) * 3) / updateRate; - if (this->texY <= (s32)(83.25 * (1 << 2))) { - this->texY = (s32)(83.25 * (1 << 2)); + if (this->texY <= (s32)(83.25f * (1 << 2))) { + this->texY = (s32)(83.25f * (1 << 2)); this->isDone = true; } } @@ -84,17 +89,17 @@ void TransitionWipe_Draw(void* thisx, Gfx** gfxP) { Mtx* modelView; TransitionWipe* this = (TransitionWipe*)thisx; s32 pad[4]; - Gfx* tex; + Gfx* texScroll; modelView = this->modelView[this->frame]; - this->frame ^= 1; + guScale(&modelView[0], 0.56f, 0.56f, 1.0f); guRotate(&modelView[1], 0.0f, 0.0f, 0.0f, 1.0f); guTranslate(&modelView[2], 0.0f, 0.0f, 0.0f); gDPPipeSync(gfx++); - tex = Gfx_BranchTexScroll(&gfx, this->texX, this->texY, 0, 0); - gSPSegment(gfx++, 8, tex); + texScroll = Gfx_BranchTexScroll(&gfx, this->texX, this->texY, 0, 0); + gSPSegment(gfx++, 8, texScroll); gDPSetPrimColor(gfx++, 0, 0x80, this->color.r, this->color.g, this->color.b, 255); gSPMatrix(gfx++, &this->projection, G_MTX_LOAD | G_MTX_PROJECTION); gSPPerspNormalize(gfx++, this->normal); @@ -102,7 +107,7 @@ void TransitionWipe_Draw(void* thisx, Gfx** gfxP) { gSPMatrix(gfx++, &modelView[0], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(gfx++, &modelView[1], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); gSPMatrix(gfx++, &modelView[2], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW); - gSPDisplayList(gfx++, sWipeDList); + gSPDisplayList(gfx++, sTransWipeDL); gDPPipeSync(gfx++); *gfxP = gfx; } @@ -116,16 +121,16 @@ s32 TransitionWipe_IsDone(void* thisx) { void TransitionWipe_SetType(void* thisx, s32 type) { TransitionWipe* this = (TransitionWipe*)thisx; - if (type == 1) { - this->direction = 1; + if (type == TRANS_INSTANCE_TYPE_FILL_OUT) { + this->direction = TRANS_WIPE_DIR_OUT; } else { - this->direction = 0; + this->direction = TRANS_WIPE_DIR_IN; } - if (this->direction != 0) { - this->texY = (s32)(83.25 * (1 << 2)); + if (this->direction != TRANS_WIPE_DIR_IN) { + this->texY = (s32)(83.25f * (1 << 2)); } else { - this->texY = (s32)(153.0 * (1 << 2)); + this->texY = (s32)(153.0f * (1 << 2)); } } @@ -135,8 +140,8 @@ void TransitionWipe_SetColor(void* thisx, u32 color) { this->color.rgba = color; } -void TransitionWipe_SetEnvColor(void* thisx, u32 color) { +void TransitionWipe_SetUnkColor(void* thisx, u32 color) { TransitionWipe* this = (TransitionWipe*)thisx; - this->envColor.rgba = color; + this->unkColor.rgba = color; } diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index fc79d41ddc..958af3af0b 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -417,7 +417,7 @@ void Environment_Init(PlayState* play2, EnvironmentContext* envCtx, s32 unused) cREG(12) = 0; cREG(13) = 0; cREG(14) = 0; - D_8015FCC8 = 1; + gUseCutsceneCam = true; for (i = 0; i < ARRAY_COUNT(sLightningBolts); i++) { sLightningBolts[i].state = LIGHTNING_BOLT_INACTIVE; @@ -426,8 +426,8 @@ void Environment_Init(PlayState* play2, EnvironmentContext* envCtx, s32 unused) play->roomCtx.unk_74[0] = 0; play->roomCtx.unk_74[1] = 0; - for (i = 0; i < ARRAY_COUNT(play->csCtx.npcActions); i++) { - play->csCtx.npcActions[i] = 0; + for (i = 0; i < ARRAY_COUNT(play->csCtx.actorCues); i++) { + play->csCtx.actorCues[i] = NULL; } if (Object_GetIndex(&play->objectCtx, OBJECT_GAMEPLAY_FIELD_KEEP) < 0 && !play->envCtx.sunMoonDisabled) { diff --git a/src/code/z_message_PAL.c b/src/code/z_message_PAL.c index 8df374e9ab..656073a9cd 100644 --- a/src/code/z_message_PAL.c +++ b/src/code/z_message_PAL.c @@ -1735,7 +1735,7 @@ void Message_ContinueTextbox(PlayState* play, u16 textId) { msgCtx->textboxColorAlphaCurrent = msgCtx->textboxColorAlphaTarget; } -void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) { +void Message_StartOcarinaImpl(PlayState* play, u16 ocarinaActionId) { static u16 sOcarinaSongFlagsMap[] = { (1 << OCARINA_SONG_MINUET), (1 << OCARINA_SONG_BOLERO), @@ -1873,14 +1873,14 @@ void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) { } } -void func_8010BD58(PlayState* play, u16 ocarinaActionId) { - play->msgCtx.unk_E40E = 0; - Message_StartOcarina(play, ocarinaActionId); +void Message_StartOcarina(PlayState* play, u16 ocarinaActionId) { + play->msgCtx.disableSunsSong = false; + Message_StartOcarinaImpl(play, ocarinaActionId); } -void func_8010BD88(PlayState* play, u16 ocarinaActionId) { - play->msgCtx.unk_E40E = 1; - Message_StartOcarina(play, ocarinaActionId); +void Message_StartOcarinaSunsSongDisabled(PlayState* play, u16 ocarinaActionId) { + play->msgCtx.disableSunsSong = true; + Message_StartOcarinaImpl(play, ocarinaActionId); } u8 Message_GetState(MessageContext* msgCtx) { @@ -2577,7 +2577,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { case MSGMODE_OCARINA_AWAIT_INPUT: Message_DrawText(play, &gfx); if (Message_ShouldAdvance(play)) { - func_8010BD58(play, msgCtx->ocarinaAction); + Message_StartOcarina(play, msgCtx->ocarinaAction); } break; case MSGMODE_SCARECROW_LONG_RECORDING_START: diff --git a/src/code/z_onepointdemo_data.inc.c b/src/code/z_onepointdemo_data.inc.c index 047d65b22f..ca8b2ad2ab 100644 --- a/src/code/z_onepointdemo_data.inc.c +++ b/src/code/z_onepointdemo_data.inc.c @@ -1,118 +1,118 @@ #include "global.h" static CutsceneCameraPoint D_8012013C[14] = { - { CS_CMD_CONTINUE, 25, 40, 70.79991f, { -1814, 533, -1297 } }, - { CS_CMD_CONTINUE, 20, 40, 70.99991f, { -1805, 434, -1293 } }, - { CS_CMD_CONTINUE, 10, 30, 60.0f, { -1794, 323, -1280 } }, - { CS_CMD_CONTINUE, 5, 25, 60.0f, { -1817, 218, -1270 } }, - { CS_CMD_CONTINUE, 3, 20, 60.0f, { -1836, 168, -1243 } }, - { CS_CMD_CONTINUE, 0, 20, 60.0f, { -1905, 115, -1193 } }, - { CS_CMD_CONTINUE, 0, 30, 55.0f, { -1969, 58, -1212 } }, - { CS_CMD_CONTINUE, 0, 30, 55.0f, { -1969, 31, -1164 } }, - { CS_CMD_CONTINUE, 0, 30, 60.0f, { -1969, 54, -1209 } }, - { CS_CMD_CONTINUE, 0, 30, 60.0f, { -1973, 35, -1206 } }, - { CS_CMD_CONTINUE, 0, 50, 60.0f, { -1974, 12, -1179 } }, - { CS_CMD_CONTINUE, 0, 50, 60.0f, { -1974, 12, -1179 } }, - { CS_CMD_STOP, 0, 50, 60.0f, { -1974, 12, -1179 } }, - { CS_CMD_STOP, 0, 30, 60.0f, { -1974, 12, -1179 } }, + { CS_CAM_CONTINUE, 25, 40, 70.79991f, { -1814, 533, -1297 } }, + { CS_CAM_CONTINUE, 20, 40, 70.99991f, { -1805, 434, -1293 } }, + { CS_CAM_CONTINUE, 10, 30, 60.0f, { -1794, 323, -1280 } }, + { CS_CAM_CONTINUE, 5, 25, 60.0f, { -1817, 218, -1270 } }, + { CS_CAM_CONTINUE, 3, 20, 60.0f, { -1836, 168, -1243 } }, + { CS_CAM_CONTINUE, 0, 20, 60.0f, { -1905, 115, -1193 } }, + { CS_CAM_CONTINUE, 0, 30, 55.0f, { -1969, 58, -1212 } }, + { CS_CAM_CONTINUE, 0, 30, 55.0f, { -1969, 31, -1164 } }, + { CS_CAM_CONTINUE, 0, 30, 60.0f, { -1969, 54, -1209 } }, + { CS_CAM_CONTINUE, 0, 30, 60.0f, { -1973, 35, -1206 } }, + { CS_CAM_CONTINUE, 0, 50, 60.0f, { -1974, 12, -1179 } }, + { CS_CAM_CONTINUE, 0, 50, 60.0f, { -1974, 12, -1179 } }, + { CS_CAM_STOP, 0, 50, 60.0f, { -1974, 12, -1179 } }, + { CS_CAM_STOP, 0, 30, 60.0f, { -1974, 12, -1179 } }, }; static CutsceneCameraPoint D_8012021C[14] = { - { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1751, 604, -1233 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1752, 516, -1233 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1751, 417, -1233 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1767, 306, -1219 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1776, 257, -1205 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1881, 147, -1149 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1969, 72, -1077 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1969, 7, -1048 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1969, 1, -1030 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -1987, 17, -1076 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { -2007, 10, -1004 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { -2007, 10, -1004 } }, - { CS_CMD_STOP, 0, 0, 60.0f, { -2007, 10, -1004 } }, { CS_CMD_STOP, 0, 0, 60.0f, { -2007, 10, -1004 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1751, 604, -1233 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1752, 516, -1233 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1751, 417, -1233 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1767, 306, -1219 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1776, 257, -1205 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1881, 147, -1149 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1969, 72, -1077 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1969, 7, -1048 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1969, 1, -1030 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -1987, 17, -1076 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { -2007, 10, -1004 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { -2007, 10, -1004 } }, + { CS_CAM_STOP, 0, 0, 60.0f, { -2007, 10, -1004 } }, { CS_CAM_STOP, 0, 0, 60.0f, { -2007, 10, -1004 } }, }; static s16 D_801202FC = 13; static s16 D_80120300 = 210; static s16 D_80120304 = 0; static CutsceneCameraPoint sCrawlspaceAtPoints[9] = { - { CS_CMD_CONTINUE, 0, 10, 40.0f, { 0, 4, 0 } }, { CS_CMD_CONTINUE, 0, 10, 40.000004f, { 0, 4, 0 } }, - { CS_CMD_CONTINUE, 0, 10, 50.0f, { 0, 9, 0 } }, { CS_CMD_CONTINUE, 0, 12, 55.0f, { 0, 12, 0 } }, - { CS_CMD_CONTINUE, 0, 15, 61.0f, { 0, 18, 0 } }, { CS_CMD_CONTINUE, 0, 20, 65.0f, { 0, 29, 0 } }, - { CS_CMD_CONTINUE, 0, 40, 60.0f, { 0, 34, 0 } }, { CS_CMD_STOP, 0, 40, 60.0f, { 0, 34, 0 } }, - { CS_CMD_STOP, 0, 10, 60.0f, { 0, 34, 0 } }, + { CS_CAM_CONTINUE, 0, 10, 40.0f, { 0, 4, 0 } }, { CS_CAM_CONTINUE, 0, 10, 40.000004f, { 0, 4, 0 } }, + { CS_CAM_CONTINUE, 0, 10, 50.0f, { 0, 9, 0 } }, { CS_CAM_CONTINUE, 0, 12, 55.0f, { 0, 12, 0 } }, + { CS_CAM_CONTINUE, 0, 15, 61.0f, { 0, 18, 0 } }, { CS_CAM_CONTINUE, 0, 20, 65.0f, { 0, 29, 0 } }, + { CS_CAM_CONTINUE, 0, 40, 60.0f, { 0, 34, 0 } }, { CS_CAM_STOP, 0, 40, 60.0f, { 0, 34, 0 } }, + { CS_CAM_STOP, 0, 10, 60.0f, { 0, 34, 0 } }, }; static CutsceneCameraPoint sCrawlspaceForwardsEyePoints[9] = { - { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 9, 45 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 8, 50 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 17, 58 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 21, 78 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 46, 109 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 58, 118 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 63, 119 } }, { CS_CMD_STOP, 0, 0, 60.0f, { 0, 62, 119 } }, - { CS_CMD_STOP, 0, 0, 60.0f, { 0, 62, 119 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 9, 45 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 8, 50 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 17, 58 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 21, 78 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 46, 109 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 58, 118 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 63, 119 } }, { CS_CAM_STOP, 0, 0, 60.0f, { 0, 62, 119 } }, + { CS_CAM_STOP, 0, 0, 60.0f, { 0, 62, 119 } }, }; static s16 sCrawlspaceUnused = 9; static s16 sCrawlspaceTimer = 90; static s16 sCrawlspaceActionParam = 1; static CutsceneCameraPoint sCrawlspaceBackwardsEyePoints[10] = { - { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 9, -45 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 9, -45 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 8, -50 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 17, -58 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 21, -78 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 46, -109 } }, - { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 58, -118 } }, { CS_CMD_CONTINUE, 0, 0, 60.0f, { 0, 63, -119 } }, - { CS_CMD_STOP, 0, 0, 60.0f, { 0, 62, -119 } }, { CS_CMD_STOP, 0, 0, 60.0f, { 0, 62, -119 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 9, -45 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 9, -45 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 8, -50 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 17, -58 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 21, -78 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 46, -109 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 58, -118 } }, { CS_CAM_CONTINUE, 0, 0, 60.0f, { 0, 63, -119 } }, + { CS_CAM_STOP, 0, 0, 60.0f, { 0, 62, -119 } }, { CS_CAM_STOP, 0, 0, 60.0f, { 0, 62, -119 } }, }; static CutsceneCameraPoint D_801204D4[14] = { - { CS_CMD_CONTINUE, -15, 40, 80.600006f, { -60, 332, 183 } }, - { CS_CMD_CONTINUE, -22, 30, 80.600006f, { -60, 332, 183 } }, - { CS_CMD_CONTINUE, -20, 38, 80.600006f, { -118, 344, 41 } }, - { CS_CMD_CONTINUE, -18, 32, 80.600006f, { -80, 251, -8 } }, - { CS_CMD_CONTINUE, -12, 28, 80.600006f, { -64, 259, -28 } }, - { CS_CMD_CONTINUE, -8, 22, 80.600006f, { -79, 200, -342 } }, - { CS_CMD_CONTINUE, -5, 10, 65.80005f, { -110, 140, -549 } }, - { CS_CMD_CONTINUE, -2, 8, 65.2f, { -74, 109, -507 } }, - { CS_CMD_CONTINUE, 0, 10, 65.80002f, { -32, 78, -680 } }, - { CS_CMD_CONTINUE, 0, 20, 85.199936f, { 25, 127, -950 } }, - { CS_CMD_CONTINUE, 0, 30, 85.199936f, { 25, 127, -950 } }, - { CS_CMD_CONTINUE, 0, 40, 85.199936f, { 25, 127, -950 } }, - { CS_CMD_STOP, 6, 30, 85.199936f, { 25, 127, -950 } }, - { CS_CMD_STOP, 0, 30, 85.199936f, { 25, 127, -950 } }, + { CS_CAM_CONTINUE, -15, 40, 80.600006f, { -60, 332, 183 } }, + { CS_CAM_CONTINUE, -22, 30, 80.600006f, { -60, 332, 183 } }, + { CS_CAM_CONTINUE, -20, 38, 80.600006f, { -118, 344, 41 } }, + { CS_CAM_CONTINUE, -18, 32, 80.600006f, { -80, 251, -8 } }, + { CS_CAM_CONTINUE, -12, 28, 80.600006f, { -64, 259, -28 } }, + { CS_CAM_CONTINUE, -8, 22, 80.600006f, { -79, 200, -342 } }, + { CS_CAM_CONTINUE, -5, 10, 65.80005f, { -110, 140, -549 } }, + { CS_CAM_CONTINUE, -2, 8, 65.2f, { -74, 109, -507 } }, + { CS_CAM_CONTINUE, 0, 10, 65.80002f, { -32, 78, -680 } }, + { CS_CAM_CONTINUE, 0, 20, 85.199936f, { 25, 127, -950 } }, + { CS_CAM_CONTINUE, 0, 30, 85.199936f, { 25, 127, -950 } }, + { CS_CAM_CONTINUE, 0, 40, 85.199936f, { 25, 127, -950 } }, + { CS_CAM_STOP, 6, 30, 85.199936f, { 25, 127, -950 } }, + { CS_CAM_STOP, 0, 30, 85.199936f, { 25, 127, -950 } }, }; static CutsceneCameraPoint D_801205B4[14] = { - { CS_CMD_CONTINUE, 0, 0, 60.0f, { -225, 785, -242 } }, - { CS_CMD_CONTINUE, -21, 0, 80.600006f, { -245, 784, -242 } }, - { CS_CMD_CONTINUE, -21, 0, 80.600006f, { -288, 485, -379 } }, - { CS_CMD_CONTINUE, -21, 0, 80.600006f, { -250, 244, -442 } }, - { CS_CMD_CONTINUE, -21, 0, 80.600006f, { -163, 21, -415 } }, - { CS_CMD_CONTINUE, -21, 0, 80.600006f, { -98, 86, -520 } }, - { CS_CMD_CONTINUE, -21, 0, 80.600006f, { -86, 31, -816 } }, - { CS_CMD_CONTINUE, -21, 0, 80.600006f, { -74, 18, -931 } }, - { CS_CMD_CONTINUE, 1, 0, 80.600006f, { -91, 80, -1220 } }, - { CS_CMD_CONTINUE, 0, 0, 85.199936f, { 14, 153, -1340 } }, - { CS_CMD_CONTINUE, 0, 0, 85.199936f, { 28, 125, -1340 } }, - { CS_CMD_CONTINUE, 0, 0, 85.199936f, { 48, 124, -1340 } }, - { CS_CMD_STOP, 0, 0, 85.199936f, { 48, 124, -1502 } }, - { CS_CMD_STOP, 0, 0, 85.199936f, { 48, 124, -1262 } }, + { CS_CAM_CONTINUE, 0, 0, 60.0f, { -225, 785, -242 } }, + { CS_CAM_CONTINUE, -21, 0, 80.600006f, { -245, 784, -242 } }, + { CS_CAM_CONTINUE, -21, 0, 80.600006f, { -288, 485, -379 } }, + { CS_CAM_CONTINUE, -21, 0, 80.600006f, { -250, 244, -442 } }, + { CS_CAM_CONTINUE, -21, 0, 80.600006f, { -163, 21, -415 } }, + { CS_CAM_CONTINUE, -21, 0, 80.600006f, { -98, 86, -520 } }, + { CS_CAM_CONTINUE, -21, 0, 80.600006f, { -86, 31, -816 } }, + { CS_CAM_CONTINUE, -21, 0, 80.600006f, { -74, 18, -931 } }, + { CS_CAM_CONTINUE, 1, 0, 80.600006f, { -91, 80, -1220 } }, + { CS_CAM_CONTINUE, 0, 0, 85.199936f, { 14, 153, -1340 } }, + { CS_CAM_CONTINUE, 0, 0, 85.199936f, { 28, 125, -1340 } }, + { CS_CAM_CONTINUE, 0, 0, 85.199936f, { 48, 124, -1340 } }, + { CS_CAM_STOP, 0, 0, 85.199936f, { 48, 124, -1502 } }, + { CS_CAM_STOP, 0, 0, 85.199936f, { 48, 124, -1262 } }, }; static s16 D_80120694 = 14; static s16 D_80120698 = 190; static s16 D_8012069C = 8; static CutsceneCameraPoint D_801206A0[12] = { - { CS_CMD_CONTINUE, 6, 20, 80.0f, { -96, 40, 170 } }, { CS_CMD_CONTINUE, 6, 20, 80.0f, { -96, 40, 170 } }, - { CS_CMD_CONTINUE, 6, 20, 70.0f, { -70, 35, 150 } }, { CS_CMD_CONTINUE, 5, 10, 60.0f, { -57, 34, 133 } }, - { CS_CMD_CONTINUE, 4, 25, 65.0f, { -22, 32, 110 } }, { CS_CMD_CONTINUE, 3, 12, 60.0f, { -9, 33, 98 } }, - { CS_CMD_CONTINUE, 3, 5, 65.0f, { -3, 29, 87 } }, { CS_CMD_CONTINUE, 2, 10, 65.0f, { -1, 15, 84 } }, - { CS_CMD_CONTINUE, 1, 200, 65.0f, { 0, 17, 82 } }, { CS_CMD_CONTINUE, 1, 500, 65.0f, { 0, 18, 82 } }, - { CS_CMD_STOP, 8, 50, 65.0f, { 0, 18, 82 } }, { CS_CMD_STOP, 11, 60, 65.0f, { 0, 18, 82 } }, + { CS_CAM_CONTINUE, 6, 20, 80.0f, { -96, 40, 170 } }, { CS_CAM_CONTINUE, 6, 20, 80.0f, { -96, 40, 170 } }, + { CS_CAM_CONTINUE, 6, 20, 70.0f, { -70, 35, 150 } }, { CS_CAM_CONTINUE, 5, 10, 60.0f, { -57, 34, 133 } }, + { CS_CAM_CONTINUE, 4, 25, 65.0f, { -22, 32, 110 } }, { CS_CAM_CONTINUE, 3, 12, 60.0f, { -9, 33, 98 } }, + { CS_CAM_CONTINUE, 3, 5, 65.0f, { -3, 29, 87 } }, { CS_CAM_CONTINUE, 2, 10, 65.0f, { -1, 15, 84 } }, + { CS_CAM_CONTINUE, 1, 200, 65.0f, { 0, 17, 82 } }, { CS_CAM_CONTINUE, 1, 500, 65.0f, { 0, 18, 82 } }, + { CS_CAM_STOP, 8, 50, 65.0f, { 0, 18, 82 } }, { CS_CAM_STOP, 11, 60, 65.0f, { 0, 18, 82 } }, }; static CutsceneCameraPoint D_80120760[12] = { - { CS_CMD_CONTINUE, 6, 0, 80.0f, { -50, 10, 180 } }, { CS_CMD_CONTINUE, 6, 0, 80.0f, { -50, 20, 180 } }, - { CS_CMD_CONTINUE, 6, 0, 70.0f, { -40, 30, 177 } }, { CS_CMD_CONTINUE, 5, 0, 65.0f, { 0, 35, 172 } }, - { CS_CMD_CONTINUE, 4, 0, 65.0f, { 34, 35, 162 } }, { CS_CMD_CONTINUE, 3, 0, 65.0f, { 61, 32, 147 } }, - { CS_CMD_CONTINUE, 3, 0, 65.0f, { 72, 30, 128 } }, { CS_CMD_CONTINUE, 2, 0, 65.0f, { 74, 20, 125 } }, - { CS_CMD_CONTINUE, 1, 0, 65.0f, { 75, 18, 123 } }, { CS_CMD_CONTINUE, 1, 0, 65.0f, { 75, 10, 123 } }, - { CS_CMD_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, { CS_CMD_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, + { CS_CAM_CONTINUE, 6, 0, 80.0f, { -50, 10, 180 } }, { CS_CAM_CONTINUE, 6, 0, 80.0f, { -50, 20, 180 } }, + { CS_CAM_CONTINUE, 6, 0, 70.0f, { -40, 30, 177 } }, { CS_CAM_CONTINUE, 5, 0, 65.0f, { 0, 35, 172 } }, + { CS_CAM_CONTINUE, 4, 0, 65.0f, { 34, 35, 162 } }, { CS_CAM_CONTINUE, 3, 0, 65.0f, { 61, 32, 147 } }, + { CS_CAM_CONTINUE, 3, 0, 65.0f, { 72, 30, 128 } }, { CS_CAM_CONTINUE, 2, 0, 65.0f, { 74, 20, 125 } }, + { CS_CAM_CONTINUE, 1, 0, 65.0f, { 75, 18, 123 } }, { CS_CAM_CONTINUE, 1, 0, 65.0f, { 75, 10, 123 } }, + { CS_CAM_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, { CS_CAM_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, }; static CutsceneCameraPoint D_80120820[12] = { - { CS_CMD_CONTINUE, 6, 0, 80.0f, { 85, 5, 170 } }, { CS_CMD_CONTINUE, 6, 0, 80.0f, { 85, 10, 170 } }, - { CS_CMD_CONTINUE, 6, 0, 70.0f, { 80, 20, 167 } }, { CS_CMD_CONTINUE, 5, 0, 65.0f, { 74, 25, 165 } }, - { CS_CMD_CONTINUE, 4, 0, 65.0f, { 63, 30, 162 } }, { CS_CMD_CONTINUE, 3, 0, 65.0f, { 66, 34, 147 } }, - { CS_CMD_CONTINUE, 3, 0, 65.0f, { 72, 34, 128 } }, { CS_CMD_CONTINUE, 2, 0, 65.0f, { 74, 20, 125 } }, - { CS_CMD_CONTINUE, 1, 0, 65.0f, { 75, 18, 123 } }, { CS_CMD_CONTINUE, 1, 0, 65.0f, { 75, 10, 123 } }, - { CS_CMD_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, { CS_CMD_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, + { CS_CAM_CONTINUE, 6, 0, 80.0f, { 85, 5, 170 } }, { CS_CAM_CONTINUE, 6, 0, 80.0f, { 85, 10, 170 } }, + { CS_CAM_CONTINUE, 6, 0, 70.0f, { 80, 20, 167 } }, { CS_CAM_CONTINUE, 5, 0, 65.0f, { 74, 25, 165 } }, + { CS_CAM_CONTINUE, 4, 0, 65.0f, { 63, 30, 162 } }, { CS_CAM_CONTINUE, 3, 0, 65.0f, { 66, 34, 147 } }, + { CS_CAM_CONTINUE, 3, 0, 65.0f, { 72, 34, 128 } }, { CS_CAM_CONTINUE, 2, 0, 65.0f, { 74, 20, 125 } }, + { CS_CAM_CONTINUE, 1, 0, 65.0f, { 75, 18, 123 } }, { CS_CAM_CONTINUE, 1, 0, 65.0f, { 75, 10, 123 } }, + { CS_CAM_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, { CS_CAM_STOP, 0, 0, 65.0f, { 75, 10, 122 } }, }; static s16 D_801208E0 = 12; static s16 D_801208E4 = 90; diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 75d95c1c92..8decf3d1b0 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -4302,12 +4302,12 @@ void Interface_Update(PlayState* play) { gSaveContext.nextDayTime = NEXT_TIME_NIGHT; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; - play->unk_11DE9 = true; + play->haltAllActors = true; } else { gSaveContext.nextDayTime = NEXT_TIME_DAY; play->transitionType = TRANS_TYPE_FADE_WHITE_FAST; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; - play->unk_11DE9 = true; + play->haltAllActors = true; } if (play->sceneId == SCENE_HAUNTED_WASTELAND) { diff --git a/src/code/z_play.c b/src/code/z_play.c index ea52881fcf..29f60607b6 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -2,17 +2,17 @@ #include "quake.h" #include "terminal.h" -void* D_8012D1F0 = NULL; +void* gDebugCutsceneScript = NULL; UNK_TYPE D_8012D1F4 = 0; // unused Input* D_8012D1F8 = NULL; TransitionUnk sTrnsnUnk; s32 gTrnsnUnkState; VisMono D_80161498; -Color_RGBA8_u32 D_801614B0; +Color_RGBA8_u32 gVisMonoColor; FaultClient D_801614B8; s16 sTransitionFillTimer; -u64 D_801614D0[0xA00]; +u64 sDebugCutsceneScriptBuf[0xA00]; void Play_SpawnScene(PlayState* this, s32 sceneId, s32 spawn); @@ -198,7 +198,7 @@ void Play_Destroy(GameState* thisx) { } Letterbox_Destroy(); - TransitionFade_Destroy(&this->transitionFade); + TransitionFade_Destroy(&this->transitionFadeFlash); VisMono_Destroy(&D_80161498); if (gSaveContext.linkAge != this->linkAgeOnLoad) { @@ -266,7 +266,7 @@ void Play_Init(GameState* thisx) { EffectSs_InitInfo(this, 0x55); CollisionCheck_InitContext(this, &this->colChkCtx); AnimationContext_Reset(&this->animationCtx); - func_8006450C(this, &this->csCtx); + Cutscene_InitContext(this, &this->csCtx); if (gSaveContext.nextCutsceneIndex != 0xFFEF) { gSaveContext.cutsceneIndex = gSaveContext.nextCutsceneIndex; @@ -371,7 +371,7 @@ void Play_Init(GameState* thisx) { this->transitionTrigger = TRANS_TRIGGER_END; this->unk_11E16 = 0xFF; this->unk_11E18 = 0; - this->unk_11DE9 = false; + this->haltAllActors = false; if (gSaveContext.gameMode != GAMEMODE_TITLE_SCREEN) { if (gSaveContext.nextTransitionType == TRANS_NEXT_TYPE_DEFAULT) { @@ -386,13 +386,13 @@ void Play_Init(GameState* thisx) { } Letterbox_Init(); - TransitionFade_Init(&this->transitionFade); - TransitionFade_SetType(&this->transitionFade, 3); - TransitionFade_SetColor(&this->transitionFade, RGBA8(160, 160, 160, 255)); - TransitionFade_Start(&this->transitionFade); + TransitionFade_Init(&this->transitionFadeFlash); + TransitionFade_SetType(&this->transitionFadeFlash, TRANS_INSTANCE_TYPE_FADE_FLASH); + TransitionFade_SetColor(&this->transitionFadeFlash, RGBA8(160, 160, 160, 255)); + TransitionFade_Start(&this->transitionFadeFlash); VisMono_Init(&D_80161498); - D_801614B0.a = 0; - Flags_UnsetAllEnv(this); + gVisMonoColor.a = 0; + CutsceneFlags_UnsetAll(this); osSyncPrintf("ZELDA ALLOC SIZE=%x\n", THA_GetRemaining(&this->state.tha)); zAllocSize = THA_GetRemaining(&this->state.tha); @@ -436,10 +436,13 @@ void Play_Init(GameState* thisx) { AnimationContext_Update(this, &this->animationCtx); gSaveContext.respawnFlag = 0; - if (dREG(95) != 0) { - D_8012D1F0 = D_801614D0; - osSyncPrintf("\nkawauso_data=[%x]", D_8012D1F0); - DmaMgr_DmaRomToRam(0x03FEB000, D_8012D1F0, sizeof(D_801614D0)); + if (R_USE_DEBUG_CUTSCENE) { + gDebugCutsceneScript = sDebugCutsceneScriptBuf; + osSyncPrintf("\nkawauso_data=[%x]", gDebugCutsceneScript); + + // This hardcoded ROM address extends past the end of the ROM file. + // Presumably the ROM was larger at a previous point in development when this debug feature was used. + DmaMgr_DmaRomToRam(0x03FEB000, gDebugCutsceneScript, sizeof(sDebugCutsceneScriptBuf)); } } @@ -609,9 +612,9 @@ void Play_Update(PlayState* this) { } if (this->transitionTrigger == TRANS_TRIGGER_END) { - this->transitionCtx.setType(&this->transitionCtx.instanceData, 1); + this->transitionCtx.setType(&this->transitionCtx.instanceData, TRANS_INSTANCE_TYPE_FILL_OUT); } else { - this->transitionCtx.setType(&this->transitionCtx.instanceData, 2); + this->transitionCtx.setType(&this->transitionCtx.instanceData, TRANS_INSTANCE_TYPE_FILL_IN); } this->transitionCtx.start(&this->transitionCtx.instanceData); @@ -888,15 +891,15 @@ void Play_Update(PlayState* this) { PLAY_LOG(3637); - if (!this->unk_11DE9) { + if (!this->haltAllActors) { Actor_UpdateAll(this, &this->actorCtx); } PLAY_LOG(3643); - func_80064558(this, &this->csCtx); + Cutscene_UpdateManual(this, &this->csCtx); PLAY_LOG(3648); - func_800645A0(this, &this->csCtx); + Cutscene_UpdateScripted(this, &this->csCtx); PLAY_LOG(3651); Effect_UpdateAll(this); @@ -970,7 +973,7 @@ void Play_Update(PlayState* this) { Letterbox_Update(R_UPDATE_RATE); PLAY_LOG(3783); - TransitionFade_Update(&this->transitionFade, R_UPDATE_RATE); + TransitionFade_Update(&this->transitionFadeFlash, R_UPDATE_RATE); } else { goto skip; } @@ -1094,10 +1097,10 @@ void Play_Draw(PlayState* this) { this->transitionCtx.draw(&this->transitionCtx.instanceData, &gfxP); } - TransitionFade_Draw(&this->transitionFade, &gfxP); + TransitionFade_Draw(&this->transitionFadeFlash, &gfxP); - if (D_801614B0.a > 0) { - D_80161498.primColor.rgba = D_801614B0.rgba; + if (gVisMonoColor.a > 0) { + D_80161498.primColor.rgba = gVisMonoColor.rgba; VisMono_Draw(&D_80161498, &gfxP); } diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 3a74e47cc4..1b83098de9 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -1130,7 +1130,7 @@ s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx** } else if ((sLeftHandType == PLAYER_MODELTYPE_LH_BOOMERANG) && (this->stateFlags1 & PLAYER_STATE1_25)) { dLists = gPlayerLeftHandOpenDLs + gSaveContext.linkAge; sLeftHandType = PLAYER_MODELTYPE_LH_OPEN; - } else if ((this->leftHandType == PLAYER_MODELTYPE_LH_OPEN) && (this->actor.speedXZ > 2.0f) && + } else if ((this->leftHandType == PLAYER_MODELTYPE_LH_OPEN) && (this->actor.speed > 2.0f) && !(this->stateFlags1 & PLAYER_STATE1_27)) { dLists = gPlayerLeftHandClosedDLs + gSaveContext.linkAge; sLeftHandType = PLAYER_MODELTYPE_LH_CLOSED; @@ -1142,7 +1142,7 @@ s32 Player_OverrideLimbDrawGameplayDefault(PlayState* play, s32 limbIndex, Gfx** if (sRightHandType == PLAYER_MODELTYPE_RH_SHIELD) { dLists += this->currentShield * 4; - } else if ((this->rightHandType == PLAYER_MODELTYPE_RH_OPEN) && (this->actor.speedXZ > 2.0f) && + } else if ((this->rightHandType == PLAYER_MODELTYPE_RH_OPEN) && (this->actor.speed > 2.0f) && !(this->stateFlags1 & PLAYER_STATE1_27)) { dLists = sPlayerRightHandClosedDLs + gSaveContext.linkAge; sRightHandType = PLAYER_MODELTYPE_RH_CLOSED; diff --git a/src/code/z_scene.c b/src/code/z_scene.c index b487be9f75..4c484945ee 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -443,8 +443,8 @@ void Scene_CommandAlternateHeaderList(PlayState* play, SceneCmd* cmd) { } void Scene_CommandCutsceneData(PlayState* play, SceneCmd* cmd) { - osSyncPrintf("\ngame_play->demo_play.data=[%x]", play->csCtx.segment); - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(cmd->cutsceneData.data); + osSyncPrintf("\ngame_play->demo_play.data=[%x]", play->csCtx.script); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(cmd->cutsceneData.data); } // Camera & World Map Area diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index 26ebbea98d..665e5f04a4 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -253,7 +253,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) { Actor_MoveForward(&this->actor); Math_Vec3f_Diff(&this->actor.world.pos, &this->actor.prevPos, &prevFrameDiff); Math_Vec3f_Sum(&this->unk_1E8, &prevFrameDiff, &this->unk_1E8); - this->actor.shape.rot.x = Math_Atan2S(this->actor.speedXZ, -this->actor.velocity.y); + this->actor.shape.rot.x = Math_Atan2S(this->actor.speed, -this->actor.velocity.y); sp60.x = this->unk_1F4.x - (this->unk_1E8.x - this->unk_1F4.x); sp60.y = this->unk_1F4.y - (this->unk_1E8.y - this->unk_1F4.y); sp60.z = this->unk_1F4.z - (this->unk_1E8.z - this->unk_1F4.z); diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c index 91d04533a6..bf72c4ce4d 100644 --- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c +++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c @@ -180,7 +180,7 @@ Actor* BgBreakwall_SpawnFragments(PlayState* play, BgBreakwall* this, Vec3f* pos } if (actor != NULL) { - actor->speedXZ = Rand_ZeroOne() + (accel * 0.6f); + actor->speed = Rand_ZeroOne() + (accel * 0.6f); actor->velocity.y = Rand_ZeroOne() + (accel * 0.6f); actor->world.rot.y += (s16)((Rand_ZeroOne() - 0.5f) * 3000.0f); actor->world.rot.x = (s16)(Rand_ZeroOne() * 3500.0f) + 2000; @@ -250,7 +250,7 @@ void BgBreakwall_Wait(BgBreakwall* this, PlayState* play) { if ((wallType == BWALL_DC_ENTRANCE) && !Flags_GetEventChkInf(EVENTCHKINF_B0)) { Flags_SetEventChkInf(EVENTCHKINF_B0); - Cutscene_SetSegment(play, gDcOpeningCs); + Cutscene_SetScript(play, gDcOpeningCs); gSaveContext.cutsceneTrigger = 1; Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); diff --git a/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c b/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c index b004f6b27b..f742cdef4b 100644 --- a/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c +++ b/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c @@ -126,16 +126,15 @@ void BgDdanKd_LowerStairs(BgDdanKd* this, PlayState* play) { Vec3f pos2; f32 effectStrength; - Math_SmoothStepToF(&this->dyna.actor.speedXZ, 4.0f, 0.5f, 0.025f, 0.0f); + Math_SmoothStepToF(&this->dyna.actor.speed, 4.0f, 0.5f, 0.025f, 0.0f); Rumble_Request(500.0f, 120, 20, 10); if (Math_SmoothStepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y - 200.0f - 20.0f, 0.075f, - this->dyna.actor.speedXZ, 0.0075f) == 0.0f) { + this->dyna.actor.speed, 0.0075f) == 0.0f) { Flags_SetSwitch(play, this->dyna.actor.params); BgDdanKd_SetupAction(this, BgDdanKd_DoNothing); } else { - effectStrength = - (this->dyna.actor.prevPos.y - this->dyna.actor.world.pos.y) + (this->dyna.actor.speedXZ * 0.25f); + effectStrength = (this->dyna.actor.prevPos.y - this->dyna.actor.world.pos.y) + (this->dyna.actor.speed * 0.25f); if (play->state.frames & 1) { pos1 = pos2 = this->dyna.actor.world.pos; diff --git a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c index 87ae49e12b..cde4e34349 100644 --- a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c +++ b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c @@ -290,7 +290,7 @@ void BgDodoago_Update(Actor* thisx, PlayState* play) { // disable the bomb catcher for a few seconds this->dyna.actor.parent = &bomb->actor; bomb->timer = 50; - bomb->actor.speedXZ = 0.0f; + bomb->actor.speed = 0.0f; sTimer = 0; } } diff --git a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c index da3cf8e9fb..078bbe770e 100644 --- a/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c +++ b/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c @@ -256,30 +256,30 @@ void BgDyYoseizo_ChooseType(BgDyYoseizo* this, PlayState* play) { if (play->sceneId != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) { switch (this->fountainType) { case FAIRY_SPELL_FARORES_WIND: - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyFaroresWindCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGreatFairyFaroresWindCs); gSaveContext.cutsceneTrigger = 1; break; case FAIRY_SPELL_DINS_FIRE: - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyDinsFireCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGreatFairyDinsFireCs); gSaveContext.cutsceneTrigger = 1; break; case FAIRY_SPELL_NAYRUS_LOVE: - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyNayrusLoveCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGreatFairyNayrusLoveCs); gSaveContext.cutsceneTrigger = 1; break; } } else { switch (this->fountainType) { case FAIRY_UPGRADE_MAGIC: - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyMagicCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGreatFairyMagicCs); gSaveContext.cutsceneTrigger = 1; break; case FAIRY_UPGRADE_DOUBLE_MAGIC: - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyDoubleMagicCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGreatFairyDoubleMagicCs); gSaveContext.cutsceneTrigger = 1; break; case FAIRY_UPGRADE_DOUBLE_DEFENSE: - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGreatFairyDoubleDefenseCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGreatFairyDoubleDefenseCs); gSaveContext.cutsceneTrigger = 1; break; } @@ -567,7 +567,7 @@ void BgDyYoseizo_Vanish(BgDyYoseizo* this, PlayState* play) { void BgDyYoseizo_SetupSpinGrow_Reward(BgDyYoseizo* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - if ((play->csCtx.npcActions[0] != NULL) && (play->csCtx.npcActions[0]->action == 2)) { + if ((play->csCtx.actorCues[0] != NULL) && (play->csCtx.actorCues[0]->id == 2)) { this->actor.draw = BgDyYoseizo_Draw; func_8002DF54(play, &this->actor, PLAYER_CSMODE_1); this->finishedSpinGrow = false; @@ -628,7 +628,7 @@ void BgDyYoseizo_SpinGrowSetupGive_Reward(BgDyYoseizo* this, PlayState* play) { } if ((play->csCtx.state != CS_STATE_IDLE) && - ((play->csCtx.npcActions[0] != NULL) && (play->csCtx.npcActions[0]->action == 3))) { + ((play->csCtx.actorCues[0] != NULL) && (play->csCtx.actorCues[0]->id == 3))) { this->finishedSpinGrow = this->animationChanged = false; if (play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) { this->frameCount = Animation_GetLastFrame(&gGreatFairyGivingUpgradeAnim); @@ -657,7 +657,7 @@ static u8 sItemIds[] = { ITEM_FARORES_WIND, ITEM_DINS_FIRE, ITEM_NAYRUS_LOVE }; void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) { f32 curFrame = this->skelAnime.curFrame; Player* player = GET_PLAYER(play); - s16 actionIndex; + s16 cueIdTemp; s16 demoEffectParams; Vec3f itemPos; @@ -682,19 +682,20 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) { this->animationChanged = true; } - if (play->csCtx.npcActions[0]->action == 13) { + if (play->csCtx.actorCues[0]->id == 13) { this->actionFunc = BgDyYoseizo_SetupSpinShrink; return; } - if ((play->csCtx.npcActions[0]->action >= 4) && (play->csCtx.npcActions[0]->action < 7)) { - actionIndex = play->csCtx.npcActions[0]->action - 4; + if ((play->csCtx.actorCues[0]->id >= 4) && (play->csCtx.actorCues[0]->id < 7)) { + cueIdTemp = play->csCtx.actorCues[0]->id - 4; + if (play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) { - actionIndex++; - BgDyYoseizo_SpawnEffects(this, play, actionIndex); + cueIdTemp++; + BgDyYoseizo_SpawnEffects(this, play, cueIdTemp); } else if (!this->lightBallSpawned) { - demoEffectParams = ((s16)(sDemoEffectLightColors[actionIndex] << 0xC) | DEMO_EFFECT_LIGHT); + demoEffectParams = ((s16)(sDemoEffectLightColors[cueIdTemp] << 0xC) | DEMO_EFFECT_LIGHT); Actor_Spawn(&play->actorCtx, play, ACTOR_DEMO_EFFECT, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, (s32)demoEffectParams); this->lightBallSpawned = true; @@ -703,11 +704,11 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) { BgDyYoseizo_SpawnEffects(this, play, 0); } - if ((play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.npcActions[0]->action >= 10) && - (play->csCtx.npcActions[0]->action < 13)) { - actionIndex = play->csCtx.npcActions[0]->action - 10; + if ((play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.actorCues[0]->id >= 10) && + (play->csCtx.actorCues[0]->id < 13)) { + cueIdTemp = play->csCtx.actorCues[0]->id - 10; - switch (actionIndex) { + switch (cueIdTemp) { case FAIRY_UPGRADE_MAGIC: gSaveContext.isMagicAcquired = true; gSaveContext.magicFillTarget = MAGIC_NORMAL_METER; @@ -733,15 +734,15 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) { if (!this->healing) { gSaveContext.healthAccumulator = 0x140; this->healing = true; - if (actionIndex == 2) { + if (cueIdTemp == 2) { Magic_Fill(play); } } } - if ((play->sceneId != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.npcActions[0]->action >= 14) && - (play->csCtx.npcActions[0]->action < 17)) { - actionIndex = play->csCtx.npcActions[0]->action - 14; + if ((play->sceneId != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.actorCues[0]->id >= 14) && + (play->csCtx.actorCues[0]->id < 17)) { + cueIdTemp = play->csCtx.actorCues[0]->id - 14; if (!this->itemSpawned) { itemPos.x = player->actor.world.pos.x; @@ -749,7 +750,7 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) { itemPos.z = player->actor.world.pos.z; this->item = (EnExItem*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_EN_EX_ITEM, itemPos.x, - itemPos.y, itemPos.z, 0, 0, 0, sExItemTypes[actionIndex]); + itemPos.y, itemPos.z, 0, 0, 0, sExItemTypes[cueIdTemp]); if (this->item != NULL) { if (!gSaveContext.isMagicAcquired) { @@ -761,8 +762,8 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) { this->itemSpawned = true; gSaveContext.healthAccumulator = 0x140; Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_HEARTS_MAGIC); - gSaveContext.itemGetInf[ITEMGETINF_18_19_1A_INDEX] |= sItemGetFlags[actionIndex]; - Item_Give(play, sItemIds[actionIndex]); + gSaveContext.itemGetInf[ITEMGETINF_18_19_1A_INDEX] |= sItemGetFlags[cueIdTemp]; + Item_Give(play, sItemIds[cueIdTemp]); } } else { this->item->actor.world.pos.x = player->actor.world.pos.x; @@ -773,13 +774,13 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) { } } - if ((play->sceneId != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.npcActions[0]->action == 17) && + if ((play->sceneId != SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.actorCues[0]->id == 17) && (this->item != NULL)) { Actor_Kill(&this->item->actor); this->item = NULL; } - if ((play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.npcActions[0]->action == 18)) { + if ((play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) && (play->csCtx.actorCues[0]->id == 18)) { this->giveDefenseHearts = true; } @@ -789,11 +790,10 @@ void BgDyYoseizo_Give_Reward(BgDyYoseizo* this, PlayState* play) { } } - if ((play->csCtx.npcActions[0]->action >= 19) && (play->csCtx.npcActions[0]->action < 22) && - !this->warpEffectSpawned) { - actionIndex = play->csCtx.npcActions[0]->action - 11; + if ((play->csCtx.actorCues[0]->id >= 19) && (play->csCtx.actorCues[0]->id < 22) && !this->warpEffectSpawned) { + cueIdTemp = play->csCtx.actorCues[0]->id - 11; Actor_Spawn(&play->actorCtx, play, ACTOR_DOOR_WARP1, player->actor.world.pos.x, player->actor.world.pos.y, - player->actor.world.pos.z, 0, 0, 0, actionIndex); + player->actor.world.pos.z, 0, 0, 0, cueIdTemp); this->warpEffectSpawned = true; } BgDyYoseizo_Bob(this, play); @@ -821,19 +821,19 @@ void BgDyYoseizo_Update(Actor* thisx, PlayState* play2) { if (play->csCtx.state != CS_STATE_IDLE) { sfx = 0; if (play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC) { - if ((play->csCtx.frames == 32) || (play->csCtx.frames == 291) || (play->csCtx.frames == 426) || - (play->csCtx.frames == 851)) { + if ((play->csCtx.curFrame == 32) || (play->csCtx.curFrame == 291) || (play->csCtx.curFrame == 426) || + (play->csCtx.curFrame == 851)) { sfx = 1; } - if (play->csCtx.frames == 101) { + if (play->csCtx.curFrame == 101) { sfx = 2; } } else { - if ((play->csCtx.frames == 35) || (play->csCtx.frames == 181) || (play->csCtx.frames == 462) || - (play->csCtx.frames == 795)) { + if ((play->csCtx.curFrame == 35) || (play->csCtx.curFrame == 181) || (play->csCtx.curFrame == 462) || + (play->csCtx.curFrame == 795)) { sfx = 1; } - if (play->csCtx.frames == 90) { + if (play->csCtx.curFrame == 90) { sfx = 2; } } diff --git a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c index 1d0c0db5b2..5d0ec3550c 100644 --- a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c +++ b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c @@ -183,19 +183,19 @@ void BgGanonOtyuka_Fall(BgGanonOtyuka* this, PlayState* play) { } if (this->dropTimer == 0) { this->flashYScale = 0.0f; - Math_ApproachF(&this->dyna.actor.world.pos.y, -1000.0f, 1.0f, this->dyna.actor.speedXZ); - Math_ApproachF(&this->dyna.actor.speedXZ, 100.0f, 1.0f, 2.0f); + Math_ApproachF(&this->dyna.actor.world.pos.y, -1000.0f, 1.0f, this->dyna.actor.speed); + Math_ApproachF(&this->dyna.actor.speed, 100.0f, 1.0f, 2.0f); if (!(this->unwalledSides & OTYUKA_SIDE_EAST)) { - this->dyna.actor.shape.rot.z -= (s16)(this->dyna.actor.speedXZ * 30.0f); + this->dyna.actor.shape.rot.z -= (s16)(this->dyna.actor.speed * 30.0f); } if (!(this->unwalledSides & OTYUKA_SIDE_WEST)) { - this->dyna.actor.shape.rot.z += (s16)(this->dyna.actor.speedXZ * 30.0f); + this->dyna.actor.shape.rot.z += (s16)(this->dyna.actor.speed * 30.0f); } if (!(this->unwalledSides & OTYUKA_SIDE_SOUTH)) { - this->dyna.actor.shape.rot.x += (s16)(this->dyna.actor.speedXZ * 30.0f); + this->dyna.actor.shape.rot.x += (s16)(this->dyna.actor.speed * 30.0f); } if (!(this->unwalledSides & OTYUKA_SIDE_NORTH)) { - this->dyna.actor.shape.rot.x -= (s16)(this->dyna.actor.speedXZ * 30.0f); + this->dyna.actor.shape.rot.x -= (s16)(this->dyna.actor.speed * 30.0f); } if (this->dyna.actor.world.pos.y < -750.0f) { if (player->actor.world.pos.y < -400.0f) { @@ -224,8 +224,8 @@ void BgGanonOtyuka_Fall(BgGanonOtyuka* this, PlayState* play) { Audio_PlaySfxGeneral(NA_SE_EV_BLOCKSINK - SFX_FLAG, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } - Math_ApproachF(&this->dyna.actor.world.pos.y, -1000.0f, 1.0f, this->dyna.actor.speedXZ); - Math_ApproachF(&this->dyna.actor.speedXZ, 100.0f, 1.0f, 0.1f); + Math_ApproachF(&this->dyna.actor.world.pos.y, -1000.0f, 1.0f, this->dyna.actor.speed); + Math_ApproachF(&this->dyna.actor.speed, 100.0f, 1.0f, 0.1f); } osSyncPrintf("MODE DOWN END\n"); } diff --git a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c index 8354a98402..76d1ae2eda 100644 --- a/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c +++ b/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c @@ -74,15 +74,15 @@ void BgGjyoBridge_TriggerCutscene(BgGjyoBridge* this, PlayState* play) { (INV_CONTENT(ITEM_ARROW_LIGHT) == ITEM_ARROW_LIGHT) && (player->actor.world.pos.x > -70.0f) && (player->actor.world.pos.x < 300.0f) && (player->actor.world.pos.y > 1340.0f) && (player->actor.world.pos.z > 1340.0f) && (player->actor.world.pos.z < 1662.0f) && !Play_InCsMode(play)) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gRainbowBridgeCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gRainbowBridgeCs); gSaveContext.cutsceneTrigger = 1; this->actionFunc = BgGjyoBridge_SpawnBridge; } } void BgGjyoBridge_SpawnBridge(BgGjyoBridge* this, PlayState* play) { - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[2] != NULL) && - (play->csCtx.npcActions[2]->action == 2)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[2] != NULL) && + (play->csCtx.actorCues[2]->id == 2)) { this->dyna.actor.draw = BgGjyoBridge_Draw; DynaPoly_EnableCollision(play, &play->colCtx.dyna, this->dyna.bgId); SET_EVENTCHKINF(EVENTCHKINF_4D); diff --git a/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c b/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c index f1f946f68d..e9e5dd7158 100644 --- a/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c +++ b/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c @@ -257,7 +257,7 @@ void BgGndIceblock_Reset(BgGndIceblock* this, PlayState* play) { } if (Math_StepToF(&thisx->world.pos.y, thisx->home.pos.y, 1.0f)) { this->targetPos = thisx->home.pos; - thisx->speedXZ = 0.0f; + thisx->speed = 0.0f; this->actionFunc = BgGndIceblock_Idle; switch (thisx->params) { case 0: @@ -306,11 +306,11 @@ void BgGndIceblock_Slide(BgGndIceblock* this, PlayState* play) { f32 spread; Actor* thisx = &this->dyna.actor; - Math_StepToF(&thisx->speedXZ, 10.0f, 0.5f); - atTarget = Math_StepToF(&thisx->world.pos.x, this->targetPos.x, thisx->speedXZ); - atTarget &= Math_StepToF(&thisx->world.pos.z, this->targetPos.z, thisx->speedXZ); + Math_StepToF(&thisx->speed, 10.0f, 0.5f); + atTarget = Math_StepToF(&thisx->world.pos.x, this->targetPos.x, thisx->speed); + atTarget &= Math_StepToF(&thisx->world.pos.z, this->targetPos.z, thisx->speed); if (atTarget) { - thisx->speedXZ = 0.0f; + thisx->speed = 0.0f; this->targetPos.x = thisx->world.pos.x; this->targetPos.z = thisx->world.pos.z; Actor_PlaySfx(thisx, NA_SE_EV_BLOCK_BOUND); @@ -326,7 +326,7 @@ void BgGndIceblock_Slide(BgGndIceblock* this, PlayState* play) { this->actionFunc = BgGndIceblock_Hole; break; } - } else if (thisx->speedXZ > 6.0f) { + } else if (thisx->speed > 6.0f) { spread = Rand_CenteredFloat(120.0f); velocity.x = -(1.5f + Rand_ZeroOne()) * Math_SinS(this->dyna.unk_158); velocity.y = Rand_ZeroOne() + 1.0f; diff --git a/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c b/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c index 7d6be9e114..af5940506d 100644 --- a/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c +++ b/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c @@ -92,9 +92,9 @@ void func_8087B938(BgHaka* this, PlayState* play) { Player* player = GET_PLAYER(play); s32 sp38; - this->dyna.actor.speedXZ += 0.05f; - this->dyna.actor.speedXZ = CLAMP_MAX(this->dyna.actor.speedXZ, 1.5f); - sp38 = Math_StepToF(&this->dyna.actor.minVelocityY, 60.0f, this->dyna.actor.speedXZ); + this->dyna.actor.speed += 0.05f; + this->dyna.actor.speed = CLAMP_MAX(this->dyna.actor.speed, 1.5f); + sp38 = Math_StepToF(&this->dyna.actor.minVelocityY, 60.0f, this->dyna.actor.speed); this->dyna.actor.world.pos.x = Math_SinS(this->dyna.actor.world.rot.y) * this->dyna.actor.minVelocityY + this->dyna.actor.home.pos.x; this->dyna.actor.world.pos.z = diff --git a/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c b/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c index 7e5897204b..c01870f197 100644 --- a/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c +++ b/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c @@ -189,9 +189,9 @@ void func_8087E288(BgHakaMeganeBG* this, PlayState* play) { } void func_8087E2D8(BgHakaMeganeBG* this, PlayState* play) { - Math_StepToF(&this->dyna.actor.speedXZ, 30.0f, 2.0f); + Math_StepToF(&this->dyna.actor.speed, 30.0f, 2.0f); - if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, this->dyna.actor.speedXZ)) { + if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y, this->dyna.actor.speed)) { Actor_SetFocus(&this->dyna.actor, 50.0f); this->actionFunc = func_8087E34C; } else { diff --git a/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c b/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c index c5e0c035da..7cbd185afd 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c +++ b/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c @@ -125,19 +125,19 @@ void BgHakaShip_Move(BgHakaShip* this, PlayState* play) { distanceFromHome = this->dyna.actor.home.pos.x - this->dyna.actor.world.pos.x; if (distanceFromHome > 7650.0f) { this->dyna.actor.world.pos.x = this->dyna.actor.home.pos.x - 7650.0f; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; } if (distanceFromHome > 7600.0f && !Play_InCsMode(play)) { this->counter = 40; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; Message_StartTextbox(play, 0x5071, NULL); this->actionFunc = BgHakaShip_SetupCrash; } else { - Math_StepToF(&this->dyna.actor.speedXZ, 4.0f, 0.2f); + Math_StepToF(&this->dyna.actor.speed, 4.0f, 0.2f); } child = this->dyna.actor.child; if (child != NULL && child->update != NULL) { - child->shape.rot.z += ((655.0f / 13.0f) * this->dyna.actor.speedXZ); + child->shape.rot.z += ((655.0f / 13.0f) * this->dyna.actor.speed); } else { this->dyna.actor.child = NULL; } diff --git a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c index 556f75a763..7b05c1383a 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c +++ b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c @@ -83,7 +83,7 @@ void BgHakaZou_Init(Actor* thisx, PlayState* play) { if (thisx->params == STA_UNKNOWN) { Actor_SetScale(thisx, (Rand_ZeroOne() * 0.005f) + 0.025f); - thisx->speedXZ = Rand_ZeroOne(); + thisx->speed = Rand_ZeroOne(); thisx->world.rot.y = thisx->shape.rot.y * ((Rand_ZeroOne() < 0.5f) ? -1 : 1) + Rand_CenteredFloat(0x1000); this->timer = 20; thisx->world.rot.x = Rand_S16Offset(0x100, 0x300) * ((Rand_ZeroOne() < 0.5f) ? -1 : 1); @@ -209,7 +209,7 @@ void func_80882BDC(BgHakaZou* this, PlayState* play) { this->dyna.actor.velocity.y *= -0.6f; this->dyna.actor.velocity.y = CLAMP_MAX(this->dyna.actor.velocity.y, 10.0f); this->dyna.actor.bgCheckFlags &= ~(BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH); - this->dyna.actor.speedXZ = 2.0f; + this->dyna.actor.speed = 2.0f; } else { Actor_Kill(&this->dyna.actor); } diff --git a/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c b/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c index d8412b3323..3d450e61a8 100644 --- a/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c +++ b/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c @@ -441,7 +441,7 @@ void BgHeavyBlock_Fly(BgHeavyBlock* this, PlayState* play) { this->actionFunc = BgHeavyBlock_Land; } } - this->dyna.actor.shape.rot.x = Math_Atan2S(this->dyna.actor.velocity.y, this->dyna.actor.speedXZ); + this->dyna.actor.shape.rot.x = Math_Atan2S(this->dyna.actor.velocity.y, this->dyna.actor.speed); } void BgHeavyBlock_DoNothing(BgHeavyBlock* this, PlayState* play) { @@ -451,7 +451,7 @@ void BgHeavyBlock_Land(BgHeavyBlock* this, PlayState* play) { s32 pad; if (Math_SmoothStepToS(&this->dyna.actor.shape.rot.x, 0x8AD0, 6, 2000, 100) != 0) { - Math_StepToF(&this->dyna.actor.speedXZ, 0.0f, 20.0f); + Math_StepToF(&this->dyna.actor.speed, 0.0f, 20.0f); Math_StepToF(&this->dyna.actor.velocity.y, 0.0f, 3.0f); this->dyna.actor.gravity = 0.0f; this->dyna.actor.world.pos = this->dyna.actor.home.pos; diff --git a/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c b/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c index 1b143de27a..11d22ce334 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c @@ -143,7 +143,7 @@ void BgHidanDalm_Wait(BgHidanDalm* this, PlayState* play) { this->actionFunc = BgHidanDalm_Shrink; this->dyna.actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH; this->dyna.actor.bgCheckFlags &= ~BGCHECKFLAG_WALL; - this->dyna.actor.speedXZ = 10.0f; + this->dyna.actor.speed = 10.0f; Flags_SetSwitch(play, this->switchFlag); Player_PlaySfx(GET_PLAYER(play), NA_SE_IT_HAMMER_HIT); Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_DARUMA_VANISH); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c b/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c index bda7e5b99b..7bb5a9ae6d 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c @@ -119,9 +119,9 @@ void func_80889BC0(BgHidanKousi* this, PlayState* play) { } void func_80889C18(BgHidanKousi* this, PlayState* play) { - this->dyna.actor.speedXZ += 0.2f; - if (this->dyna.actor.speedXZ > 2.0f) { - this->dyna.actor.speedXZ = 2.0f; + this->dyna.actor.speed += 0.2f; + if (this->dyna.actor.speed > 2.0f) { + this->dyna.actor.speed = 2.0f; BgHidanKousi_SetupAction(this, func_80889C90); } Actor_MoveForward(&this->dyna.actor); diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c index 7e1ff86bd9..bc3878b066 100644 --- a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c +++ b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c @@ -135,13 +135,13 @@ void func_8088B268(BgHidanRock* this, PlayState* play) { } } - this->dyna.actor.speedXZ += 0.05f; - this->dyna.actor.speedXZ = CLAMP_MAX(this->dyna.actor.speedXZ, 2.0f); + this->dyna.actor.speed += 0.05f; + this->dyna.actor.speed = CLAMP_MAX(this->dyna.actor.speed, 2.0f); if (D_8088BFC0 > 0.0f) { - temp_v1 = Math_StepToF(&D_8088BFC0, 20.0f, this->dyna.actor.speedXZ); + temp_v1 = Math_StepToF(&D_8088BFC0, 20.0f, this->dyna.actor.speed); } else { - temp_v1 = Math_StepToF(&D_8088BFC0, -20.0f, this->dyna.actor.speedXZ); + temp_v1 = Math_StepToF(&D_8088BFC0, -20.0f, this->dyna.actor.speed); } this->dyna.actor.world.pos.x = (Math_SinS(this->dyna.unk_158) * D_8088BFC0) + this->dyna.actor.home.pos.x; @@ -153,7 +153,7 @@ void func_8088B268(BgHidanRock* this, PlayState* play) { this->dyna.actor.home.pos.x = this->dyna.actor.world.pos.x; this->dyna.actor.home.pos.z = this->dyna.actor.world.pos.z; D_8088BFC0 = 0.0f; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->timer = 5; } @@ -175,7 +175,7 @@ void func_8088B268(BgHidanRock* this, PlayState* play) { Math_Vec3f_Copy(&this->dyna.actor.home.pos, &D_8088BF60); this->dyna.actor.world.pos.x = D_8088BF60.x; this->dyna.actor.world.pos.z = D_8088BF60.z; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; D_8088BFC0 = 0.0f; player->stateFlags2 &= ~PLAYER_STATE2_4; this->actionFunc = func_8088B79C; @@ -296,7 +296,7 @@ void func_8088B990(BgHidanRock* this, PlayState* play) { this->timer++; if (this->dyna.unk_150 != 0.0f) { - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; player->stateFlags2 &= ~PLAYER_STATE2_4; } diff --git a/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c b/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c index 1d99951ee6..ab05a463f8 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c +++ b/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c @@ -161,11 +161,11 @@ void BgIceObjects_Slide(BgIceObjects* this, PlayState* play) { f32 spread; Actor* thisx = &this->dyna.actor; - Math_StepToF(&thisx->speedXZ, 10.0f, 0.5f); - atTarget = Math_StepToF(&thisx->world.pos.x, this->targetPos.x, thisx->speedXZ); - atTarget &= Math_StepToF(&thisx->world.pos.z, this->targetPos.z, thisx->speedXZ); + Math_StepToF(&thisx->speed, 10.0f, 0.5f); + atTarget = Math_StepToF(&thisx->world.pos.x, this->targetPos.x, thisx->speed); + atTarget &= Math_StepToF(&thisx->world.pos.z, this->targetPos.z, thisx->speed); if (atTarget) { - thisx->speedXZ = 0.0f; + thisx->speed = 0.0f; this->targetPos.x = thisx->world.pos.x; this->targetPos.z = thisx->world.pos.z; if (thisx->velocity.y <= 0.0f) { @@ -179,7 +179,7 @@ void BgIceObjects_Slide(BgIceObjects* this, PlayState* play) { } else { this->actionFunc = BgIceObjects_Idle; } - } else if ((thisx->speedXZ > 6.0f) && (thisx->world.pos.y >= 0.0f)) { + } else if ((thisx->speed > 6.0f) && (thisx->world.pos.y >= 0.0f)) { spread = Rand_CenteredFloat(120.0f); velocity.x = -(1.5f + Rand_ZeroOne()) * Math_SinS(this->dyna.unk_158); velocity.y = Rand_ZeroOne() + 1.0f; @@ -209,7 +209,7 @@ void BgIceObjects_Reset(BgIceObjects* this, PlayState* play) { thisx->flags &= ~ACTOR_FLAG_4; Math_Vec3f_Copy(&this->targetPos, &thisx->home.pos); this->actionFunc = BgIceObjects_Idle; - thisx->speedXZ = 0.0f; + thisx->speed = 0.0f; } } diff --git a/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.c b/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.c index f4e44f70e8..a9aed60181 100644 --- a/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.c +++ b/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.c @@ -114,8 +114,8 @@ void func_80891D6C(BgIceShutter* this, PlayState* play) { } void func_80891DD4(BgIceShutter* this, PlayState* play) { - Math_StepToF(&this->dyna.actor.speedXZ, 30.0f, 2.0f); - if (Math_StepToF(&this->dyna.actor.velocity.y, 210.0f, this->dyna.actor.speedXZ)) { + Math_StepToF(&this->dyna.actor.speed, 30.0f, 2.0f); + if (Math_StepToF(&this->dyna.actor.velocity.y, 210.0f, this->dyna.actor.speed)) { Actor_Kill(&this->dyna.actor); return; } diff --git a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c index 64b7662a93..393ac4d588 100644 --- a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c +++ b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c @@ -52,7 +52,7 @@ void BgInGate_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->dyna.actor, 0.1f); if (((this->dyna.actor.params & 1) != 0) && (GET_EVENTINF_HORSES_STATE() == EVENTINF_HORSES_STATE_6)) { - play->csCtx.frames = 0; + play->csCtx.curFrame = 0; BgInGate_SetupAction(this, func_80892890); } else { BgInGate_SetupAction(this, BgInGate_DoNothing); @@ -70,15 +70,15 @@ void func_80892890(BgInGate* this, PlayState* play) { s16 phi1; s16 csFrames; - if (play->csCtx.frames >= 50) { + if (play->csCtx.curFrame >= 50) { phi0 = 0x4000; if ((this->dyna.actor.params & 2) == 0) { phi0 = -0x4000; } this->dyna.actor.shape.rot.y = this->dyna.actor.world.rot.y + phi0; BgInGate_SetupAction(this, BgInGate_DoNothing); - } else if (play->csCtx.frames >= 10) { - csFrames = play->csCtx.frames - 10; + } else if (play->csCtx.curFrame >= 10) { + csFrames = play->csCtx.curFrame - 10; csFrames *= 400; phi1 = csFrames; if (csFrames > 0x4000) { diff --git a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c index db9f71c6ad..6cf9c12f93 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c @@ -122,19 +122,19 @@ void BgJyaGoroiwa_SetupMove(BgJyaGoroiwa* this) { void BgJyaGoroiwa_Move(BgJyaGoroiwa* this, PlayState* play) { Actor* thisx = &this->actor; s16 relYawTowardsPlayer; - f32 speedXZsqBase = (-100.0f - thisx->world.pos.y) * 2.5f; + f32 speedXZBaseSq = (-100.0f - thisx->world.pos.y) * 2.5f; f32 posYfac; - if (speedXZsqBase < 0.01f) { - speedXZsqBase = 0.01f; + if (speedXZBaseSq < 0.01f) { + speedXZBaseSq = 0.01f; } - thisx->speedXZ = sqrtf(speedXZsqBase) * this->speedFactor; - thisx->velocity.x = Math_SinS(thisx->world.rot.y) * thisx->speedXZ; - thisx->velocity.z = Math_CosS(thisx->world.rot.y) * thisx->speedXZ; + thisx->speed = sqrtf(speedXZBaseSq) * this->speedFactor; + thisx->velocity.x = Math_SinS(thisx->world.rot.y) * thisx->speed; + thisx->velocity.z = Math_CosS(thisx->world.rot.y) * thisx->speed; - thisx->world.pos.x = thisx->world.pos.x + thisx->velocity.x; - thisx->world.pos.z = thisx->world.pos.z + thisx->velocity.z; + thisx->world.pos.x += thisx->velocity.x; + thisx->world.pos.z += thisx->velocity.z; if ((thisx->world.pos.x > 1466.0f) && (thisx->world.pos.x < 1673.0f)) { thisx->world.pos.y = -129.5f; diff --git a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c index fb97835f9b..94a6c0bcbd 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c +++ b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c @@ -119,7 +119,7 @@ void BgJyaIronobj_SpawnPillarParticles(BgJyaIronobj* this, PlayState* play, EnIk Rand_ZeroOne() * 80.0f + this->dyna.actor.world.pos.y + 20.0f, this->dyna.actor.world.pos.z, 0, (s16)(Rand_ZeroOne() * 0x4000) + rotY - 0x2000, 0, 0); if (actor != NULL) { - actor->speedXZ = Rand_ZeroOne() * 8.0f + 9.0f; + actor->speed = Rand_ZeroOne() * 8.0f + 9.0f; actor->velocity.y = Rand_ZeroOne() * 10.0f + 6.0f; } } @@ -181,7 +181,7 @@ void BgJyaIronobj_SpawnThroneParticles(BgJyaIronobj* this, PlayState* play, EnIk (Rand_ZeroOne() * 80.0f) + this->dyna.actor.world.pos.y + 10.0f, this->dyna.actor.world.pos.z, 0, ((s16)(s32)(Rand_ZeroOne() * 0x4000) + rotY) - 0x2000, 0, 0); if (actor != NULL) { - actor->speedXZ = Rand_ZeroOne() * 8.0f + 9.0f; + actor->speed = Rand_ZeroOne() * 8.0f + 9.0f; actor->velocity.y = Rand_ZeroOne() * 10.0f + 6.0f; } } diff --git a/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c b/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c index 9bac0c0a26..a6d1b7d55a 100644 --- a/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c +++ b/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c @@ -322,11 +322,11 @@ void func_8089E650(BgMizuMovebg* this, PlayState* play) { f32 dy; f32 dz; - this->dyna.actor.speedXZ = MOVEBG_SPEED(this->dyna.actor.params) * 0.1f; + this->dyna.actor.speed = MOVEBG_SPEED(this->dyna.actor.params) * 0.1f; func_8089E108(play->pathList, &waypoint, MOVEBG_PATH_ID(this->dyna.actor.params), this->waypointId); dist = Actor_WorldDistXYZToPoint(&this->dyna.actor, &waypoint); - if (dist < this->dyna.actor.speedXZ) { - this->dyna.actor.speedXZ = dist; + if (dist < this->dyna.actor.speed) { + this->dyna.actor.speed = dist; } func_80035844(&this->dyna.actor.world.pos, &waypoint, &this->dyna.actor.world.rot, 1); func_8002D97C(&this->dyna.actor); diff --git a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c index 0bdb39767c..67d54a21f3 100644 --- a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c +++ b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c @@ -385,9 +385,9 @@ void BgPoEvent_BlockPush(BgPoEvent* this, PlayState* play) { s32 blockStop; Player* player = GET_PLAYER(play); - this->dyna.actor.speedXZ += 0.1f; - this->dyna.actor.speedXZ = CLAMP_MAX(this->dyna.actor.speedXZ, 2.0f); - blockStop = Math_StepToF(&blockPushDist, 20.0f, this->dyna.actor.speedXZ); + this->dyna.actor.speed += 0.1f; + this->dyna.actor.speed = CLAMP_MAX(this->dyna.actor.speed, 2.0f); + blockStop = Math_StepToF(&blockPushDist, 20.0f, this->dyna.actor.speed); displacement = this->direction * blockPushDist; this->dyna.actor.world.pos.x = (Math_SinS(this->dyna.unk_158) * displacement) + this->dyna.actor.home.pos.x; this->dyna.actor.world.pos.z = (Math_CosS(this->dyna.unk_158) * displacement) + this->dyna.actor.home.pos.z; @@ -400,7 +400,7 @@ void BgPoEvent_BlockPush(BgPoEvent* this, PlayState* play) { this->dyna.actor.home.pos.x = this->dyna.actor.world.pos.x; this->dyna.actor.home.pos.z = this->dyna.actor.world.pos.z; blockPushDist = 0.0f; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->direction = 5; sBlocksAtRest++; this->actionFunc = BgPoEvent_BlockIdle; diff --git a/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c b/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c index 77aeb3dae8..22635a0009 100644 --- a/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c +++ b/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c @@ -58,11 +58,9 @@ void BgPushbox_Destroy(Actor* thisx, PlayState* play) { } void BgPushbox_UpdateImpl(BgPushbox* this, PlayState* play) { - this->dyna.actor.speedXZ += this->dyna.unk_150 * 0.2f; - this->dyna.actor.speedXZ = (this->dyna.actor.speedXZ < -1.0f) - ? -1.0f - : ((this->dyna.actor.speedXZ > 1.0f) ? 1.0f : this->dyna.actor.speedXZ); - Math_StepToF(&this->dyna.actor.speedXZ, 0.0f, 0.2f); + this->dyna.actor.speed += this->dyna.unk_150 * 0.2f; + this->dyna.actor.speed = CLAMP(this->dyna.actor.speed, -1.0f, 1.0f); + Math_StepToF(&this->dyna.actor.speed, 0.0f, 0.2f); this->dyna.actor.world.rot.y = this->dyna.unk_158; Actor_MoveForward(&this->dyna.actor); Actor_UpdateBgCheckInfo(play, &this->dyna.actor, 20.0f, 40.0f, 40.0f, diff --git a/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c b/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c index 9c2cf06204..c61666cb7a 100644 --- a/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c +++ b/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c @@ -179,7 +179,7 @@ void func_808A932C(BgRelayObjects* this, PlayState* play) { } void func_808A939C(BgRelayObjects* this, PlayState* play) { - if (Flags_GetEnv(play, 5)) { + if (CutsceneFlags_Get(play, 5)) { SET_EVENTCHKINF(EVENTCHKINF_65); } if (GET_EVENTCHKINF(EVENTCHKINF_65)) { diff --git a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c index aea22e2ca7..66aba6578c 100644 --- a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c +++ b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c @@ -140,7 +140,7 @@ void BgSpot00Hanebasi_DrawbridgeWait(BgSpot00Hanebasi* this, PlayState* play) { if (IS_CUTSCENE_LAYER || !CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD) || !CHECK_QUEST_ITEM(QUEST_GORON_RUBY) || !CHECK_QUEST_ITEM(QUEST_ZORA_SAPPHIRE) || GET_EVENTCHKINF(EVENTCHKINF_80)) { if (this->dyna.actor.shape.rot.x != 0) { - if (Flags_GetEnv(play, 0) || (!IS_CUTSCENE_LAYER && IS_DAY)) { + if (CutsceneFlags_Get(play, 0) || (!IS_CUTSCENE_LAYER && IS_DAY)) { this->actionFunc = BgSpot00Hanebasi_DrawbridgeRiseAndFall; this->destAngle = 0; child->destAngle = 0; diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c index b327f068d9..dc7ae8fde5 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c +++ b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c @@ -151,14 +151,14 @@ s32 BgSpot01Idohashira_NotInCsMode(PlayState* play) { return false; } -CsCmdActorAction* BgSpot01Idohashira_GetNpcAction(PlayState* play, s32 actionIdx) { +CsCmdActorCue* BgSpot01Idohashira_GetCue(PlayState* play, s32 cueChannel) { s32 pad[2]; - CsCmdActorAction* npcAction = NULL; + CsCmdActorCue* cue = NULL; if (!BgSpot01Idohashira_NotInCsMode(play)) { - npcAction = play->csCtx.npcActions[actionIdx]; + cue = play->csCtx.actorCues[cueChannel]; } - return npcAction; + return cue; } void func_808AB18C(BgSpot01Idohashira* this) { @@ -185,7 +185,7 @@ f32 func_808AB1DC(f32 arg0, f32 arg1, u16 arg2, u16 arg3, u16 arg4) { } s32 func_808AB29C(BgSpot01Idohashira* this, PlayState* play) { - CsCmdActorAction* npcAction; + CsCmdActorCue* cue; Vec3f* thisPos; f32 endX; f32 temp_f0; @@ -195,17 +195,17 @@ s32 func_808AB29C(BgSpot01Idohashira* this, PlayState* play) { f32 tempY; f32 tempZ; - npcAction = BgSpot01Idohashira_GetNpcAction(play, 2); - if (npcAction != NULL) { - temp_f0 = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, play->csCtx.frames); + cue = BgSpot01Idohashira_GetCue(play, 2); + + if (cue != NULL) { + temp_f0 = Environment_LerpWeight(cue->endFrame, cue->startFrame, play->csCtx.curFrame); initPos = this->dyna.actor.home.pos; - endX = npcAction->endPos.x; - tempY = ((kREG(10) + 1100.0f) / 10.0f) + npcAction->endPos.y; - endZ = npcAction->endPos.z; + endX = cue->endPos.x; + tempY = ((kREG(10) + 1100.0f) / 10.0f) + cue->endPos.y; + endZ = cue->endPos.z; thisPos = &this->dyna.actor.world.pos; thisPos->x = ((endX - initPos.x) * temp_f0) + initPos.x; - thisPos->y = - func_808AB1DC(initPos.y, tempY, npcAction->endFrame, npcAction->startFrame, play->csCtx.frames) + initPos.y; + thisPos->y = func_808AB1DC(initPos.y, tempY, cue->endFrame, cue->startFrame, play->csCtx.curFrame) + initPos.y; thisPos->z = ((endZ - initPos.z) * temp_f0) + initPos.z; if (temp_f0 >= 1.0f) { @@ -235,15 +235,16 @@ void func_808AB414(BgSpot01Idohashira* this, PlayState* play) { } void func_808AB444(BgSpot01Idohashira* this, PlayState* play) { - CsCmdActorAction* npcAction = BgSpot01Idohashira_GetNpcAction(play, 2); - u32 action; - u32 currentNpcAction; + CsCmdActorCue* cue = BgSpot01Idohashira_GetCue(play, 2); + u32 nextCueId; + u32 currentCueId; - if (npcAction != NULL) { - action = npcAction->action; - currentNpcAction = this->npcAction; - if (action != currentNpcAction) { - switch (action) { + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: func_808AB3E8(this); break; @@ -256,7 +257,8 @@ void func_808AB444(BgSpot01Idohashira* this, PlayState* play) { default: osSyncPrintf("Bg_Spot01_Idohashira_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->npcAction = action; + + this->cueId = nextCueId; } } } diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.h b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.h index 216008321a..ae456de8fb 100644 --- a/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.h +++ b/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.h @@ -13,7 +13,7 @@ typedef struct BgSpot01Idohashira { /* 0x0000 */ DynaPolyActor dyna; /* 0x0164 */ s32 action; /* 0x0168 */ s32 drawConfig; - /* 0x016C */ u32 npcAction; + /* 0x016C */ u32 cueId; /* 0x0170 */ s32 unk_170; } BgSpot01Idohashira; // size = 0x0174 diff --git a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c index 5e9316106e..8cc8a71057 100644 --- a/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c +++ b/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c @@ -128,7 +128,7 @@ void func_808AC908(BgSpot02Objects* this, PlayState* play) { Vec3f pos; if (play->csCtx.state != 0) { - if (play->csCtx.npcActions[3] != NULL && play->csCtx.npcActions[3]->action == 2) { + if (play->csCtx.actorCues[3] != NULL && play->csCtx.actorCues[3]->id == 2) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_GRAVE_EXPLOSION); SET_EVENTCHKINF(EVENTCHKINF_1D); this->timer = 25; @@ -156,7 +156,7 @@ void func_808ACA08(BgSpot02Objects* this, PlayState* play) { Actor_Kill(&this->dyna.actor); } - if (play->csCtx.frames == 402) { + if (play->csCtx.curFrame == 402) { if (!LINK_IS_ADULT) { Player_PlaySfx(player, NA_SE_VO_LI_DEMO_DAMAGE_KID); } else { @@ -199,7 +199,7 @@ void BgSpot02Objects_Draw(Actor* thisx, PlayState* play) { } void func_808ACC34(BgSpot02Objects* this, PlayState* play) { - if (play->csCtx.state != 0 && play->csCtx.npcActions[0] != NULL && play->csCtx.npcActions[0]->action == 2) { + if (play->csCtx.state != 0 && play->csCtx.actorCues[0] != NULL && play->csCtx.actorCues[0]->id == 2) { this->unk_16A++; if (this->unk_16A >= 12) { @@ -207,7 +207,7 @@ void func_808ACC34(BgSpot02Objects* this, PlayState* play) { } } - if (play->csCtx.frames == 245 || play->csCtx.frames == 351) { + if (play->csCtx.curFrame == 245 || play->csCtx.curFrame == 351) { func_800788CC(NA_SE_EV_LIGHTNING); } } @@ -225,7 +225,7 @@ void func_808ACCB8(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_spot02_objects.c", 600); - if (play->csCtx.state != 0 && play->csCtx.npcActions[0] != NULL && play->csCtx.npcActions[0]->action == 2) { + if (play->csCtx.state != 0 && play->csCtx.actorCues[0] != NULL && play->csCtx.actorCues[0]->id == 2) { if (this->unk_16A < 5) { rate = (this->unk_16A / 5.0f); redPrim = greenPrim = bluePrim = 255; @@ -242,11 +242,11 @@ void func_808ACCB8(Actor* thisx, PlayState* play) { blueEnv = 100.0f + (100.0f * rate); } - Matrix_Translate(play->csCtx.npcActions[0]->startPos.x, play->csCtx.npcActions[0]->startPos.y, - play->csCtx.npcActions[0]->startPos.z, MTXMODE_NEW); - Matrix_RotateX(BINANG_TO_RAD(play->csCtx.npcActions[0]->urot.x), MTXMODE_APPLY); - Matrix_RotateY(BINANG_TO_RAD(play->csCtx.npcActions[0]->urot.y), MTXMODE_APPLY); - Matrix_RotateZ(BINANG_TO_RAD(play->csCtx.npcActions[0]->urot.z), MTXMODE_APPLY); + Matrix_Translate(play->csCtx.actorCues[0]->startPos.x, play->csCtx.actorCues[0]->startPos.y, + play->csCtx.actorCues[0]->startPos.z, MTXMODE_NEW); + Matrix_RotateX(BINANG_TO_RAD(play->csCtx.actorCues[0]->rot.x), MTXMODE_APPLY); + Matrix_RotateY(BINANG_TO_RAD(play->csCtx.actorCues[0]->rot.y), MTXMODE_APPLY); + Matrix_RotateZ(BINANG_TO_RAD(play->csCtx.actorCues[0]->rot.z), MTXMODE_APPLY); Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); Gfx_SetupDL_25Xlu(play->state.gfxCtx); @@ -265,7 +265,7 @@ void func_808ACCB8(Actor* thisx, PlayState* play) { } void func_808AD3D4(BgSpot02Objects* this, PlayState* play) { - if (play->csCtx.state != 0 && play->csCtx.npcActions[2] != NULL && play->csCtx.npcActions[2]->action == 2) { + if (play->csCtx.state != 0 && play->csCtx.actorCues[2] != NULL && play->csCtx.actorCues[2]->id == 2) { if (this->timer == 2) { Actor_PlaySfx(&this->dyna.actor, NA_SE_IT_EXPLOSION_ICE); } @@ -285,8 +285,8 @@ void func_808AD450(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_bg_spot02_objects.c", 736); - if (play->csCtx.state != 0 && play->csCtx.npcActions[2] != NULL) { - u16 temp_v1 = CAM_BINANG_TO_DEG(play->csCtx.npcActions[2]->urot.z); + if (play->csCtx.state != 0 && play->csCtx.actorCues[2] != NULL) { + u16 temp_v1 = CAM_BINANG_TO_DEG(play->csCtx.actorCues[2]->rot.z); if (this->unk_170 != temp_v1) { if (this->unk_170 == 0xFFFF) { @@ -298,15 +298,15 @@ void func_808AD450(Actor* thisx, PlayState* play) { } } - lerp = Environment_LerpWeight(play->csCtx.npcActions[2]->endFrame, play->csCtx.npcActions[2]->startFrame, - play->csCtx.frames); + lerp = Environment_LerpWeight(play->csCtx.actorCues[2]->endFrame, play->csCtx.actorCues[2]->startFrame, + play->csCtx.curFrame); // should be able to remove & 0xFFFF with some other change - if ((play->csCtx.npcActions[2]->action & 0xFFFF) == 2) { - Matrix_Translate(play->csCtx.npcActions[2]->startPos.x, play->csCtx.npcActions[2]->startPos.y, - play->csCtx.npcActions[2]->startPos.z, MTXMODE_NEW); - Matrix_RotateX(BINANG_TO_RAD(play->csCtx.npcActions[2]->urot.x), MTXMODE_APPLY); - Matrix_RotateY(BINANG_TO_RAD(play->csCtx.npcActions[2]->urot.y), MTXMODE_APPLY); + if ((play->csCtx.actorCues[2]->id & 0xFFFF) == 2) { + Matrix_Translate(play->csCtx.actorCues[2]->startPos.x, play->csCtx.actorCues[2]->startPos.y, + play->csCtx.actorCues[2]->startPos.z, MTXMODE_NEW); + Matrix_RotateX(BINANG_TO_RAD(play->csCtx.actorCues[2]->rot.x), MTXMODE_APPLY); + Matrix_RotateY(BINANG_TO_RAD(play->csCtx.actorCues[2]->rot.y), MTXMODE_APPLY); Matrix_Scale(0.9f, 0.9f, (((this->unk_170 - this->unk_172) * lerp) + this->unk_172) * 0.1f, MTXMODE_APPLY); Gfx_SetupDL_25Xlu(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.c b/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.c index e08c752427..bf3964d9cd 100644 --- a/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.c +++ b/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.c @@ -82,13 +82,13 @@ void func_808AE5B4(BgSpot05Soko* this, PlayState* play) { Actor_SetFocus(&this->dyna.actor, 50.0f); OnePointCutscene_Attention(play, &this->dyna.actor); this->actionFunc = func_808AE630; - this->dyna.actor.speedXZ = 0.5f; + this->dyna.actor.speed = 0.5f; } } void func_808AE630(BgSpot05Soko* this, PlayState* play) { - this->dyna.actor.speedXZ *= 1.5f; - if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y - 120.0f, this->dyna.actor.speedXZ) != + this->dyna.actor.speed *= 1.5f; + if (Math_StepToF(&this->dyna.actor.world.pos.y, this->dyna.actor.home.pos.y - 120.0f, this->dyna.actor.speed) != 0) { Actor_Kill(&this->dyna.actor); } diff --git a/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c b/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c index 7cb2301363..1631b3f3ac 100644 --- a/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c +++ b/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c @@ -94,7 +94,7 @@ void func_808B2970(BgSpot11Oasis* this) { } void func_808B2980(BgSpot11Oasis* this, PlayState* play) { - if (Flags_GetEnv(play, 5) && func_808B280C(play)) { + if (CutsceneFlags_Get(play, 5) && func_808B280C(play)) { OnePointCutscene_Init(play, 4150, -99, &this->actor, CAM_ID_MAIN); func_808B29E0(this); } diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c index 16a3a9acb0..6a6e3cec9f 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c +++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c @@ -196,7 +196,7 @@ s32 func_808B4E58(BgSpot16Bombstone* this, PlayState* play) { Actor_ProcessInitChain(actor, sInitChainDebris); - actor->speedXZ = D_808B5DD8[actor->params][0]; + actor->speed = D_808B5DD8[actor->params][0]; actor->velocity.y = D_808B5DD8[actor->params][1]; Actor_SetScale(actor, D_808B5DD8[actor->params][2] * scaleFactor); diff --git a/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c b/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c index c1ea8a4cf1..7bbbb7d3f9 100644 --- a/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c +++ b/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c @@ -92,8 +92,8 @@ void BgSpot16Doughnut_Update(Actor* thisx, PlayState* play) { } else { this->envColorAlpha = 255; } - } else if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[2] != NULL && - play->csCtx.npcActions[2]->action == 2) { + } else if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[2] != NULL && + play->csCtx.actorCues[2]->id == 2) { if (this->envColorAlpha >= 6) { this->envColorAlpha -= 5; } else { diff --git a/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c b/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c index addb434223..5abbca1114 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c @@ -236,7 +236,7 @@ void func_808B8E7C(BgSpot18Obj* this, PlayState* play) { void func_808B8EE0(BgSpot18Obj* this) { this->actionFunc = func_808B8F08; this->dyna.actor.world.rot.y = 0; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->dyna.actor.velocity.z = 0.0f; this->dyna.actor.velocity.y = 0.0f; this->dyna.actor.velocity.x = 0.0f; @@ -246,7 +246,7 @@ void func_808B8F08(BgSpot18Obj* this, PlayState* play) { s32 pad; Player* player = GET_PLAYER(play); - Math_StepToF(&this->dyna.actor.speedXZ, 1.2f, 0.1f); + Math_StepToF(&this->dyna.actor.speed, 1.2f, 0.1f); Actor_MoveForward(&this->dyna.actor); func_808B8DDC(this, play); diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c index 43ab5272f3..011245e483 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c @@ -96,16 +96,16 @@ void func_808BAF40(BgTokiSwd* this, PlayState* play) { if (!GET_EVENTCHKINF(EVENTCHKINF_4F) && !IS_CUTSCENE_LAYER && Actor_IsFacingAndNearPlayer(&this->actor, 800.0f, 0x7530) && !Play_InCsMode(play)) { SET_EVENTCHKINF(EVENTCHKINF_4F); - play->csCtx.segment = D_808BBD90; + play->csCtx.script = D_808BBD90; gSaveContext.cutsceneTrigger = 1; } if (!LINK_IS_ADULT || GET_EVENTCHKINF(EVENTCHKINF_55)) { if (Actor_HasParent(&this->actor, play)) { if (!LINK_IS_ADULT) { Item_Give(play, ITEM_SWORD_MASTER); - play->csCtx.segment = D_808BB2F0; + play->csCtx.script = D_808BB2F0; } else { - play->csCtx.segment = D_808BB7A0; + play->csCtx.script = D_808BB7A0; } SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0); SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_MASTER_SWORD); @@ -146,7 +146,7 @@ void func_808BB0AC(BgTokiSwd* this, PlayState* play) { } void func_808BB128(BgTokiSwd* this, PlayState* play) { - if (Flags_GetEnv(play, 1) && (play->roomCtx.unk_74[0] < 0xFF)) { + if (CutsceneFlags_Get(play, 1) && (play->roomCtx.unk_74[0] < 0xFF)) { play->roomCtx.unk_74[0] += 5; } } diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_1.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_1.c index 16b6b2a8a3..1f9b03889c 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_1.c +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_1.c @@ -4,76 +4,76 @@ // clang-format off CutsceneData D_808BB2F0[] = { CS_BEGIN_CUTSCENE(9, 425), - CS_PLAYER_ACTION_LIST(1), - CS_PLAYER_ACTION(0x000C, 0, 256, 0x0000, 0x0000, 0x0000, 0, 54, 52, 0, 54, 52, 0.0f, 0.0f, 0.0f), - CS_LIGHTING_LIST(1), - CS_LIGHTING(0x0002, 110, 111, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFE3, 0xFFFFFFC5, 0x00000000, 0xFFFFFFE3, 0xFFFFFFC5), + CS_PLAYER_CUE_LIST(1), + CS_PLAYER_CUE(0x000C, 0, 256, 0x0000, 0x0000, 0x0000, 0, 54, 52, 0, 54, 52, 0.0f, 0.0f, 0.0f), + CS_LIGHT_SETTING_LIST(1), + CS_LIGHT_SETTING(0x0001, 110, 111, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFE3, 0xFFFFFFC5, 0x00000000, 0xFFFFFFE3, 0xFFFFFFC5), CS_MISC_LIST(1), - CS_MISC(0x000A, 110, 111, 0x0000, 0x00000000, 0x00000000, 0x0000002E, 0xFFFFFFE6, 0x00000000, 0x0000002E, 0xFFFFFFE6, 0x00000000, 0x00000000, 0x00000000), - CS_TERMINATOR(TEMPLE_OF_TIME_AFTER_USE_MS, 230, 231), - CS_SCENE_TRANS_FX(0x0001, 210, 230), - CS_CAM_EYE_LIST(0, 241), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x018C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x019D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x01AE), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x02A8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x007A), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x0064), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x0074), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -42, 72, -39, 0x005F), - CS_CAM_EYE_LIST(80, 406), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x2F73), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x6B2F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x6169), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x0005), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 129, -34, 0x7961), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 173, -19, 0x742F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -17, 217, -20, 0x2E64), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -24, 328, -12, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -27, 509, -2, 0x2F73), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -41, 813, 10, 0x6B2F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -60, 1285, 38, 0x6D61), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -58, 1910, 91, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -53, 2526, 133, 0x0005), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -33, 3445, 193, 0x7961), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 3960, 225, 0x742F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 7, 4317, 245, 0x6565), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 7, 4316, 245, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 7, 4316, 245, 0x2F73), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, 7, 4316, 245, 0x6B2F), - CS_CAM_AT_LIST(0, 270), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x2F73), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x6B2F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x6169), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x0005), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x7961), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x742F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x2E64), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.0f, -20, 85, -9, 0x0000), - CS_CAM_AT_LIST(80, 425), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x2F73), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x6B2F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x6169), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -1, 112, 7, 0x0005), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x7961), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 25, 60.0f, -1, 117, 7, 0x742F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 25, 60.0f, -1, 117, 7, 0x2E64), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x2F73), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x6B2F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x6D61), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0005), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x7961), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x742F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x6565), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x2F73), - CS_CAM_AT(CS_CMD_STOP, 0x00, 20, 60.0f, -1, 117, 7, 0x6B2F), + CS_MISC(CS_MISC_SET_CSFLAG_1, 110, 111, 0x0000, 0x00000000, 0x00000000, 0x0000002E, 0xFFFFFFE6, 0x00000000, 0x0000002E, 0xFFFFFFE6, 0x00000000, 0x00000000, 0x00000000), + CS_DESTINATION(CS_DEST_TEMPLE_OF_TIME_FROM_MASTER_SWORD, 230, 231), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 210, 230), + CS_CAM_EYE_SPLINE(0, 241), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x018C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x019D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x01AE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x02A8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x007A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x0064), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -42, 72, -39, 0x0074), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -42, 72, -39, 0x005F), + CS_CAM_EYE_SPLINE(80, 406), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x2F73), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x6B2F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x6169), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1, 95, -19, 0x0005), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1, 129, -34, 0x7961), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1, 173, -19, 0x742F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -17, 217, -20, 0x2E64), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -24, 328, -12, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -27, 509, -2, 0x2F73), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -41, 813, 10, 0x6B2F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -60, 1285, 38, 0x6D61), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -58, 1910, 91, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -53, 2526, 133, 0x0005), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -33, 3445, 193, 0x7961), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 0, 3960, 225, 0x742F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 7, 4317, 245, 0x6565), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 7, 4316, 245, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 7, 4316, 245, 0x2F73), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, 7, 4316, 245, 0x6B2F), + CS_CAM_AT_SPLINE(0, 270), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x2F73), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x6B2F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x6169), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x0005), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x7961), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x742F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -20, 85, -9, 0x2E64), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.0f, -20, 85, -9, 0x0000), + CS_CAM_AT_SPLINE(80, 425), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x2F73), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x6B2F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x6169), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, -1, 112, 7, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.0f, -1, 112, 7, 0x0005), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x7961), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 25, 60.0f, -1, 117, 7, 0x742F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 25, 60.0f, -1, 117, 7, 0x2E64), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x2F73), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x6B2F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x6D61), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0005), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x7961), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x742F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x6565), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.0f, -1, 117, 7, 0x2F73), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 20, 60.0f, -1, 117, 7, 0x6B2F), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_2.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_2.c index 71abf191dd..9845372b35 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_2.c +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_2.c @@ -4,96 +4,96 @@ // clang-format off CutsceneData D_808BB7A0[] = { CS_BEGIN_CUTSCENE(9, 368), - CS_CAM_EYE_LIST(0, 126), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1, 101, -110, 0x616D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 101, -110, 0x6964), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 101, -110, 0x00FB), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 101, -110, 0x0111), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 101, -109, 0x012D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 71, -110, 0x0033), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 72, -110, 0x00FB), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 72, -110, 0x00FB), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.0f, -1, 72, -110, 0x2F68), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 40.0f, -1, 72, -110, 0x612F), - CS_CAM_EYE_LIST(58, 339), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -9, 106, -3, 0xA1BC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 106, -3, 0xA5F3), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 106, -3, 0xA5EB), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 106, -3, 0xA5A2), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0xBAEE), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0xC9B8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0x0020), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0xA5A4), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0x0020), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -83, 102, -42, 0xA5E1), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -116, 81, -19, 0xA5D0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -118, 81, 54, 0x0020), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -106, 78, 116, 0xA5A6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -27, 75, 226, 0xA5E5), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 121, 82, 312, 0xC0AE), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 296, 76, 374, 0xA5E5), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 565, 80, 257, 0x0020), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 614, 80, -1, 0xA5EB), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 594, 80, -145, 0xA5E1), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 475, 80, -380, 0x0020), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 323, 80, -513, 0xA5E1), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 192, 80, -574, 0xA5D0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -45, 80, -604, 0x0020), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -142, 80, -589, 0xA5A6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -228, 80, -562, 0xA5E5), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -376, 93, -477, 0xC0AE), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -584, 95, -183, 0xA5E5), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -613, 95, -34, 0x0020), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -595, 95, 161, 0xA5EB), - CS_CAM_AT_LIST(0, 155), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 40.4f, -1, 111, 5, 0xA1BC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 40.0f, -1, 111, 5, 0xA5F3), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 40.0f, -1, 111, 5, 0xA5EB), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 40.0f, -1, 111, 5, 0xA5A2), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 40.0f, -1, 111, 5, 0xBAEE), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 40.0f, -1, 104, 8, 0xC9B8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 40.0f, -1, 104, 8, 0x0020), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.0f, -1, 104, 8, 0xA5A4), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.0f, -1, 104, 8, 0x0020), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 40.0f, -1, 104, 8, 0xA5E1), - CS_CAM_AT_LIST(58, 368), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.000004f, 0, 120, 12, 0xA1BC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, 0, 120, 12, 0xA5F3), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, 0, 120, 12, 0xA5EB), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, 0, 120, 12, 0xA5A2), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0xBAEE), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0xC9B8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0x0020), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0xA5A4), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0x0020), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E1), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5D0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0x0020), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5A6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E5), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xC0AE), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E5), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0x0020), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5EB), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E1), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0x0020), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5E1), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5D0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0x0020), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5A6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5E5), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xC0AE), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5E5), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0x0020), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.0f, -3, 95, 8, 0xA5EB), - CS_PLAYER_ACTION_LIST(1), - CS_PLAYER_ACTION(0x000C, 0, 180, 0x0000, 0x0000, 0x0000, 0, 28, -10, 0, -14, 9, 0.0f, -0.23333333f, 0.0f), - CS_LIGHTING_LIST(1), - CS_LIGHTING(0x0002, 90, 91, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFF2, 0x00000024, 0x00000000, 0xFFFFFFF2, 0x00000024), + CS_CAM_EYE_SPLINE(0, 126), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1, 101, -110, 0x616D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.0f, -1, 101, -110, 0x6964), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.0f, -1, 101, -110, 0x00FB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.0f, -1, 101, -110, 0x0111), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.0f, -1, 101, -109, 0x012D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.0f, -1, 71, -110, 0x0033), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.0f, -1, 72, -110, 0x00FB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.0f, -1, 72, -110, 0x00FB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.0f, -1, 72, -110, 0x2F68), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 40.0f, -1, 72, -110, 0x612F), + CS_CAM_EYE_SPLINE(58, 339), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.000004f, -9, 106, -3, 0xA1BC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -9, 106, -3, 0xA5F3), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -9, 106, -3, 0xA5EB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -9, 106, -3, 0xA5A2), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0xBAEE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0xC9B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0xA5A4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -67, 108, -53, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -83, 102, -42, 0xA5E1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -116, 81, -19, 0xA5D0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -118, 81, 54, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -106, 78, 116, 0xA5A6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -27, 75, 226, 0xA5E5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 121, 82, 312, 0xC0AE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 296, 76, 374, 0xA5E5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 565, 80, 257, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 614, 80, -1, 0xA5EB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 594, 80, -145, 0xA5E1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 475, 80, -380, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 323, 80, -513, 0xA5E1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 192, 80, -574, 0xA5D0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -45, 80, -604, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -142, 80, -589, 0xA5A6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -228, 80, -562, 0xA5E5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -376, 93, -477, 0xC0AE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -584, 95, -183, 0xA5E5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -613, 95, -34, 0x0020), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -595, 95, 161, 0xA5EB), + CS_CAM_AT_SPLINE(0, 155), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 40.4f, -1, 111, 5, 0xA1BC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 40.0f, -1, 111, 5, 0xA5F3), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 40.0f, -1, 111, 5, 0xA5EB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 40.0f, -1, 111, 5, 0xA5A2), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 40.0f, -1, 111, 5, 0xBAEE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 40.0f, -1, 104, 8, 0xC9B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 40.0f, -1, 104, 8, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.0f, -1, 104, 8, 0xA5A4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.0f, -1, 104, 8, 0x0020), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 40.0f, -1, 104, 8, 0xA5E1), + CS_CAM_AT_SPLINE(58, 368), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.000004f, 0, 120, 12, 0xA1BC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, 0, 120, 12, 0xA5F3), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, 0, 120, 12, 0xA5EB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, 0, 120, 12, 0xA5A2), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0xBAEE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0xC9B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0xA5A4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 60.0f, -1, 95, 11, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5D0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5A6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xC0AE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5EB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0xA5E1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, -3, 95, 8, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5E1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5D0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0x0020), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5A6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5E5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xC0AE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0xA5E5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.0f, -3, 95, 8, 0x0020), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.0f, -3, 95, 8, 0xA5EB), + CS_PLAYER_CUE_LIST(1), + CS_PLAYER_CUE(0x000C, 0, 180, 0x0000, 0x0000, 0x0000, 0, 28, -10, 0, -14, 9, 0.0f, -0.23333333f, 0.0f), + CS_LIGHT_SETTING_LIST(1), + CS_LIGHT_SETTING(0x0001, 90, 91, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFF2, 0x00000024, 0x00000000, 0xFFFFFFF2, 0x00000024), CS_MISC_LIST(1), - CS_MISC(0x000A, 90, 91, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFF8, 0xFFFFFFDD, 0x00000000, 0xFFFFFFF8, 0xFFFFFFDD, 0x00000000, 0x00000000, 0x00000000), - CS_SCENE_TRANS_FX(0x0001, 190, 210), - CS_TERMINATOR(TEMPLE_OF_TIME_AFTER_USE_MS, 210, 211), + CS_MISC(CS_MISC_SET_CSFLAG_1, 90, 91, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFF8, 0xFFFFFFDD, 0x00000000, 0xFFFFFFF8, 0xFFFFFFDD, 0x00000000, 0x00000000, 0x00000000), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 190, 210), + CS_DESTINATION(CS_DEST_TEMPLE_OF_TIME_FROM_MASTER_SWORD, 210, 211), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_3.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_3.c index 8e1106ebe1..085c1b333f 100644 --- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_3.c +++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_3.c @@ -6,91 +6,91 @@ CutsceneData D_808BBD90[] = { CS_BEGIN_CUTSCENE(11, 3000), CS_UNK_DATA_LIST(0x00000021, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFF8, 0xFFFFFFFF, 0x00000000, 0xFFFFFFF8, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000), - CS_PLAYER_ACTION_LIST(3), - CS_PLAYER_ACTION(0x0005, 0, 1, 0x0000, 0x8000, 0x0000, 0, 0, 820, 0, 0, 820, 0.0f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0002, 1, 16, 0x0000, 0x8000, 0x0000, 0, 0, 820, 0, 0, 720, 0.0f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0005, 16, 176, 0x0000, 0x8000, 0x0000, 0, 0, 720, 0, 0, 720, 0.0f, 0.0f, 1.4e-45f), - CS_NPC_ACTION_LIST(62, 3), - CS_NPC_ACTION(0x0004, 40, 70, 0x7D74, 0x0000, 0x0000, -1, 49, 719, 1, 47, 687, 0.06666667f, -0.06666667f, -0.06666667f), - CS_NPC_ACTION(0x0004, 70, 220, 0x8010, 0x0000, 0x0000, 1, 47, 687, 0, 134, 21, -0.006666667f, 0.58f, 0.006666667f), - CS_NPC_ACTION(0x0002, 220, 272, 0x8000, 0x0000, 0x0000, 0, 134, 21, 0, 101, 2, 0.0f, -0.63461536f, 0.0f), + CS_PLAYER_CUE_LIST(3), + CS_PLAYER_CUE(0x0005, 0, 1, 0x0000, 0x8000, 0x0000, 0, 0, 820, 0, 0, 820, 0.0f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0002, 1, 16, 0x0000, 0x8000, 0x0000, 0, 0, 820, 0, 0, 720, 0.0f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0005, 16, 176, 0x0000, 0x8000, 0x0000, 0, 0, 720, 0, 0, 720, 0.0f, 0.0f, 1.4e-45f), + CS_ACTOR_CUE_LIST(62, 3), + CS_ACTOR_CUE(0x0004, 40, 70, 0x7D74, 0x0000, 0x0000, -1, 49, 719, 1, 47, 687, 0.06666667f, -0.06666667f, -0.06666667f), + CS_ACTOR_CUE(0x0004, 70, 220, 0x8010, 0x0000, 0x0000, 1, 47, 687, 0, 134, 21, -0.006666667f, 0.58f, 0.006666667f), + CS_ACTOR_CUE(0x0002, 220, 272, 0x8000, 0x0000, 0x0000, 0, 134, 21, 0, 101, 2, 0.0f, -0.63461536f, 0.0f), CS_MISC_LIST(1), - CS_MISC(0x000C, 340, 341, 0x0000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFD, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFD, 0x00000000, 0x00000000, 0x00000000), + CS_MISC(CS_MISC_STOP_CUTSCENE, 340, 341, 0x0000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFD, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFD, 0x00000000, 0x00000000, 0x00000000), CS_TEXT_LIST(6), CS_TEXT_NONE(0, 50), - CS_TEXT_DISPLAY_TEXTBOX(0x70E6, 50, 60, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x70E6, 50, 60, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(60, 250), - CS_TEXT_DISPLAY_TEXTBOX(0x70E7, 250, 260, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x70E7, 250, 260, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(260, 290), - CS_TEXT_DISPLAY_TEXTBOX(0x70E8, 290, 320, 0x0000, 0x0000, 0x0000), - CS_CAM_EYE_LIST(0, 251), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0222), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x00FA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x2D70), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0085), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x01E6), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), - CS_CAM_EYE_LIST(90, 331), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0222), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x00FA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -154, 92, 236, 0x2D70), - CS_CAM_EYE_LIST(220, 491), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 122, 39, 0x0222), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 122, 39, 0x00FA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 102, 39, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 90, 39, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x2D70), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.000004f, -2, 81, 62, 0x0085), - CS_CAM_AT_LIST(0, 280), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 43, 52, 716, 0x0222), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 43, 52, 716, 0x00FA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, 43, 52, 716, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, 43, 52, 716, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, 43, 52, 716, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.0f, 63, 86, 722, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 63, 86, 722, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 63, 86, 722, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 63, 86, 722, 0x2D70), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 63, 85, 721, 0x0085), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 63, 85, 721, 0x01E6), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.0f, 62, 85, 721, 0x0000), - CS_CAM_AT_LIST(90, 360), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -105, 83, 366, 0x0222), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -104, 83, 364, 0x00FA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -63, 83, 339, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -16, 99, 255, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -30, 111, 177, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -80, 112, 121, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -80, 112, 121, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -80, 112, 121, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.0f, -80, 112, 121, 0x2D70), - CS_CAM_AT_LIST(220, 520), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 137, -55, 0x0222), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 137, -55, 0x00FA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 117, -55, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 105, -55, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x2D70), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.000004f, 0, 98, -31, 0x0085), + CS_TEXT(0x70E8, 290, 320, 0x0000, 0x0000, 0x0000), + CS_CAM_EYE_SPLINE(0, 251), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0222), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x00FA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -59, 12, 690, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x2D70), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x0085), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -31, 24, 701, 0x01E6), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -31, 24, 701, 0x0000), + CS_CAM_EYE_SPLINE(90, 331), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0222), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x00FA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -154, 92, 236, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -154, 92, 236, 0x2D70), + CS_CAM_EYE_SPLINE(220, 491), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.000004f, -2, 122, 39, 0x0222), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.000004f, -2, 122, 39, 0x00FA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.000004f, -2, 102, 39, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.000004f, -2, 90, 39, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.000004f, -2, 81, 62, 0x2D70), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.000004f, -2, 81, 62, 0x0085), + CS_CAM_AT_SPLINE(0, 280), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 43, 52, 716, 0x0222), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 43, 52, 716, 0x00FA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, 43, 52, 716, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, 43, 52, 716, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, 43, 52, 716, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.0f, 63, 86, 722, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 63, 86, 722, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 63, 86, 722, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 63, 86, 722, 0x2D70), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 63, 85, 721, 0x0085), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 63, 85, 721, 0x01E6), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.0f, 62, 85, 721, 0x0000), + CS_CAM_AT_SPLINE(90, 360), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -105, 83, 366, 0x0222), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -104, 83, 364, 0x00FA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -63, 83, 339, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -16, 99, 255, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -30, 111, 177, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -80, 112, 121, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -80, 112, 121, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -80, 112, 121, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.0f, -80, 112, 121, 0x2D70), + CS_CAM_AT_SPLINE(220, 520), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.000004f, 0, 137, -55, 0x0222), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.000004f, 0, 137, -55, 0x00FA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.000004f, 0, 117, -55, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.000004f, 0, 105, -55, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.000004f, 0, 98, -31, 0x2D70), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.000004f, 0, 98, -31, 0x0085), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c index bac2db66bb..f5699cae58 100644 --- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c +++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c @@ -90,14 +90,14 @@ void BgTreemouth_Destroy(Actor* thisx, PlayState* play) { } void func_808BC65C(BgTreemouth* this, PlayState* play) { - CsCmdActorAction* npcAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - npcAction = play->csCtx.npcActions[0]; - if (npcAction != NULL) { - if (npcAction->action == 2) { + cue = play->csCtx.actorCues[0]; + if (cue != NULL) { + if (cue->id == 2) { BgTreemouth_SetupAction(this, func_808BC80C); - } else if (npcAction->action == 3) { + } else if (cue->id == 3) { Audio_PlaySfxGeneral(NA_SE_EV_WOODDOOR_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); BgTreemouth_SetupAction(this, func_808BC6F8); @@ -115,7 +115,7 @@ void func_808BC6F8(BgTreemouth* this, PlayState* play) { this->unk_168 = 1.0f; } - if ((gSaveContext.sceneLayer == 6) && (play->csCtx.frames >= 0x2BD) && (play->state.frames % 8 == 0)) { + if ((gSaveContext.sceneLayer == 6) && (play->csCtx.curFrame > 700) && (play->state.frames % 8 == 0)) { sp34.x = (Rand_ZeroOne() * 1158.0f) + 3407.0f; sp34.y = 970.0f; sp34.z = (Rand_ZeroOne() * 2026.0f) + -2163.0f; @@ -145,14 +145,14 @@ void func_808BC8B8(BgTreemouth* this, PlayState* play) { this->dyna.actor.flags |= ACTOR_FLAG_0; if (this->dyna.actor.isTargeted) { this->dyna.actor.flags &= ~ACTOR_FLAG_0; - play->csCtx.segment = D_808BD2A0; + play->csCtx.script = D_808BD2A0; gSaveContext.cutsceneTrigger = 1; BgTreemouth_SetupAction(this, func_808BC9EC); } } } else if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 1658.0f, 0x4E20)) { Flags_SetEventChkInf(EVENTCHKINF_0C); - play->csCtx.segment = D_808BCE20; + play->csCtx.script = D_808BCE20; gSaveContext.cutsceneTrigger = 1; BgTreemouth_SetupAction(this, func_808BC9EC); } @@ -165,43 +165,46 @@ void func_808BC8B8(BgTreemouth* this, PlayState* play) { void func_808BC9EC(BgTreemouth* this, PlayState* play) { Player* player = GET_PLAYER(play); - if (play->csCtx.state == CS_STATE_UNSKIPPABLE_INIT) { + if (play->csCtx.state == CS_STATE_STOP) { if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 350.0f, 0x7530)) { player->actor.world.pos.x = 3827.0f; player->actor.world.pos.y = -161.0f; player->actor.world.pos.z = -1142.0f; } - play->csCtx.frames = 0; - play->csCtx.unk_18 = 0xFFFF; - D_8015FCC0 = 0xFFFF; - D_8015FCC2 = 0xFFFF; - D_8015FCC4 = 0xFFFF; - play->csCtx.unk_1A = 0; - play->csCtx.unk_1B = 0; - play->csCtx.state = CS_STATE_SKIPPABLE_EXEC; + play->csCtx.curFrame = 0; + + play->csCtx.camEyeSplinePointsAppliedFrame = CS_CAM_DATA_NOT_APPLIED; + gCamAtSplinePointsAppliedFrame = CS_CAM_DATA_NOT_APPLIED; + gCamEyePointAppliedFrame = CS_CAM_DATA_NOT_APPLIED; + gCamAtPointAppliedFrame = CS_CAM_DATA_NOT_APPLIED; + + play->csCtx.camAtReady = false; + play->csCtx.camEyeReady = false; + + play->csCtx.state = CS_STATE_RUN; if (play->msgCtx.choiceIndex == 0) { - play->csCtx.segment = D_808BD520; + play->csCtx.script = D_808BD520; Flags_SetEventChkInf(EVENTCHKINF_05); BgTreemouth_SetupAction(this, func_808BCAF0); } else { - play->csCtx.segment = D_808BD790; - play->csCtx.frames = 0; + play->csCtx.script = D_808BD790; + play->csCtx.curFrame = 0; BgTreemouth_SetupAction(this, func_808BC8B8); } } } void func_808BCAF0(BgTreemouth* this, PlayState* play) { - CsCmdActorAction* npcAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - npcAction = play->csCtx.npcActions[0]; - if (npcAction != NULL) { - if (npcAction->action == 2) { + cue = play->csCtx.actorCues[0]; + if (cue != NULL) { + if (cue->id == 2) { BgTreemouth_SetupAction(this, func_808BC80C); - } else if (npcAction->action == 3) { + } else if (cue->id == 3) { Audio_PlaySfxGeneral(NA_SE_EV_WOODDOOR_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); BgTreemouth_SetupAction(this, func_808BC6F8); diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth_cutscene_data.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth_cutscene_data.c index a473dc025c..6d4e8c8451 100644 --- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth_cutscene_data.c +++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth_cutscene_data.c @@ -6,59 +6,59 @@ CutsceneData D_808BCE20[] = { CS_BEGIN_CUTSCENE(12, 3000), CS_UNK_DATA_LIST(0x00000015, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000), - CS_PLAYER_ACTION_LIST(2), - CS_PLAYER_ACTION(0x0002, 0, 33, 0x54B2, 0x0000, 0x0000, 2614, 0, -451, 2808, 0, -559, 5.878788f, 0.0f, -5.878788f), - CS_PLAYER_ACTION(0x0004, 33, 42, 0x5945, 0x0000, 0x0000, 2808, 0, -559, 2857, 0, -594, 5.4444447f, 0.0f, -5.4444447f), - CS_CAM_EYE_LIST(0, 1091), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x59A8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x20B8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x6430), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 47.199955f, 2753, 46, -354, 0x0000), - CS_CAM_EYE_LIST(60, 1271), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x44B8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x8080), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2705, 67, -302, 0x2D9A), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2596, 127, -195, 0x005E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2596, 127, -195, 0xFFFF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2596, 127, -195, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 47.199955f, 2596, 127, -195, 0x5B80), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 47.199955f, 2596, 127, -195, 0x7805), - CS_CAM_AT_LIST(0, 1120), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 47.199955f, 2788, 23, -453, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 47.199955f, 2787, 23, -453, 0x44B8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 47.199955f, 2787, 23, -453, 0x8080), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 47.199955f, 2787, 23, -453, 0x2D9A), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 47.199955f, 2787, 23, -453, 0x005E), - CS_CAM_AT_LIST(60, 1300), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 47.199955f, 2788, 23, -453, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 47.199955f, 2787, 23, -453, 0x44B8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 47.199955f, 2787, 23, -453, 0x8080), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 47.199955f, 2777, 72, -378, 0x2D9A), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 47.199955f, 2673, 127, -267, 0x005E), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 47.199955f, 2673, 127, -267, 0xFFFF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 47.199955f, 2673, 127, -267, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 47.199955f, 2673, 127, -267, 0x5B80), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 47.199955f, 2673, 127, -267, 0x7805), + CS_PLAYER_CUE_LIST(2), + CS_PLAYER_CUE(0x0002, 0, 33, 0x54B2, 0x0000, 0x0000, 2614, 0, -451, 2808, 0, -559, 5.878788f, 0.0f, -5.878788f), + CS_PLAYER_CUE(0x0004, 33, 42, 0x5945, 0x0000, 0x0000, 2808, 0, -559, 2857, 0, -594, 5.4444447f, 0.0f, -5.4444447f), + CS_CAM_EYE_SPLINE(0, 1091), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x59A8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x20B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x6430), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 47.199955f, 2753, 46, -354, 0x0000), + CS_CAM_EYE_SPLINE(60, 1271), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2753, 46, -354, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2705, 67, -302, 0x2D9A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2596, 127, -195, 0x005E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2596, 127, -195, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2596, 127, -195, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 47.199955f, 2596, 127, -195, 0x5B80), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 47.199955f, 2596, 127, -195, 0x7805), + CS_CAM_AT_SPLINE(0, 1120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 47.199955f, 2788, 23, -453, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 47.199955f, 2787, 23, -453, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 47.199955f, 2787, 23, -453, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 47.199955f, 2787, 23, -453, 0x2D9A), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 47.199955f, 2787, 23, -453, 0x005E), + CS_CAM_AT_SPLINE(60, 1300), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 47.199955f, 2788, 23, -453, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 47.199955f, 2787, 23, -453, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 47.199955f, 2787, 23, -453, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 47.199955f, 2777, 72, -378, 0x2D9A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 47.199955f, 2673, 127, -267, 0x005E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 47.199955f, 2673, 127, -267, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 47.199955f, 2673, 127, -267, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 47.199955f, 2673, 127, -267, 0x5B80), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 47.199955f, 2673, 127, -267, 0x7805), CS_TEXT_LIST(4), CS_TEXT_NONE(0, 40), - CS_TEXT_DISPLAY_TEXTBOX(0x107D, 40, 60, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT(0x107D, 40, 60, 0x0000, 0xFFFF, 0xFFFF), CS_TEXT_NONE(60, 160), - CS_TEXT_DISPLAY_TEXTBOX(0x1015, 160, 170, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT(0x1015, 160, 170, 0x0000, 0xFFFF, 0xFFFF), CS_MISC_LIST(1), - CS_MISC(0x000C, 180, 200, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFF7, 0xFFFFFFDB, 0x00000000, 0xFFFFFFF7, 0xFFFFFFDB, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(46, 1), - CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -41, -28, 0, -41, -28, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(62, 4), - CS_NPC_ACTION(0x0001, 0, 1, 0x0000, 0x0000, 0x0000, 2668, 46, -490, 2668, 46, -490, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0004, 1, 50, 0x5479, 0x0000, 0x0000, 2668, 46, -490, 2890, 43, -612, 4.5306125f, -0.06122449f, -4.5306125f), - CS_NPC_ACTION(0x0004, 50, 100, 0x505C, 0x0000, 0x0000, 2890, 43, -612, 3109, 121, -705, 4.38f, 1.56f, -4.38f), - CS_NPC_ACTION(0x0001, 100, 2084, 0x0000, 0x0000, 0x0000, 3109, 121, -705, 3109, 121, -705, 0.0f, 0.0f, 0.0f), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x004C, 140, 141, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFBA, 0x00000094, 0x00000000, 0xFFFFFFBA, 0x00000094), - CS_FADE_BGM_LIST(1), - CS_FADE_BGM(0x0004, 0, 20, 0x0000, 0x00000000, 0xFFFFFFA2, 0x00000000, 0x00000027, 0xFFFFFFA2, 0x00000000, 0x00000027), + CS_MISC(CS_MISC_STOP_CUTSCENE, 180, 200, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFF7, 0xFFFFFFDB, 0x00000000, 0xFFFFFFF7, 0xFFFFFFDB, 0x00000000, 0x00000000, 0x00000000), + CS_ACTOR_CUE_LIST(46, 1), + CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -41, -28, 0, -41, -28, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(62, 4), + CS_ACTOR_CUE(0x0001, 0, 1, 0x0000, 0x0000, 0x0000, 2668, 46, -490, 2668, 46, -490, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0004, 1, 50, 0x5479, 0x0000, 0x0000, 2668, 46, -490, 2890, 43, -612, 4.5306125f, -0.06122449f, -4.5306125f), + CS_ACTOR_CUE(0x0004, 50, 100, 0x505C, 0x0000, 0x0000, 2890, 43, -612, 3109, 121, -705, 4.38f, 1.56f, -4.38f), + CS_ACTOR_CUE(0x0001, 100, 2084, 0x0000, 0x0000, 0x0000, 3109, 121, -705, 3109, 121, -705, 0.0f, 0.0f, 0.0f), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_DEKU_TREE_CS, 140, 141, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFBA, 0x00000094, 0x00000000, 0xFFFFFFBA, 0x00000094), + CS_FADE_OUT_SEQ_LIST(1), + CS_FADE_OUT_SEQ(CS_FADE_OUT_BGM_MAIN, 0, 20, 0x0000, 0x00000000, 0xFFFFFFA2, 0x00000000, 0x00000027, 0xFFFFFFA2, 0x00000000, 0x00000027), CS_END(), }; @@ -67,38 +67,38 @@ CutsceneData D_808BD2A0[] = { CS_UNK_DATA_LIST(0x00000015, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000), CS_MISC_LIST(1), - CS_MISC(0x000C, 90, 172, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFE3, 0x00000012, 0x00000000, 0xFFFFFFE3, 0x00000012, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(46, 1), - CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -27, 26, 0, -27, 26, 0.0f, 0.0f, 0.0f), - CS_CAM_EYE_LIST(0, 1091), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3740, -141, -530, 0x7065), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x6167), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x6D5D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0xF348), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 40.999928f, 3740, -141, -530, 0x9D94), - CS_CAM_EYE_REL_TO_PLAYER_LIST(60, 1151), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -4, 5, 49, 0x7065), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -4, 5, 49, 0x6167), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -4, 5, 49, 0x6D5D), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -4, 5, 49, 0xF348), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 60.0f, -4, 5, 49, 0x9D94), - CS_CAM_AT_LIST(0, 1120), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.999928f, 3777, -89, -605, 0x7065), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.999928f, 3777, -89, -605, 0x6167), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 40.999928f, 3776, -89, -605, 0x6D5D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.999928f, 3776, -89, -605, 0xF348), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 40.999928f, 3776, -89, -604, 0x9D94), - CS_CAM_AT_REL_TO_PLAYER_LIST(60, 1180), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 1, 35, -36, 0x7065), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 1, 35, -36, 0x6167), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 60.0f, 1, 35, -36, 0x6D5D), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 1, 35, -36, 0xF348), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 60.0f, 1, 35, -36, 0x9D94), + CS_MISC(CS_MISC_STOP_CUTSCENE, 90, 172, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFE3, 0x00000012, 0x00000000, 0xFFFFFFE3, 0x00000012, 0x00000000, 0x00000000, 0x00000000), + CS_ACTOR_CUE_LIST(46, 1), + CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -27, 26, 0, -27, 26, 0.0f, 0.0f, 0.0f), + CS_CAM_EYE_SPLINE(0, 1091), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 3740, -141, -530, 0x7065), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x6167), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x6D5D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0xF348), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 40.999928f, 3740, -141, -530, 0x9D94), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(60, 1151), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -4, 5, 49, 0x7065), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -4, 5, 49, 0x6167), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -4, 5, 49, 0x6D5D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -4, 5, 49, 0xF348), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -4, 5, 49, 0x9D94), + CS_CAM_AT_SPLINE(0, 1120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.999928f, 3777, -89, -605, 0x7065), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.999928f, 3777, -89, -605, 0x6167), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 40.999928f, 3776, -89, -605, 0x6D5D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.999928f, 3776, -89, -605, 0xF348), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 40.999928f, 3776, -89, -604, 0x9D94), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(60, 1180), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 1, 35, -36, 0x7065), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 1, 35, -36, 0x6167), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.0f, 1, 35, -36, 0x6D5D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 1, 35, -36, 0xF348), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.0f, 1, 35, -36, 0x9D94), CS_TEXT_LIST(2), CS_TEXT_NONE(0, 20), - CS_TEXT_DISPLAY_TEXTBOX(0x1016, 20, 80, 0x0000, 0xFFFF, 0xFFFF), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x004C, 0, 1, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFAC, 0x0000007E, 0x00000000, 0xFFFFFFAC, 0x0000007E), + CS_TEXT(0x1016, 20, 80, 0x0000, 0xFFFF, 0xFFFF), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_DEKU_TREE_CS, 0, 1, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFAC, 0x0000007E, 0x00000000, 0xFFFFFFAC, 0x0000007E), CS_END(), }; @@ -106,34 +106,34 @@ CutsceneData D_808BD520[] = { CS_BEGIN_CUTSCENE(8, 3000), CS_UNK_DATA_LIST(0x00000015, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(46, 2), - CS_NPC_ACTION(0x0001, 0, 20, 0x0000, 0x0000, 0x0000, 42, 0, 77, 42, 0, 77, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0003, 20, 357, 0x0000, 0x0000, 0x0000, 42, 0, 77, 42, 0, 77, 0.0f, 0.0f, 0.0f), - CS_CAM_EYE_LIST(0, 1151), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3740, -141, -530, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x00FB), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x010C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x0198), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x019A), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x01AB), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 40.999928f, 3739, -141, -530, 0x01BC), - CS_CAM_AT_LIST(0, 1180), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.999928f, 3777, -89, -605, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.999928f, 3777, -89, -605, 0x00FB), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.999928f, 3777, -89, -605, 0x010C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.999928f, 3763, -126, -621, 0x0198), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 40.999928f, 3763, -126, -621, 0x019A), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.999928f, 3763, -126, -621, 0x01AB), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 40.999928f, 3765, -118, -617, 0x01BC), + CS_ACTOR_CUE_LIST(46, 2), + CS_ACTOR_CUE(0x0001, 0, 20, 0x0000, 0x0000, 0x0000, 42, 0, 77, 42, 0, 77, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0003, 20, 357, 0x0000, 0x0000, 0x0000, 42, 0, 77, 42, 0, 77, 0.0f, 0.0f, 0.0f), + CS_CAM_EYE_SPLINE(0, 1151), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 3740, -141, -530, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x00FB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x010C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x0198), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x019A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.999928f, 3740, -141, -530, 0x01AB), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 40.999928f, 3739, -141, -530, 0x01BC), + CS_CAM_AT_SPLINE(0, 1180), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.999928f, 3777, -89, -605, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.999928f, 3777, -89, -605, 0x00FB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.999928f, 3777, -89, -605, 0x010C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.999928f, 3763, -126, -621, 0x0198), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 40.999928f, 3763, -126, -621, 0x019A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.999928f, 3763, -126, -621, 0x01AB), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 40.999928f, 3765, -118, -617, 0x01BC), CS_TEXT_LIST(2), CS_TEXT_NONE(0, 20), - CS_TEXT_DISPLAY_TEXTBOX(0x1017, 20, 60, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT(0x1017, 20, 60, 0x0000, 0xFFFF, 0xFFFF), CS_MISC_LIST(1), - CS_MISC(0x000C, 100, 150, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFF5, 0x00000010, 0x00000000, 0xFFFFFFF5, 0x00000010, 0x00000000, 0x00000000, 0x00000000), - CS_STOP_BGM_LIST(1), - CS_STOP_BGM(0x004C, 90, 91, 0x0000, 0x00000000, 0xFFFFFFAC, 0x00000000, 0x00000034, 0xFFFFFFAC, 0x00000000, 0x00000034), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x003D, 99, 100, 0x0000, 0x00000000, 0xFFFFFFD0, 0x00000000, 0x00000041, 0xFFFFFFD0, 0x00000000, 0x00000041), + CS_MISC(CS_MISC_STOP_CUTSCENE, 100, 150, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFF5, 0x00000010, 0x00000000, 0xFFFFFFF5, 0x00000010, 0x00000000, 0x00000000, 0x00000000), + CS_STOP_SEQ_LIST(1), + CS_STOP_SEQ(NA_BGM_DEKU_TREE_CS, 90, 91, 0x0000, 0x00000000, 0xFFFFFFAC, 0x00000000, 0x00000034, 0xFFFFFFAC, 0x00000000, 0x00000034), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_KOKIRI, 99, 100, 0x0000, 0x00000000, 0xFFFFFFD0, 0x00000000, 0x00000041, 0xFFFFFFD0, 0x00000000, 0x00000041), CS_END(), }; @@ -141,29 +141,29 @@ CutsceneData D_808BD790[] = { CS_BEGIN_CUTSCENE(8, 3000), CS_UNK_DATA_LIST(0x00000015, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x0000000F, 0xFFFFFFDE, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(46, 1), - CS_NPC_ACTION(0x0001, 0, 119, 0x0000, 0x0000, 0x0000, 42, 0, 77, 42, 0, 77, 0.0f, 0.0f, 0.0f), - CS_CAM_EYE_LIST(0, 1091), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 75.59984f, 3716, 790, -1171, 0x54EC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 75.59984f, 3716, 790, -1171, 0x555C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 75.59984f, 3716, 790, -1171, 0x55CC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 75.59984f, 3716, 790, -1171, 0x563C), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 75.59984f, 3716, 790, -1171, 0x56AC), - CS_CAM_AT_LIST(0, 1120), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 75.59984f, 3769, 718, -1186, 0x54EC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 75.59984f, 3769, 718, -1186, 0x555C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 75.59984f, 3769, 718, -1186, 0x55CC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 75.59984f, 3769, 718, -1186, 0x563C), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 75.59984f, 3769, 718, -1186, 0x56AC), + CS_ACTOR_CUE_LIST(46, 1), + CS_ACTOR_CUE(0x0001, 0, 119, 0x0000, 0x0000, 0x0000, 42, 0, 77, 42, 0, 77, 0.0f, 0.0f, 0.0f), + CS_CAM_EYE_SPLINE(0, 1091), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 75.59984f, 3716, 790, -1171, 0x54EC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 75.59984f, 3716, 790, -1171, 0x555C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 75.59984f, 3716, 790, -1171, 0x55CC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 75.59984f, 3716, 790, -1171, 0x563C), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 75.59984f, 3716, 790, -1171, 0x56AC), + CS_CAM_AT_SPLINE(0, 1120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 75.59984f, 3769, 718, -1186, 0x54EC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 75.59984f, 3769, 718, -1186, 0x555C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 75.59984f, 3769, 718, -1186, 0x55CC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 75.59984f, 3769, 718, -1186, 0x563C), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 75.59984f, 3769, 718, -1186, 0x56AC), CS_TEXT_LIST(2), CS_TEXT_NONE(0, 20), - CS_TEXT_DISPLAY_TEXTBOX(0x1018, 20, 60, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT(0x1018, 20, 60, 0x0000, 0xFFFF, 0xFFFF), CS_MISC_LIST(1), - CS_MISC(0x000C, 80, 110, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFEA, 0x00000006, 0x00000000, 0xFFFFFFEA, 0x00000006, 0x00000000, 0x00000000, 0x00000000), - CS_STOP_BGM_LIST(1), - CS_STOP_BGM(0x004C, 70, 71, 0x0000, 0x00000000, 0xFFFFFFB7, 0x00000000, 0x00000044, 0xFFFFFFB7, 0x00000000, 0x00000044), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x003D, 79, 80, 0x0000, 0x00000000, 0xFFFFFFE8, 0x00000000, 0x0000003A, 0xFFFFFFE8, 0x00000000, 0x0000003A), + CS_MISC(CS_MISC_STOP_CUTSCENE, 80, 110, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFEA, 0x00000006, 0x00000000, 0xFFFFFFEA, 0x00000006, 0x00000000, 0x00000000, 0x00000000), + CS_STOP_SEQ_LIST(1), + CS_STOP_SEQ(NA_BGM_DEKU_TREE_CS, 70, 71, 0x0000, 0x00000000, 0xFFFFFFB7, 0x00000000, 0x00000044, 0xFFFFFFB7, 0x00000000, 0x00000044), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_KOKIRI, 79, 80, 0x0000, 0x00000000, 0xFFFFFFE8, 0x00000000, 0x0000003A, 0xFFFFFFE8, 0x00000000, 0x0000003A), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c index d4c25af535..8831c99ff2 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c @@ -308,7 +308,7 @@ void BgYdanSp_FloorWebIdle(BgYdanSp* this, PlayState* play) { this->timer = 14; } } - if (player->actor.speedXZ != 0.0f) { + if (player->actor.speed != 0.0f) { if (this->unk_16C < 0.1f) { this->timer = 14; } diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c index 811cb91021..61decd6c45 100644 --- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c +++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c @@ -268,7 +268,7 @@ void BossDodongo_IntroCutscene(BossDodongo* this, PlayState* play) { } break; case 1: - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_1); Play_ClearAllSubCameras(play); this->subCamId = Play_CreateSubCamera(play); @@ -285,7 +285,7 @@ void BossDodongo_IntroCutscene(BossDodongo* this, PlayState* play) { player->actor.world.pos.x = -890.0f; player->actor.world.pos.z = -2804.0f; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; player->actor.shape.rot.y = player->actor.world.rot.y = 0x3FFF; this->subCamEye.x = -890.0f; @@ -416,7 +416,7 @@ void BossDodongo_IntroCutscene(BossDodongo* this, PlayState* play) { mainCam->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); BossDodongo_SetupWalk(this); this->unk_1DA = 50; @@ -489,7 +489,7 @@ void BossDodongo_SetupRoll(BossDodongo* this) { } void BossDodongo_SetupBlowFire(BossDodongo* this) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_1E4 = 0.0f; Animation_Change(&this->skelAnime, &object_kingdodongo_Anim_0061D4, 1.0f, 0.0f, Animation_GetLastFrame(&object_kingdodongo_Anim_0061D4), ANIMMODE_ONCE, 0.0f); @@ -499,7 +499,7 @@ void BossDodongo_SetupBlowFire(BossDodongo* this) { } void BossDodongo_SetupInhale(BossDodongo* this) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_Change(&this->skelAnime, &object_kingdodongo_Anim_008EEC, 1.0f, 0.0f, Animation_GetLastFrame(&object_kingdodongo_Anim_008EEC), ANIMMODE_ONCE, -5.0f); this->actionFunc = BossDodongo_Inhale; @@ -1274,7 +1274,7 @@ void BossDodongo_UpdateDamage(BossDodongo* this, PlayState* play) { } void BossDodongo_SetupDeathCutscene(BossDodongo* this) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_1E4 = 0.0f; Animation_Change(&this->skelAnime, &object_kingdodongo_Anim_002D0C, 1.0f, 0.0f, Animation_GetLastFrame(&object_kingdodongo_Anim_002D0C), ANIMMODE_ONCE, -5.0f); @@ -1304,7 +1304,7 @@ void BossDodongo_DeathCutscene(BossDodongo* this, PlayState* play) { switch (this->csState) { case 0: this->csState = 5; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_1); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_UNK3); @@ -1364,7 +1364,7 @@ void BossDodongo_DeathCutscene(BossDodongo* this, PlayState* play) { Math_SmoothStepToF(&this->unk_204, 1.0f, 1.0f, 0.1f, 0.0f); if (this->unk_1DA == 1) { this->csState = 8; - this->actor.speedXZ = this->unk_1E4 / 1.5f; + this->actor.speed = this->unk_1E4 / 1.5f; if (this->unk_1A2 == 0) { this->unk_238 = 250.0f; } else { @@ -1527,7 +1527,7 @@ void BossDodongo_DeathCutscene(BossDodongo* this, PlayState* play) { false); } } - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.2f, 0.1f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.2f, 0.1f, 0.0f); this->actor.world.rot.y += (s16)this->unk_238; this->unk_1C4 += (s16)this->unk_234; if (this->unk_1DA >= 0x367) { @@ -1614,7 +1614,7 @@ void BossDodongo_DeathCutscene(BossDodongo* this, PlayState* play) { this->subCamId = SUB_CAM_ID_DONE; this->csState = 100; Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_ACTIVE); - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, -890.0f, -1523.76f, -3304.0f, 0, 0, 0, WARP_DUNGEON_CHILD); diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c index f49bd76f26..b361e05887 100644 --- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c +++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c @@ -311,7 +311,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) { (fabsf(player2->actor.world.pos.x - 340.0f) < 60.0f)) { this->introState = BFD_CS_START; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -320,7 +320,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) { player2->actor.world.pos.y = 100.0f; player2->actor.world.pos.z = 0.0f; player2->actor.shape.rot.y = player2->actor.world.rot.y = -0x4000; - player2->actor.speedXZ = 0.0f; + player2->actor.speed = 0.0f; this->subCamEye.x = player2->actor.world.pos.x - 70.0f; this->subCamEye.y = player2->actor.world.pos.y + 40.0f; this->subCamEye.z = player2->actor.world.pos.z + 70.0f; @@ -377,7 +377,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) { player2->actor.world.pos.x = 380.0f; player2->actor.world.pos.y = 100.0f; player2->actor.world.pos.z = 0.0f; - player2->actor.speedXZ = 0.0f; + player2->actor.speed = 0.0f; player2->actor.shape.rot.y = player2->actor.world.rot.y = -0x4000; if (this->timers[0] == 50) { this->fogMode = 1; @@ -537,7 +537,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) { Play_ReturnToMainCam(play, this->subCamId, 0); // BFD_CS_NONE / BOSSFD_FLY_MAIN / SUB_CAM_ID_DONE this->introState = this->introFlyState = this->subCamId = 0; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); this->actionFunc = BossFd_Wait; this->handoffSignal = FD2_SIGNAL_GROUND; @@ -824,7 +824,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) { } break; case BOSSFD_SKULL_FALL: - this->fwork[BFD_TURN_RATE] = this->fwork[BFD_TURN_RATE_MAX] = this->actor.speedXZ = + this->fwork[BFD_TURN_RATE] = this->fwork[BFD_TURN_RATE_MAX] = this->actor.speed = this->fwork[BFD_FLY_SPEED] = 0; if (this->timers[0] == 1) { @@ -879,7 +879,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) { case BOSSFD_SKULL_BURN: this->actor.velocity.y = 0.0f; this->actor.world.pos.y = 110.0f; - this->fwork[BFD_TURN_RATE] = this->fwork[BFD_TURN_RATE_MAX] = this->actor.speedXZ = + this->fwork[BFD_TURN_RATE] = this->fwork[BFD_TURN_RATE_MAX] = this->actor.speed = this->fwork[BFD_FLY_SPEED] = 0.0f; if ((50 > this->timers[0]) && (this->timers[0] > 0)) { @@ -937,7 +937,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) { Math_ApproachS(&this->actor.world.rot.x, pitchToTarget, 0xA, this->fwork[BFD_TURN_RATE]); Math_ApproachF(&this->fwork[BFD_TURN_RATE], this->fwork[BFD_TURN_RATE_MAX], 1.0f, 20000.0f); - Math_ApproachF(&this->actor.speedXZ, this->fwork[BFD_FLY_SPEED], 1.0f, 0.1f); + Math_ApproachF(&this->actor.speed, this->fwork[BFD_FLY_SPEED], 1.0f, 0.1f); if (this->work[BFD_ACTION_STATE] < BOSSFD_SKULL_FALL) { func_8002D908(&this->actor); } @@ -1930,7 +1930,7 @@ void BossFd_DrawBody(PlayState* play, BossFd* this) { gDPSetEnvColor(POLY_OPA_DISP++, 255, 255, 255, (s8)this->fwork[BFD_HEAD_TEX2_ALPHA]); Matrix_Push(); temp_float = - (this->work[BFD_ACTION_STATE] >= BOSSFD_SKULL_FALL) ? -20.0f : -10.0f - ((this->actor.speedXZ - 5.0f) * 10.0f); + (this->work[BFD_ACTION_STATE] >= BOSSFD_SKULL_FALL) ? -20.0f : -10.0f - ((this->actor.speed - 5.0f) * 10.0f); segIndex = (this->work[BFD_LEAD_BODY_SEG] + sBodyIndex[0]) % 100; Matrix_Translate(this->bodySegsPos[segIndex].x, this->bodySegsPos[segIndex].y, this->bodySegsPos[segIndex].z, MTXMODE_NEW); diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index 0c78f813f9..727d00ef16 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -652,7 +652,7 @@ void BossFd2_Death(BossFd2* this, PlayState* play) { switch (this->deathState) { case DEATH_START: this->deathState = DEATH_RETREAT; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_1); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -780,7 +780,7 @@ void BossFd2_Death(BossFd2* this, PlayState* play) { mainCam->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, 0.0f, 100.0f, 0.0f, 0, 0, 0, WARP_DUNGEON_ADULT); diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c index 7e82410e6a..54fad19091 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -423,7 +423,7 @@ void BossGanon_Init(Actor* thisx, PlayState* play2) { thisx->update = func_808E1EB4; thisx->draw = func_808E229C; if (1) {} - thisx->speedXZ = 11.0f; + thisx->speed = 11.0f; if (thisx->params == 0xC8) { this->timers[0] = 7; @@ -439,7 +439,7 @@ void BossGanon_Init(Actor* thisx, PlayState* play2) { // light ball (anything from 0x64 - 0xC7) thisx->update = BossGanon_LightBall_Update; thisx->draw = BossGanon_LightBall_Draw; - thisx->speedXZ = 12.0f; + thisx->speed = 12.0f; xDistFromPlayer = player->actor.world.pos.x - thisx->world.pos.x; yDistFromPlayer = (player->actor.world.pos.y + 30.0f) - thisx->world.pos.y; @@ -557,7 +557,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { this->actor.shape.yOffset = -7000.0f; this->actor.shape.rot.y = 0; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); this->csCamIndex = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -1127,7 +1127,7 @@ void BossGanon_IntroCutscene(BossGanon* this, PlayState* play) { mainCam->at = this->csCamAt; Play_ReturnToMainCam(play, this->csCamIndex, 0); this->csState = this->csCamIndex = 0; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); BossGanon_SetupWait(this, play); } @@ -1233,7 +1233,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) { switch (this->csState) { case 0: - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); this->csCamIndex = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -1504,7 +1504,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) { break; case 100: - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); this->csCamIndex = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -1791,7 +1791,7 @@ void BossGanon_DeathAndTowerCutscene(BossGanon* this, PlayState* play) { Play_ReturnToMainCam(play, this->csCamIndex, 0); this->csState = 109; this->csCamIndex = 0; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); Flags_SetSwitch(play, 0x37); } @@ -3969,7 +3969,7 @@ void BossGanon_LightBall_Update(Actor* thisx, PlayState* play2) { } if (player->meleeWeaponAnimation >= PLAYER_MWA_SPIN_ATTACK_1H) { - this->actor.speedXZ = 20.0f; + this->actor.speed = 20.0f; } break; } else { @@ -4000,7 +4000,7 @@ void BossGanon_LightBall_Update(Actor* thisx, PlayState* play2) { case 1: if ((ganondorf->actionFunc == BossGanon_PlayTennis) && (ganondorf->unk_1C2 == 1)) { - minReflectDist = (this->actor.speedXZ >= 19.0f) ? 250.0f : 170.0f; + minReflectDist = (this->actor.speed >= 19.0f) ? 250.0f : 170.0f; if (sqrtf(SQ(xDistFromGanondorf) + SQ(yDistFromGanondorf) + SQ(zDistFromGanondorf)) < minReflectDist) { @@ -4226,7 +4226,7 @@ void func_808E1EB4(Actor* thisx, PlayState* play2) { if (sqrtf(SQ(xDiff) + SQ(zDiff) + SQ(yDiff)) < 40.0f) { this->unk_1C2 = 2; this->timers[0] = 30; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->actor.params == 0xC8) { func_80078884(NA_SE_EN_GANON_DAMAGE2); @@ -4338,7 +4338,7 @@ void func_808E2544(Actor* thisx, PlayState* play) { switch (this->unk_1C2) { if (1) {} case 0: - this->actor.speedXZ = 40.0f; + this->actor.speed = 40.0f; Math_ApproachF(&this->fwork[1], 255.0f, 1.0f, 40.0f); xDiff = dorf->unk_278.x - this->actor.world.pos.x; yDiff = dorf->unk_278.y - this->actor.world.pos.y; @@ -4360,7 +4360,7 @@ void func_808E2544(Actor* thisx, PlayState* play) { if (sqrtf(SQ(xDiff) + SQ(zDiff) + SQ(yDiff)) < 45.0f) { this->unk_1C2 = 1; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } break; @@ -4380,7 +4380,7 @@ void func_808E2544(Actor* thisx, PlayState* play) { this->collider.dim.height = 20; this->collider.dim.yShift = -10; - this->actor.speedXZ = 20.0f; + this->actor.speed = 20.0f; this->fwork[1] = 255.0f; this->unk_1F0 = player->actor.world.pos; new_var = this->unk_1F0.x - this->actor.world.pos.x; @@ -4411,7 +4411,7 @@ void func_808E2544(Actor* thisx, PlayState* play) { if ((player->meleeWeaponState != 0) && (player->meleeWeaponAnimation >= PLAYER_MWA_SPIN_ATTACK_1H) && (this->actor.xzDistToPlayer < 80.0f)) { this->unk_1C2 = 0xC; - this->actor.speedXZ = -30.0f; + this->actor.speed = -30.0f; func_8002D908(&this->actor); func_8002D7EC(&this->actor); this->unk_1F0 = dorf->unk_1FC; @@ -4427,7 +4427,7 @@ void func_808E2544(Actor* thisx, PlayState* play) { if (!(acHitInfo->toucher.dmgFlags & DMG_SHIELD) || Player_HasMirrorShieldEquipped(play)) { Rumble_Request(this->actor.xyzDistToPlayerSq, 180, 20, 100); this->unk_1C2 = 0xC; - this->actor.speedXZ = -30.0f; + this->actor.speed = -30.0f; func_8002D908(&this->actor); func_8002D7EC(&this->actor); @@ -4457,7 +4457,7 @@ void func_808E2544(Actor* thisx, PlayState* play) { if (sqrtf(SQ(xDiff) + SQ(zDiff) + SQ(yDiff)) < 30.0f) { this->unk_1C2 = 1; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (dorf->timers[2] == 0) { func_8002F6D4(play, &this->actor, 3.0f, this->actor.world.rot.y, 0.0f, 0x50); @@ -4477,7 +4477,7 @@ void func_808E2544(Actor* thisx, PlayState* play) { break; case 12: - this->actor.speedXZ = 20.0f; + this->actor.speed = 20.0f; xDiff = this->unk_1F0.x - this->actor.world.pos.x; yDiff = this->unk_1F0.y - this->actor.world.pos.y; @@ -4508,7 +4508,7 @@ void func_808E2544(Actor* thisx, PlayState* play) { this->timers[0] = 150; numEffects = 40; this->unk_1C2 = 1; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } break; } @@ -4520,7 +4520,7 @@ void func_808E2544(Actor* thisx, PlayState* play) { (fabsf(this->actor.world.pos.z) > (465.0f + xzDist)) || (this->actor.world.pos.y < 0.0f) || (this->actor.world.pos.y > 450.0f)) { this->unk_1C2 = 1; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; numEffects = 10; BossGanon_CheckFallingPlatforms(this, play, &this->actor.world.pos); Actor_SpawnAsChild(&play->actorCtx, &dorf->actor, play, ACTOR_BOSS_GANON, this->actor.world.pos.x, diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index 2f1430593d..c9bd4d88c0 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -195,7 +195,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { case 0: objectIdx = Object_GetIndex(&play->objectCtx, OBJECT_GANON_ANIME3); if (Object_IsLoaded(&play->objectCtx, objectIdx)) { - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -323,7 +323,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { camera->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); this->unk_39C = 5; this->unk_398 = 0; @@ -335,7 +335,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { Message_CloseTextbox(play); this->unk_39C = 10; this->unk_398 = 0; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE); @@ -876,7 +876,7 @@ void func_808FD5F4(BossGanon2* this, PlayState* play) { camera->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); this->unk_39C = 0; this->unk_337 = 1; @@ -1069,7 +1069,7 @@ void func_808FFEBC(BossGanon2* this, PlayState* play) { } SkelAnime_Update(&this->skelAnime); - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 1.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 1.0f); if (this->unk_1A2[0] == 0) { func_809002CC(this, play); @@ -1091,7 +1091,7 @@ void func_808FFFE0(BossGanon2* this, PlayState* play) { s16 target; SkelAnime_Update(&this->skelAnime); - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 1.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 1.0f); if (this->unk_1A2[0] == 0) { func_809002CC(this, play); @@ -1115,7 +1115,7 @@ void func_809000A0(BossGanon2* this, PlayState* play) { void func_80900104(BossGanon2* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 1.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 1.0f); switch (this->unk_1AC) { case 0: @@ -1148,7 +1148,7 @@ void func_80900210(BossGanon2* this, PlayState* play) { void func_8090026C(BossGanon2* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 2.0f); if (Animation_OnFrame(&this->skelAnime, this->unk_194)) { func_809002CC(this, play); @@ -1201,7 +1201,7 @@ void func_80900344(BossGanon2* this, PlayState* play) { } SkelAnime_Update(&this->skelAnime); - Math_ApproachF(&this->actor.speedXZ, phi_f0, 0.5f, 1.0f); + Math_ApproachF(&this->actor.speed, phi_f0, 0.5f, 1.0f); if (this->unk_1A2[0] == 0) { func_808FFDB0(this, play); @@ -1245,7 +1245,7 @@ void func_80900650(BossGanon2* this, PlayState* play) { this->unk_312 = 2; } - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 1.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 1.0f); if (Animation_OnFrame(&this->skelAnime, this->unk_194)) { this->unk_311 = 1 - this->unk_311; @@ -1295,7 +1295,7 @@ void func_80900890(BossGanon2* this, PlayState* play) { switch (this->unk_39C) { case 0: - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE); @@ -1347,13 +1347,13 @@ void func_80900890(BossGanon2* this, PlayState* play) { mainCam2->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); this->unk_39C = 3; } break; case 10: - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE); @@ -1380,7 +1380,7 @@ void func_80900890(BossGanon2* this, PlayState* play) { this->unk_39C = 3; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); } break; @@ -1428,7 +1428,7 @@ void func_80900890(BossGanon2* this, PlayState* play) { break; } - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 1.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 1.0f); } void func_80901020(BossGanon2* this, PlayState* play) { @@ -1481,7 +1481,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) { switch (this->unk_39C) { case 0: - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE); @@ -1493,7 +1493,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) { this->unk_1A2[2] = 0; this->unk_336 = 0; this->unk_324 = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_31A = this->unk_31C; play->envCtx.lightBlend = 0.0f; FALLTHROUGH; @@ -1625,7 +1625,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) { mainCam->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); this->unk_39C = 6; } @@ -1637,7 +1637,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) { temp_a0_2 = Math_Atan2S(temp_f12, temp_f14) - player->actor.shape.rot.y; if ((ABS(temp_a0_2) < 0x2000) && (sqrtf(SQ(temp_f14) + SQ(temp_f12)) < 70.0f) && (player->meleeWeaponState != 0) && (player->heldItemAction == PLAYER_IA_SWORD_MASTER)) { - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE); diff --git a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c index 030a618f02..034b74563d 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -821,7 +821,7 @@ void BossGanondrof_Charge(BossGanondrof* this, PlayState* play) { if (this->timers[0] == 0) { this->work[GND_ACTION_STATE] = CHARGE_START; this->timers[0] = 10; - thisx->speedXZ = 0.0f; + thisx->speed = 0.0f; this->fwork[GND_END_FRAME] = Animation_GetLastFrame(&gPhantomGanonChargeStartAnim); Animation_MorphToPlayOnce(&this->skelAnime, &gPhantomGanonChargeStartAnim, 0.0f); } @@ -849,7 +849,7 @@ void BossGanondrof_Charge(BossGanondrof* this, PlayState* play) { func_8002D908(thisx); func_8002D7EC(thisx); - Math_ApproachF(&thisx->speedXZ, 10.0f, 1.0f, 0.5f); + Math_ApproachF(&thisx->speed, 10.0f, 1.0f, 0.5f); if ((sqrtf(SQ(dxCenter) + SQ(dzCenter)) > 280.0f) || (thisx->xyzDistToPlayerSq < SQ(100.0f))) { this->work[GND_ACTION_STATE] = CHARGE_FINISH; this->timers[0] = 20; @@ -865,15 +865,15 @@ void BossGanondrof_Charge(BossGanondrof* this, PlayState* play) { } if (sqrtf(SQ(dxCenter) + SQ(dzCenter)) > 280.0f) { - Math_ApproachZeroF(&thisx->speedXZ, 1.0f, 2.0f); + Math_ApproachZeroF(&thisx->speed, 1.0f, 2.0f); this->timers[0] = 0; } if (this->timers[0] == 0) { - Math_ApproachZeroF(&thisx->speedXZ, 1.0f, 2.0f); + Math_ApproachZeroF(&thisx->speed, 1.0f, 2.0f); Math_ApproachZeroF(&thisx->velocity.y, 1.0f, 2.0f); Math_ApproachS(&thisx->shape.rot.y, thisx->yawTowardsPlayer, 5, 0x7D0); - if ((thisx->speedXZ <= 0.5f) && (fabsf(thisx->velocity.y) <= 0.1f)) { + if ((thisx->speed <= 0.5f) && (fabsf(thisx->velocity.y) <= 0.1f)) { BossGanondrof_SetupNeutral(this, -10.0f); this->timers[0] = 30; this->flyMode = GND_FLY_NEUTRAL; @@ -955,7 +955,7 @@ void BossGanondrof_Death(BossGanondrof* this, PlayState* play) { switch (this->deathState) { case DEATH_START: - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_1); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -963,7 +963,7 @@ void BossGanondrof_Death(BossGanondrof* this, PlayState* play) { Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE); osSyncPrintf("8\n"); this->deathState = DEATH_THROES; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; this->timers[0] = 50; this->subCamEye = mainCam->eye; this->subCamAt = mainCam->at; @@ -1117,7 +1117,7 @@ void BossGanondrof_Death(BossGanondrof* this, PlayState* play) { mainCam->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_B_HEART, GND_BOSSROOM_CENTER_X, GND_BOSSROOM_CENTER_Y, GND_BOSSROOM_CENTER_Z + 200.0f, 0, 0, 0, 0); diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index faca51c2ed..733292fe42 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -405,7 +405,7 @@ void BossGoma_SetupDefeated(BossGoma* this, PlayState* play) { this->framesUntilNextAction = 1200; this->actionState = 0; this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.shape.shadowScale = 0.0f; SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 1); Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_DEAD); @@ -452,7 +452,7 @@ void BossGoma_SetupCeilingIdle(BossGoma* this) { void BossGoma_SetupFallJump(BossGoma* this) { Animation_Change(&this->skelanime, &gGohmaLandAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -5.0f); this->actionFunc = BossGoma_FallJump; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = -2.0f; } @@ -463,7 +463,7 @@ void BossGoma_SetupFallJump(BossGoma* this) { void BossGoma_SetupFallStruckDown(BossGoma* this) { Animation_Change(&this->skelanime, &gGohmaCrashAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -5.0f); this->actionFunc = BossGoma_FallStruckDown; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = -2.0f; } @@ -486,7 +486,7 @@ void BossGoma_SetupWallClimb(BossGoma* this) { Animation_Change(&this->skelanime, &gGohmaClimbAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gGohmaClimbAnim), ANIMMODE_LOOP, -10.0f); this->actionFunc = BossGoma_WallClimb; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; } @@ -498,7 +498,7 @@ void BossGoma_SetupCeilingMoveToCenter(BossGoma* this) { Animation_Change(&this->skelanime, &gGohmaWalkAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gGohmaWalkAnim), ANIMMODE_LOOP, -5.0f); this->actionFunc = BossGoma_CeilingMoveToCenter; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; this->framesUntilNextAction = Rand_S16Offset(30, 60); @@ -595,7 +595,7 @@ void BossGoma_UpdateCeilingMovement(BossGoma* this, PlayState* play, f32 dz, f32 roomCenter.z += dz; // dz is always 0 SkelAnime_Update(&this->skelanime); - Math_ApproachF(&this->actor.speedXZ, targetSpeedXZ, 0.5f, 2.0f); + Math_ApproachF(&this->actor.speed, targetSpeedXZ, 0.5f, 2.0f); if (rotateTowardsCenter) { Math_ApproachS(&this->actor.world.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &roomCenter) + 0x8000, 3, @@ -628,7 +628,7 @@ void BossGoma_SetupEncounterState4(BossGoma* this, PlayState* play) { player = GET_PLAYER(play); this->actionState = 4; this->actor.flags |= ACTOR_FLAG_0; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_1); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_UNK3); @@ -674,7 +674,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) { Player* player = GET_PLAYER(play); s32 pad[2]; - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 2.0f); switch (this->actionState) { case 0: // wait for the player to enter the room @@ -693,7 +693,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) { break; case 1: // player entered the room - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); this->subCamId = Play_CreateSubCamera(play); osSyncPrintf("MAKE CAMERA !!! 1 !!!!!!!!!!!!!!!!!!!!!!!!!!\n"); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -725,7 +725,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) { player->actor.world.pos.x = 150.0f; player->actor.world.pos.z = 300.0f; player->actor.world.rot.y = player->actor.shape.rot.y; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; if (this->framesUntilNextAction == 0) { // (-20, 25, -65) is towards room center @@ -767,7 +767,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) { mainCam->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); this->actionState = 3; } @@ -777,7 +777,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) { if (fabsf(this->actor.projectedPos.x) < 150.0f && fabsf(this->actor.projectedPos.y) < 250.0f && this->actor.projectedPos.z < 800.0f && this->actor.projectedPos.z > 0.0f) { this->lookedAtFrames++; - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 2.0f); Math_ApproachS(&this->actor.world.rot.y, Actor_WorldYawTowardActor(&this->actor, &GET_PLAYER(play)->actor) + 0x8000, 2, 0xBB8); this->eyeLidBottomRotX = this->eyeLidTopRotX = this->eyeIrisRotX = this->eyeIrisRotY = 0; @@ -845,7 +845,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) { if (this->framesUntilNextAction < 0) { //! @bug ? unreachable, timer is >= 0 SkelAnime_Update(&this->skelanime); - Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 1.0f, 2.0f); } else { BossGoma_UpdateCeilingMovement(this, play, 0.0f, -7.5f, false); } @@ -857,7 +857,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) { if (this->framesUntilNextAction == 0) { this->actionState = 9; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = -2.0f; Animation_Change(&this->skelanime, &gGohmaInitialLandingAnim, 1.0f, 0.0f, @@ -963,7 +963,7 @@ void BossGoma_Encounter(BossGoma* this, PlayState* play) { BossGoma_SetupFloorMain(this); this->disableGameplayLogic = false; this->patienceTimer = 200; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); } break; @@ -1052,7 +1052,7 @@ void BossGoma_Defeated(BossGoma* this, PlayState* play) { switch (this->actionState) { case 0: this->actionState = 1; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_1); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_UNK3); @@ -1180,7 +1180,7 @@ void BossGoma_Defeated(BossGoma* this, PlayState* play) { mainCam->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); Actor_Kill(&this->actor); } @@ -1255,7 +1255,7 @@ void BossGoma_Defeated(BossGoma* this, PlayState* play) { */ void BossGoma_FloorAttackPosture(BossGoma* this, PlayState* play) { SkelAnime_Update(&this->skelanime); - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 2.0f); if (this->skelanime.curFrame >= (19.0f + 1.0f / 3.0f) && this->skelanime.curFrame <= 30.0f) { Math_ApproachS(&this->actor.world.rot.y, Actor_WorldYawTowardActor(&this->actor, &GET_PLAYER(play)->actor), 3, @@ -1406,7 +1406,7 @@ void BossGoma_FloorStunned(BossGoma* this, PlayState* play) { Actor_SpawnFloorDustRing(play, &this->actor, &this->actor.world.pos, 55.0f, 4, 8.0f, 500, 10, true); } - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 1.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 1.0f); if (this->framesUntilNextAction == 0) { BossGoma_SetupFloorMain(this); @@ -1468,7 +1468,7 @@ void BossGoma_CeilingSpawnGohmas(BossGoma* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_UNARI); } - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 2.0f); this->spawnGohmasActionTimer++; switch (this->spawnGohmasActionTimer) { @@ -1530,7 +1530,7 @@ void BossGoma_CeilingPrepareSpawnGohmas(BossGoma* this, PlayState* play) { */ void BossGoma_FloorIdle(BossGoma* this, PlayState* play) { SkelAnime_Update(&this->skelanime); - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 2.0f); Math_ApproachS(&this->actor.shape.rot.x, 0, 2, 0xBB8); if (this->framesUntilNextAction == 0) { @@ -1547,7 +1547,7 @@ void BossGoma_CeilingIdle(BossGoma* this, PlayState* play) { s16 i; SkelAnime_Update(&this->skelanime); - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 2.0f); if (this->framesUntilNextAction == 0) { if (this->childrenGohmaState[0] == 0 && this->childrenGohmaState[1] == 0 && this->childrenGohmaState[2] == 0) { @@ -1613,19 +1613,19 @@ void BossGoma_FloorMain(BossGoma* this, PlayState* play) { BossGoma_SetupFloorAttackPosture(this); } - Math_ApproachF(&this->actor.speedXZ, 10.0f / 3.0f, 0.5f, 2.0f); + Math_ApproachF(&this->actor.speed, 10.0f / 3.0f, 0.5f, 2.0f); Math_ApproachS(&this->actor.world.rot.y, rot, 5, 0x3E8); } else { if (this->timer != 0) { // move away from the player, walking backwards - Math_ApproachF(&this->actor.speedXZ, -10.0f, 0.5f, 2.0f); + Math_ApproachF(&this->actor.speed, -10.0f, 0.5f, 2.0f); this->skelanime.playSpeed = -3.0f; if (this->timer == 1) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } else { // move away from the player, walking forwards - Math_ApproachF(&this->actor.speedXZ, 20.0f / 3.0f, 0.5f, 2.0f); + Math_ApproachF(&this->actor.speed, 20.0f / 3.0f, 0.5f, 2.0f); this->skelanime.playSpeed = 2.0f; rot += 0x8000; } diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index f6bb5b0379..47b24f855f 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -613,7 +613,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { Math_ApproachS(&this->tentRot[indS1].z, tempf2, 1.0f / this->tentMaxAngle, this->tentSpeed); } this->targetPos = this->actor.world.pos; - Math_ApproachF(&this->actor.speedXZ, 0.75f, 1.0f, 0.04f); + Math_ApproachF(&this->actor.speed, 0.75f, 1.0f, 0.04f); if (this->work[MO_TENT_ACTION_STATE] == MO_TENT_SWING) { Math_ApproachS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer + this->attackAngleMod, 0xA, 0x1F4); @@ -757,7 +757,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { } if (this->work[MO_TENT_ACTION_STATE] == MO_TENT_GRAB) { player->unk_850 = 0xA; - player->actor.speedXZ = player->actor.velocity.y = 0; + player->actor.speed = player->actor.velocity.y = 0; Math_ApproachF(&player->actor.world.pos.x, this->grabPosRot.pos.x, 0.5f, 20.0f); Math_ApproachF(&player->actor.world.pos.y, this->grabPosRot.pos.y, 0.5f, 20.0f); Math_ApproachF(&player->actor.world.pos.z, this->grabPosRot.pos.z, 0.5f, 20.0f); @@ -774,7 +774,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { this->mashCounter = 0; this->sfxTimer = 30; Audio_ResetIncreasingTranspose(); - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE); @@ -822,7 +822,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { player->actor.world.rot.y = player->actor.shape.rot.y = this->grabPosRot.rot.y; player->actor.world.rot.z = player->actor.shape.rot.z = this->grabPosRot.rot.z; player->actor.velocity.y = 0; - player->actor.speedXZ = 0; + player->actor.speed = 0; Math_ApproachF(&this->fwork[MO_TENT_MAX_STRETCH], 1.0f, 0.5f, 0.01); Math_ApproachF(&this->tentMaxAngle, 0.5f, 1.0f, 0.005f); Math_ApproachF(&this->tentSpeed, 480.0f, 1.0f, 10.0f); @@ -901,7 +901,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { mainCam2->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); } } for (indS1 = 0; indS1 < 41; indS1++) { @@ -999,7 +999,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { Math_ApproachS(&this->tentRot[indS1].x, tempf1, 1.0f / this->tentMaxAngle, this->tentSpeed); Math_ApproachS(&this->tentRot[indS1].z, tempf2, 1.0f / this->tentMaxAngle, this->tentSpeed); } - this->actor.speedXZ = 0.0; + this->actor.speed = 0.0; Math_ApproachF(&this->fwork[MO_TENT_MAX_STRETCH], 4.3f, 0.5f, 0.04); Math_ApproachF(&this->tentPulse, 1.3f, 0.5f, 0.05f); break; @@ -1018,7 +1018,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { Math_ApproachS(&this->tentRot[indS1].x, tempf1, 1.0f / this->tentMaxAngle, this->tentSpeed); Math_ApproachS(&this->tentRot[indS1].z, tempf2, 1.0f / this->tentMaxAngle, this->tentSpeed); } - this->actor.speedXZ = 0.0; + this->actor.speed = 0.0; Math_ApproachF(&this->tentPulse, 1.3f, 0.5f, 0.05f); break; case MO_TENT_DEATH_2: @@ -1034,7 +1034,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) { Math_ApproachS(&this->tentRot[indS1].x, tempf1, 1.0f / this->tentMaxAngle, this->tentSpeed); Math_ApproachS(&this->tentRot[indS1].z, tempf2, 1.0f / this->tentMaxAngle, this->tentSpeed); } - this->actor.speedXZ = 0.0; + this->actor.speed = 0.0; this->noBubbles--; Math_ApproachF(&this->fwork[MO_TENT_MAX_STRETCH], 0.1f, 0.1f, 0.03); Math_ApproachF(&this->tentPulse, 0.02f, 0.5f, 0.015f); @@ -1224,12 +1224,12 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) { ((fabsf(player->actor.world.pos.z - -180.0f) < 40.0f) && (fabsf(player->actor.world.pos.x - -180.0f) < 40.0f))) { // checks if Link is on one of the four platforms - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->csState = MO_INTRO_START; this->timers[2] = 50; this->work[MO_TENT_VAR_TIMER] = this->work[MO_TENT_MOVE_TIMER] = 0; @@ -1245,7 +1245,7 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) { player->actor.world.pos.x = 180.0f; player->actor.world.pos.z = -130.0f; player->actor.shape.rot.y = player->actor.world.rot.y = 0; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; this->subCamEye.x = -424.0f; this->subCamEye.y = -190.0f; this->subCamEye.z = 180.0f; @@ -1330,7 +1330,7 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) { sp80 = 1.5f; sp7C = (f32)0x600; } - Math_ApproachF(&this->actor.speedXZ, sp80, 1.0f, sp78); + Math_ApproachF(&this->actor.speed, sp80, 1.0f, sp78); Math_ApproachF(&this->subCamYawRate, sp7C, 1.0f, 128.0f); if (this->work[MO_TENT_MOVE_TIMER] == 525) { func_8002DF54(play, &this->actor, PLAYER_CSMODE_2); @@ -1345,7 +1345,7 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) { player->actor.shape.rot.y = player->actor.world.rot.y; this->subCamYawShake = 0.0f; sMorphaTent1->baseAlpha = 150.0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->timers[2] = 200; this->subCamFov = 60.0f; this->actor.world.pos = sMorphaTent1->actor.world.pos; @@ -1445,7 +1445,7 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) { Play_ReturnToMainCam(play, this->subCamId, 0); // MO_BATTLE / SUB_CAM_ID_DONE this->csState = this->subCamId = 0; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); } break; @@ -1454,7 +1454,7 @@ void BossMo_IntroCs(BossMo* this, PlayState* play) { sMorphaTent1->actor.world.pos.x = 180.0f; sMorphaTent1->actor.world.pos.z = -360.0f; sMorphaTent1->actor.prevPos = sMorphaTent1->actor.world.pos; - sMorphaTent1->actor.speedXZ = 0.0f; + sMorphaTent1->actor.speed = 0.0f; sMorphaTent1->actor.shape.rot.y = sMorphaTent1->actor.yawTowardsPlayer; } if (this->subCamId != SUB_CAM_ID_DONE) { @@ -1510,7 +1510,7 @@ void BossMo_DeathCs(BossMo* this, PlayState* play) { switch (this->csState) { case MO_DEATH_START: - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -1680,7 +1680,7 @@ void BossMo_DeathCs(BossMo* this, PlayState* play) { mainCam->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); sMorphaTent1->actor.world.pos.y = -1000.0f; } @@ -1763,7 +1763,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) { this->work[MO_TENT_ACTION_STATE] = MO_CORE_STUNNED; this->timers[0] = 25; - this->actor.speedXZ = 15.0f; + this->actor.speed = 15.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer + 0x8000; this->work[MO_CORE_DMG_FLASH_TIMER] = 15; @@ -1811,7 +1811,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) { this->work[MO_TENT_ACTION_STATE] = MO_CORE_STUNNED; this->timers[0] = 30; this->work[MO_TENT_INVINC_TIMER] = 10; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } for (i = 0; i < 10; i++) { Vec3f pos; @@ -1903,7 +1903,7 @@ void BossMo_Core(BossMo* this, PlayState* play) { ((this->work[MO_TENT_ACTION_STATE] == MO_CORE_MOVE) || (this->work[MO_TENT_ACTION_STATE] == MO_CORE_MAKE_TENT))) { this->work[MO_TENT_ACTION_STATE] = MO_CORE_UNDERWATER; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->work[MO_CORE_WAIT_IN_WATER] = 0; } switch (this->work[MO_TENT_ACTION_STATE]) { @@ -1913,7 +1913,7 @@ void BossMo_Core(BossMo* this, PlayState* play) { ((sMorphaTent1->work[MO_TENT_ACTION_STATE] == MO_TENT_WAIT) || (sMorphaTent1->work[MO_TENT_ACTION_STATE] == MO_TENT_READY)) && (this->actor.world.pos.y < MO_WATER_LEVEL(play))) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->work[MO_TENT_ACTION_STATE] = MO_CORE_MAKE_TENT; if (sMorphaTent1->work[MO_TENT_ACTION_STATE] == MO_TENT_WAIT) { sMorphaTent1->work[MO_TENT_ACTION_STATE] = MO_TENT_SPAWN; @@ -1937,13 +1937,13 @@ void BossMo_Core(BossMo* this, PlayState* play) { this->work[MO_TENT_ACTION_STATE] = MO_CORE_ATTACK; this->work[MO_CORE_POS_IN_TENT] = 0; this->timers[0] = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } break; case MO_CORE_UNDERWATER: if (player->actor.world.pos.y >= MO_WATER_LEVEL(play)) { this->work[MO_TENT_ACTION_STATE] = MO_CORE_MOVE; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } break; case MO_CORE_STUNNED: @@ -1955,7 +1955,7 @@ void BossMo_Core(BossMo* this, PlayState* play) { if (this->actor.world.pos.y < MO_WATER_LEVEL(play)) { this->work[MO_TENT_ACTION_STATE] = MO_CORE_MAKE_TENT; this->timers[0] = 50; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } break; case MO_CORE_UNUSED: @@ -1984,7 +1984,7 @@ void BossMo_Core(BossMo* this, PlayState* play) { this->work[MO_TENT_ACTION_STATE] = MO_CORE_MAKE_TENT; this->timers[0] = 100; this->tentSpeed = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } this->timers[0] = 0; break; @@ -2023,22 +2023,22 @@ void BossMo_Core(BossMo* this, PlayState* play) { if (this->work[MO_CORE_POS_IN_TENT] <= 1) { this->targetPos.y -= 20.0f; } - Math_ApproachF(&this->actor.world.pos.x, this->targetPos.x, 0.5f, this->actor.speedXZ); - Math_ApproachF(&this->actor.world.pos.y, this->targetPos.y, 0.5f, this->actor.speedXZ); - Math_ApproachF(&this->actor.world.pos.z, this->targetPos.z, 0.5f, this->actor.speedXZ); - Math_ApproachF(&this->actor.speedXZ, 30.0f, 1.0f, 1.0f); + Math_ApproachF(&this->actor.world.pos.x, this->targetPos.x, 0.5f, this->actor.speed); + Math_ApproachF(&this->actor.world.pos.y, this->targetPos.y, 0.5f, this->actor.speed); + Math_ApproachF(&this->actor.world.pos.z, this->targetPos.z, 0.5f, this->actor.speed); + Math_ApproachF(&this->actor.speed, 30.0f, 1.0f, 1.0f); } else { switch (this->work[MO_TENT_ACTION_STATE]) { case MO_CORE_MOVE: sp80 = Math_SinS(this->work[MO_TENT_VAR_TIMER] * 0x800) * 100.0f; sp7C = Math_CosS(this->work[MO_TENT_VAR_TIMER] * 0x800) * 100.0f; - Math_ApproachF(&this->actor.world.pos.x, sMorphaTent1->targetPos.x + sp80, 0.05f, this->actor.speedXZ); - Math_ApproachF(&this->actor.world.pos.z, sMorphaTent1->targetPos.z + sp7C, 0.05f, this->actor.speedXZ); - Math_ApproachF(&this->actor.speedXZ, 10.0f, 1.0f, 0.5f); + Math_ApproachF(&this->actor.world.pos.x, sMorphaTent1->targetPos.x + sp80, 0.05f, this->actor.speed); + Math_ApproachF(&this->actor.world.pos.z, sMorphaTent1->targetPos.z + sp7C, 0.05f, this->actor.speed); + Math_ApproachF(&this->actor.speed, 10.0f, 1.0f, 0.5f); break; case MO_CORE_STUNNED: - this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speedXZ; - this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speedXZ; + this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speed; + this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speed; this->actor.world.pos.x += this->actor.velocity.x; this->actor.world.pos.z += this->actor.velocity.z; break; @@ -2097,7 +2097,7 @@ void BossMo_Core(BossMo* this, PlayState* play) { this->targetPos.x = sMorphaTent1->targetPos.x; this->targetPos.y = sMorphaTent1->actor.world.pos.y - 40.0f; this->targetPos.z = sMorphaTent1->targetPos.z; - Math_ApproachF(&this->actor.speedXZ, 10.0f, 1.0f, 0.5f); + Math_ApproachF(&this->actor.speed, 10.0f, 1.0f, 0.5f); } else if (this->work[MO_TENT_ACTION_STATE] == MO_CORE_UNDERWATER) { switch (this->work[MO_CORE_WAIT_IN_WATER]) { case false: @@ -2111,14 +2111,14 @@ void BossMo_Core(BossMo* this, PlayState* play) { this->targetPos.x = player->actor.world.pos.x + sp64.x; this->targetPos.y = player->actor.world.pos.y + 30.0f; this->targetPos.z = player->actor.world.pos.z + sp64.z; - Math_ApproachF(&this->actor.speedXZ, 10.0f, 1.0f, 1.0f); + Math_ApproachF(&this->actor.speed, 10.0f, 1.0f, 1.0f); if (this->timers[0] == 0) { this->work[MO_CORE_WAIT_IN_WATER] = true; this->timers[0] = (s16)Rand_ZeroFloat(50.0f) + 50; } break; case true: - Math_ApproachF(&this->actor.speedXZ, 1.0f, 1.0f, 0.5f); + Math_ApproachF(&this->actor.speed, 1.0f, 1.0f, 0.5f); if (this->timers[0] == 0) { this->work[MO_CORE_WAIT_IN_WATER] = false; this->timers[0] = (s16)Rand_ZeroFloat(20.0f) + 20; @@ -2322,7 +2322,7 @@ void BossMo_UpdateTent(Actor* thisx, PlayState* play) { } Math_ApproachS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 0xA, 0xC8); Actor_MoveForward(&this->actor); - Math_ApproachF(&this->actor.speedXZ, 0.0, 1.0f, 0.02f); + Math_ApproachF(&this->actor.speed, 0.0, 1.0f, 0.02f); if (BossMo_NearLand(&this->actor.world.pos, 40)) { this->actor.world.pos = this->actor.prevPos; diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index 0031166088..7706990392 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -370,7 +370,7 @@ void BossSst_HeadSetupIntro(BossSst* this, PlayState* play) { player->fallStartHeight = 0; player->stateFlags1 |= PLAYER_STATE1_5; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); sSubCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -403,7 +403,7 @@ void BossSst_HeadIntro(BossSst* this, PlayState* play) { sHands[RIGHT]->actor.flags |= ACTOR_FLAG_0; sHands[LEFT]->actor.flags |= ACTOR_FLAG_0; player->stateFlags1 &= ~PLAYER_STATE1_5; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); sSubCamAt.y += 30.0f; sSubCamAt.z += 300.0f; @@ -695,7 +695,7 @@ void BossSst_HeadDamagedHand(BossSst* this, PlayState* play) { void BossSst_HeadSetupReadyCharge(BossSst* this) { Animation_MorphToLoop(&this->skelAnime, &gBongoHeadEyeOpenIdleAnim, -5.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->colliderCyl.base.acFlags |= AC_ON; this->actionFunc = BossSst_HeadReadyCharge; } @@ -716,7 +716,7 @@ void BossSst_HeadSetupCharge(BossSst* this) { BossSst_HandSetDamage(sHands[LEFT], 0x20); BossSst_HandSetDamage(sHands[RIGHT], 0x20); this->colliderJntSph.base.atFlags |= AT_ON; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; this->radius = -650.0f; this->ready = false; this->actionFunc = BossSst_HeadCharge; @@ -728,15 +728,15 @@ void BossSst_HeadCharge(BossSst* this, PlayState* play) { if (!this->ready && Animation_OnFrame(&this->skelAnime, 6.0f)) { this->ready = true; - this->actor.speedXZ = 0.25f; + this->actor.speed = 0.25f; this->skelAnime.playSpeed = 0.2f; } - this->actor.speedXZ *= 1.25f; - this->actor.speedXZ = CLAMP_MAX(this->actor.speedXZ, 45.0f); + this->actor.speed *= 1.25f; + this->actor.speed = CLAMP_MAX(this->actor.speed, 45.0f); if (this->ready) { - if (Math_SmoothStepToF(&this->radius, 650.0f, 0.4f, this->actor.speedXZ, 1.0f) < 10.0f) { + if (Math_SmoothStepToF(&this->radius, 650.0f, 0.4f, this->actor.speed, 1.0f) < 10.0f) { this->radius = 650.0f; BossSst_HeadSetupEndCharge(this); } else { @@ -753,7 +753,7 @@ void BossSst_HeadCharge(BossSst* this, PlayState* play) { sHandOffsets[RIGHT].z += 5.0f; } } else { - Math_ApproachF(&this->radius, -700.0f, 0.4f, this->actor.speedXZ); + Math_ApproachF(&this->radius, -700.0f, 0.4f, this->actor.speed); Math_StepToF(&this->actor.world.pos.y, this->actor.home.pos.y - 180.0f, 20.0f); sHandOffsets[LEFT].y += 5.0f; sHandOffsets[RIGHT].y += 5.0f; @@ -855,8 +855,8 @@ void BossSst_HeadStunned(BossSst* this, PlayState* play) { if (this->radius < -500.0f) { Math_SmoothStepToF(&this->radius, -500.0f, 1.0f, 50.0f, 5.0f); } else { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.5f, 15.0f, 3.0f); - this->radius += this->actor.speedXZ; + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.5f, 15.0f, 3.0f); + this->radius += this->actor.speed; } this->radius = CLAMP_MAX(this->radius, 400.0f); @@ -871,7 +871,7 @@ void BossSst_HeadSetupVulnerable(BossSst* this) { Animation_MorphToLoop(&this->skelAnime, &gBongoHeadStunnedAnim, -5.0f); this->colliderCyl.base.acFlags |= AC_ON; this->colliderCyl.info.bumper.dmgFlags = DMG_SWORD | DMG_DEKU_STICK; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->colliderJntSph.elements[10].info.bumperFlags |= (BUMP_ON | BUMP_HOOKABLE); this->colliderJntSph.elements[0].info.bumperFlags &= ~BUMP_ON; if (this->actionFunc != BossSst_HeadDamage) { @@ -933,7 +933,7 @@ void BossSst_HeadSetupRecover(BossSst* this) { this->colliderJntSph.elements[10].info.bumperFlags &= ~(BUMP_ON | BUMP_HOOKABLE); this->colliderJntSph.elements[0].info.bumperFlags |= BUMP_ON; this->vVanish = true; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actionFunc = BossSst_HeadRecover; } @@ -948,11 +948,11 @@ void BossSst_HeadRecover(BossSst* this, PlayState* play) { this->actor.world.pos.y += 10.0f; sHandOffsets[LEFT].y -= 10.0f; sHandOffsets[RIGHT].y -= 10.0f; - Math_SmoothStepToF(&this->radius, -750.0f, 1.0f, this->actor.speedXZ, 2.0f); + Math_SmoothStepToF(&this->radius, -750.0f, 1.0f, this->actor.speed, 2.0f); } else { - this->actor.speedXZ *= 1.25f; - this->actor.speedXZ = CLAMP_MAX(this->actor.speedXZ, 50.0f); - diff = Math_SmoothStepToF(&this->radius, -650.0f, 1.0f, this->actor.speedXZ, 2.0f); + this->actor.speed *= 1.25f; + this->actor.speed = CLAMP_MAX(this->actor.speed, 50.0f); + diff = Math_SmoothStepToF(&this->radius, -650.0f, 1.0f, this->actor.speed, 2.0f); diff += Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.home.pos.y, 0.5f, 30.0f, 3.0f); } if (animFinish && (diff < 10.0f)) { @@ -1025,7 +1025,7 @@ void BossSst_HeadSetupDeath(BossSst* this, PlayState* play) { Play_ChangeCameraStatus(play, sSubCamId, CAM_STAT_ACTIVE); Play_CopyCamera(play, sSubCamId, CAM_ID_MAIN); func_8002DF54(play, &player->actor, PLAYER_CSMODE_8); - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); Math_Vec3f_Copy(&sSubCamEye, &GET_ACTIVE_CAM(play)->eye); this->actionFunc = BossSst_HeadDeath; } @@ -1117,7 +1117,7 @@ void BossSst_HeadDarken(BossSst* this, PlayState* play) { } void BossSst_HeadSetupFall(BossSst* this) { - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; Math_Vec3f_Copy(&sSubCamAt, &sSubCamAtPoints[3]); Math_Vec3f_Copy(&sSubCamEye, &sSubCamEyePoints[3]); sSubCamAtVel.x = 0.0f; @@ -1128,8 +1128,8 @@ void BossSst_HeadSetupFall(BossSst* this) { } void BossSst_HeadFall(BossSst* this, PlayState* play) { - this->actor.speedXZ *= 1.5f; - if (Math_StepToF(&this->actor.world.pos.y, this->actor.home.pos.y - 230.0f, this->actor.speedXZ)) { + this->actor.speed *= 1.5f; + if (Math_StepToF(&this->actor.world.pos.y, this->actor.home.pos.y - 230.0f, this->actor.speed)) { BossSst_HeadSetupMelt(this); } @@ -1188,7 +1188,7 @@ void BossSst_HeadFinish(BossSst* this, PlayState* play) { Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_ACTIVE); Play_ClearCamera(play, sSubCamId); func_8002DF54(play, &GET_PLAYER(play)->actor, PLAYER_CSMODE_7); - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); Actor_Kill(&this->actor); Actor_Kill(&sHands[LEFT]->actor); Actor_Kill(&sHands[RIGHT]->actor); @@ -1400,7 +1400,7 @@ void BossSst_HandSetupRetreat(BossSst* this) { BossSst_HandSetInvulnerable(this, false); this->timer = 0; this->actionFunc = BossSst_HandRetreat; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; } void BossSst_HandRetreat(BossSst* this, PlayState* play) { @@ -1408,11 +1408,11 @@ void BossSst_HandRetreat(BossSst* this, PlayState* play) { s32 inPosition; SkelAnime_Update(&this->skelAnime); - this->actor.speedXZ = this->actor.speedXZ * 1.2f; - this->actor.speedXZ = CLAMP_MAX(this->actor.speedXZ, 50.0f); + this->actor.speed *= 1.2f; + this->actor.speed = CLAMP_MAX(this->actor.speed, 50.0f); - diff = Math_SmoothStepToF(&this->actor.world.pos.x, this->actor.home.pos.x, 0.3f, this->actor.speedXZ, 1.0f); - diff += Math_SmoothStepToF(&this->actor.world.pos.z, this->actor.home.pos.z, 0.3f, this->actor.speedXZ, 1.0f); + diff = Math_SmoothStepToF(&this->actor.world.pos.x, this->actor.home.pos.x, 0.3f, this->actor.speed, 1.0f); + diff += Math_SmoothStepToF(&this->actor.world.pos.z, this->actor.home.pos.z, 0.3f, this->actor.speed, 1.0f); if (this->timer != 0) { if (this->timer != 0) { this->timer--; @@ -1612,7 +1612,7 @@ void BossSst_HandReadyPunch(BossSst* this, PlayState* play) { } void BossSst_HandSetupPunch(BossSst* this) { - this->actor.speedXZ = 0.5f; + this->actor.speed = 0.5f; Animation_MorphToPlayOnce(&this->skelAnime, sHandFistPoses[this->actor.params], 5.0f); BossSst_HandSetInvulnerable(this, true); this->targetRoll = this->vParity * 0x3F00; @@ -1627,11 +1627,11 @@ void BossSst_HandPunch(BossSst* this, PlayState* play) { this->targetRoll *= -1; } - this->actor.speedXZ *= 1.25f; - this->actor.speedXZ = CLAMP_MAX(this->actor.speedXZ, 50.0f); + this->actor.speed *= 1.25f; + this->actor.speed = CLAMP_MAX(this->actor.speed, 50.0f); - this->actor.world.pos.x += this->actor.speedXZ * Math_SinS(this->actor.shape.rot.y); - this->actor.world.pos.z += this->actor.speedXZ * Math_CosS(this->actor.shape.rot.y); + this->actor.world.pos.x += this->actor.speed * Math_SinS(this->actor.shape.rot.y); + this->actor.world.pos.z += this->actor.speed * Math_CosS(this->actor.shape.rot.y); if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { BossSst_HandSetupRetreat(this); } else if (this->colliderJntSph.base.atFlags & AT_HIT) { @@ -1796,7 +1796,7 @@ void BossSst_HandSetupGrab(BossSst* this) { this->actor.world.rot.y = this->actor.shape.rot.y + (this->vParity * 0x4000); this->targetYaw = this->actor.world.rot.y; this->timer = 30; - this->actor.speedXZ = 0.5f; + this->actor.speed = 0.5f; BossSst_HandSetDamage(this, 0x20); this->actionFunc = BossSst_HandGrab; } @@ -1812,10 +1812,10 @@ void BossSst_HandGrab(BossSst* this, PlayState* play) { ((1.0f - sinf(this->timer * (M_PI / 60.0f))) * (this->vParity * 0x2000)) + this->targetYaw; this->actor.shape.rot.y = this->actor.world.rot.y - (this->vParity * 0x4000); if (this->timer < 5) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.5f, 25.0f, 5.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.5f, 25.0f, 5.0f); if (SkelAnime_Update(&this->skelAnime)) { this->colliderJntSph.base.atFlags &= ~(AT_ON | AT_HIT); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (player->stateFlags2 & PLAYER_STATE2_7) { if (Rand_ZeroOne() < 0.5f) { BossSst_HandSetupCrush(this); @@ -1829,8 +1829,8 @@ void BossSst_HandGrab(BossSst* this, PlayState* play) { } } } else { - this->actor.speedXZ *= 1.26f; - this->actor.speedXZ = CLAMP_MAX(this->actor.speedXZ, 70.0f); + this->actor.speed *= 1.26f; + this->actor.speed = CLAMP_MAX(this->actor.speed, 70.0f); func_8002F974(&this->actor, NA_SE_EN_SHADEST_HAND_FLY - SFX_FLAG); } @@ -1841,8 +1841,8 @@ void BossSst_HandGrab(BossSst* this, PlayState* play) { this->timer = CLAMP_MAX(this->timer, 5); } - this->actor.world.pos.x += this->actor.speedXZ * Math_SinS(this->actor.world.rot.y); - this->actor.world.pos.z += this->actor.speedXZ * Math_CosS(this->actor.world.rot.y); + this->actor.world.pos.x += this->actor.speed * Math_SinS(this->actor.world.rot.y); + this->actor.world.pos.z += this->actor.speed * Math_CosS(this->actor.world.rot.y); if (player->stateFlags2 & PLAYER_STATE2_7) { player->unk_850 = 0; player->actor.world.pos = this->actor.world.pos; @@ -2362,15 +2362,15 @@ void BossSst_HandReadyBreakIce(BossSst* this, PlayState* play) { void BossSst_HandSetupBreakIce(BossSst* this) { this->timer = 9; this->actionFunc = BossSst_HandBreakIce; - this->actor.speedXZ = 0.5f; + this->actor.speed = 0.5f; } void BossSst_HandBreakIce(BossSst* this, PlayState* play) { if ((this->timer % 2) != 0) { - this->actor.speedXZ *= 1.5f; - this->actor.speedXZ = CLAMP_MAX(this->actor.speedXZ, 60.0f); + this->actor.speed *= 1.5f; + this->actor.speed = CLAMP_MAX(this->actor.speed, 60.0f); - if (Math_StepToF(&this->radius, 100.0f, this->actor.speedXZ)) { + if (Math_StepToF(&this->radius, 100.0f, this->actor.speed)) { BossSst_SpawnIceShard(this); if (this->timer != 0) { this->timer--; @@ -2383,9 +2383,9 @@ void BossSst_HandBreakIce(BossSst* this, PlayState* play) { OTHER_HAND(this)->handAngSpeed = 5; } } else { - this->actor.speedXZ *= 0.8f; - Math_StepToF(&this->radius, 500.0f, this->actor.speedXZ); - if (this->actor.speedXZ < 2.0f) { + this->actor.speed *= 0.8f; + Math_StepToF(&this->radius, 500.0f, this->actor.speed); + if (this->actor.speed < 2.0f) { if (this->timer != 0) { this->timer--; } diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c index 962260b632..3407a7be24 100644 --- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c +++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c @@ -622,7 +622,7 @@ void BossTw_TurnToPlayer(BossTw* this, PlayState* play) { BossTw* otherTw = (BossTw*)this->actor.parent; SkelAnime_Update(&this->skelAnime); - Math_ApproachF(&this->actor.speedXZ, 0.0f, 1.0f, 1.0f); + Math_ApproachF(&this->actor.speed, 0.0f, 1.0f, 1.0f); Math_ApproachS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 5, this->rotateSpeed); Math_ApproachS(&this->actor.shape.rot.x, 0, 5, this->rotateSpeed); Math_ApproachF(&this->rotateSpeed, 4096.0f, 1.0f, 200.0f); @@ -632,7 +632,7 @@ void BossTw_TurnToPlayer(BossTw* this, PlayState* play) { if ((otherTw->actionFunc != BossTw_ShootBeam) && this->work[CAN_SHOOT]) { this->work[CAN_SHOOT] = false; BossTw_SetupShootBeam(this, play); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } else { BossTw_SetupFlyTo(this, play); } @@ -697,7 +697,7 @@ void BossTw_FlyTo(BossTw* this, PlayState* play) { Math_ApproachS(&this->actor.shape.rot.y, yawTarget, 0xA, this->rotateSpeed); Math_ApproachS(&this->actor.shape.rot.x, pitchTarget, 0xA, this->rotateSpeed); Math_ApproachF(&this->rotateSpeed, 4096.0f, 1.0f, 100.0f); - Math_ApproachF(&this->actor.speedXZ, 10.0f, 1.0f, 1.0f); + Math_ApproachF(&this->actor.speed, 10.0f, 1.0f, 1.0f); func_8002D908(&this->actor); func_8002D7EC(&this->actor); @@ -972,8 +972,8 @@ void BossTw_ShootBeam(BossTw* this, PlayState* play) { BossTw* otherTw = (BossTw*)this->actor.parent; Input* input = &play->state.input[0]; - Math_ApproachF(&this->actor.world.pos.y, 400.0f, 0.05f, this->actor.speedXZ); - Math_ApproachF(&this->actor.speedXZ, 5.0f, 1.0f, 0.25f); + Math_ApproachF(&this->actor.world.pos.y, 400.0f, 0.05f, this->actor.speed); + Math_ApproachF(&this->actor.speed, 5.0f, 1.0f, 0.25f); SkelAnime_Update(&this->skelAnime); this->beamRoll += -0.3f; @@ -1342,7 +1342,7 @@ void BossTw_SetupHitByBeam(BossTw* this, PlayState* play) { this->actionFunc = BossTw_HitByBeam; Animation_MorphToPlayOnce(&this->skelAnime, &gTwinrovaKotakeKoumeDamageStartAnim, 0.0f); this->timers[0] = 53; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->actor.params == TW_KOTAKE) { this->work[FOG_TIMER] = 20; @@ -1382,15 +1382,15 @@ void BossTw_HitByBeam(BossTw* this, PlayState* play) { } Math_ApproachF(&this->actor.world.pos.y, ((Math_SinS(this->work[CS_TIMER_1] * 1500) * 20.0f) + 350.0f) + 50.0f, - 0.1f, this->actor.speedXZ); - Math_ApproachF(&this->actor.speedXZ, 5.0f, 1.0f, 1.0f); + 0.1f, this->actor.speed); + Math_ApproachF(&this->actor.speed, 5.0f, 1.0f, 1.0f); this->actor.world.pos.y -= 50.0f; Actor_UpdateBgCheckInfo(play, &this->actor, 50.0f, 50.0f, 100.0f, UPDBGCHECKINFO_FLAG_2); this->actor.world.pos.y += 50.0f; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->timers[0] == 1) { @@ -1407,7 +1407,7 @@ void BossTw_SetupLaugh(BossTw* this, PlayState* play) { this->actionFunc = BossTw_Laugh; Animation_MorphToPlayOnce(&this->skelAnime, &gTwinrovaKotakeKoumeLaughAnim, 0.0f); this->workf[ANIM_SW_TGT] = Animation_GetLastFrame(&gTwinrovaKotakeKoumeLaughAnim); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void BossTw_Laugh(BossTw* this, PlayState* play) { @@ -1430,7 +1430,7 @@ void BossTw_SetupSpin(BossTw* this, PlayState* play) { this->actionFunc = BossTw_Spin; Animation_MorphToPlayOnce(&this->skelAnime, &gTwinrovaKotakeKoumeSpinAnim, -3.0f); this->workf[ANIM_SW_TGT] = Animation_GetLastFrame(&gTwinrovaKotakeKoumeSpinAnim); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; SkelAnime_Update(&this->skelAnime); this->timers[0] = 20; } @@ -1456,7 +1456,7 @@ void BossTw_Spin(BossTw* this, PlayState* play) { void BossTw_SetupMergeCS(BossTw* this, PlayState* play) { this->actionFunc = BossTw_MergeCS; this->rotateSpeed = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_MorphToLoop(&this->skelAnime, &gTwinrovaKotakeKoumeFlyAnim, -10.0f); } @@ -1498,7 +1498,7 @@ void BossTw_TwinrovaMergeCS(BossTw* this, PlayState* play) { switch (this->csState2) { case 0: this->csState2 = 1; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_57); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -1714,7 +1714,7 @@ void BossTw_TwinrovaMergeCS(BossTw* this, PlayState* play) { Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; this->csState2 = this->subCamId; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); this->work[TW_PLLR_IDX] = 0; this->targetPos = sTwinrovaPillarPos[0]; @@ -1794,7 +1794,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, PlayState* play) { if (SQ(player->actor.world.pos.x) + SQ(player->actor.world.pos.z) < SQ(150.0f)) { player->actor.world.pos.x = player->actor.world.pos.z = .0f; this->csState2 = 1; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_57); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -1914,7 +1914,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, PlayState* play) { if (this->work[CS_TIMER_1] > 80) { this->csState2 = 4; - this->actor.speedXZ = 0; + this->actor.speed = 0; this->subCamEyeNext.x = -80.0f; this->subCamEyeNext.y = 260.0f; @@ -1942,8 +1942,8 @@ void BossTw_TwinrovaIntroCS(BossTw* this, PlayState* play) { updateCam = true; SkelAnime_Update(&sKoumePtr->skelAnime); this->subCamAtNext.y = 20.0f + sKoumePtr->actor.world.pos.y; - Math_ApproachF(&sKoumePtr->actor.world.pos.y, 350, 0.1f, this->actor.speedXZ); - Math_ApproachF(&this->actor.speedXZ, 9.0f, 1.0f, 0.9f); + Math_ApproachF(&sKoumePtr->actor.world.pos.y, 350, 0.1f, this->actor.speed); + Math_ApproachF(&this->actor.speed, 9.0f, 1.0f, 0.9f); Math_ApproachF(&this->subCamUpdateRate, 1.0f, 1.0f, 0.02f); if (this->work[CS_TIMER_1] >= 30) { @@ -2077,7 +2077,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, PlayState* play) { if (this->work[CS_TIMER_1] > 80) { this->csState2 = 12; - this->actor.speedXZ = 0; + this->actor.speed = 0; this->subCamEyeNext.y = 260.0f; this->subCamEyeNext.x = -80.0f; @@ -2105,8 +2105,8 @@ void BossTw_TwinrovaIntroCS(BossTw* this, PlayState* play) { updateCam = true; SkelAnime_Update(&sKotakePtr->skelAnime); this->subCamAtNext.y = sKotakePtr->actor.world.pos.y + 20.0f; - Math_ApproachF(&sKotakePtr->actor.world.pos.y, 350, 0.1f, this->actor.speedXZ); - Math_ApproachF(&this->actor.speedXZ, 9.0f, 1.0f, 0.9f); + Math_ApproachF(&sKotakePtr->actor.world.pos.y, 350, 0.1f, this->actor.speed); + Math_ApproachF(&this->actor.speed, 9.0f, 1.0f, 0.9f); Math_ApproachF(&this->subCamUpdateRate, 1.0f, 1.0f, 0.02f); if (this->work[CS_TIMER_1] >= 30) { @@ -2277,7 +2277,7 @@ void BossTw_TwinrovaIntroCS(BossTw* this, PlayState* play) { Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; this->csState2 = this->subCamId; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); BossTw_SetupWait(this, play); } @@ -2326,7 +2326,7 @@ void BossTw_DeathBall(BossTw* this, PlayState* play) { this->timers[1] = 10; this->rotateSpeed = 8192.0f; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; } else { if (this->timers[1] == 9) { this->targetPos.y = 413.0f; @@ -2348,7 +2348,7 @@ void BossTw_DeathBall(BossTw* this, PlayState* play) { Math_ApproachF(&this->targetPos.y, 263.0f, 1.0f, 2.0f); if (this->targetPos.y == 263.0f) { - Math_ApproachF(&this->actor.speedXZ, 0.0f, 1.0f, 0.2f); + Math_ApproachF(&this->actor.speed, 0.0f, 1.0f, 0.2f); if (sTwinrovaPtr->csState2 == 3) { Actor_Kill(&this->actor); } @@ -2583,9 +2583,9 @@ void BossTw_DeathCSMsgSfx(BossTw* this, PlayState* play) { 0.01f); if (this->work[CS_TIMER_2] >= 880) { - Math_ApproachF(&sKotakePtr->actor.world.pos.y, 2000.0f, 1.0f, this->actor.speedXZ); - Math_ApproachF(&sKoumePtr->actor.world.pos.y, 2000.0f, 1.0f, this->actor.speedXZ); - Math_ApproachF(&this->actor.speedXZ, 10.0f, 1.0f, 0.25f); + Math_ApproachF(&sKotakePtr->actor.world.pos.y, 2000.0f, 1.0f, this->actor.speed); + Math_ApproachF(&sKoumePtr->actor.world.pos.y, 2000.0f, 1.0f, this->actor.speed); + Math_ApproachF(&this->actor.speed, 10.0f, 1.0f, 0.25f); if (this->work[CS_TIMER_2] >= 930) { Math_ApproachF(&this->workf[UNK_F19], 5.0f, 1.0f, 0.05f); @@ -2595,10 +2595,10 @@ void BossTw_DeathCSMsgSfx(BossTw* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EV_GOTO_HEAVEN - SFX_FLAG); } else { f32 yTarget = Math_CosS(this->work[CS_TIMER_2] * 1700) * 4.0f; - Math_ApproachF(&sKotakePtr->actor.world.pos.y, 20.0f + (263.0f + yTarget), 0.1f, this->actor.speedXZ); + Math_ApproachF(&sKotakePtr->actor.world.pos.y, 20.0f + (263.0f + yTarget), 0.1f, this->actor.speed); yTarget = Math_SinS(this->work[CS_TIMER_2] * 1500) * 4.0f; - Math_ApproachF(&sKoumePtr->actor.world.pos.y, 20.0f + (263.0f + yTarget), 0.1f, this->actor.speedXZ); - Math_ApproachF(&this->actor.speedXZ, 1.0f, 1.0f, 0.05f); + Math_ApproachF(&sKoumePtr->actor.world.pos.y, 20.0f + (263.0f + yTarget), 0.1f, this->actor.speed); + Math_ApproachF(&this->actor.speed, 1.0f, 1.0f, 0.05f); } } } @@ -2639,13 +2639,13 @@ void BossTw_TwinrovaDeathCS(BossTw* this, PlayState* play) { play->envCtx.lightSetting = 0; Math_ApproachF(&play->envCtx.lightBlend, 1.0f, 1.0f, 0.015f); Math_ApproachF(&this->actor.scale.x, 0.00024999998f, 0.1f, 0.00005f); - this->actor.shape.rot.y += (s16)this->actor.speedXZ; - this->workf[UNK_F13] += this->actor.speedXZ; + this->actor.shape.rot.y += (s16)this->actor.speed; + this->workf[UNK_F13] += this->actor.speed; if (this->workf[UNK_F13] > 65536.0f) { this->workf[UNK_F13] -= 65536.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_TWINROBA_ROLL); } - Math_ApproachF(&this->actor.speedXZ, 12288.0f, 1.0f, 256.0f); + Math_ApproachF(&this->actor.speed, 12288.0f, 1.0f, 256.0f); if (this->work[CS_TIMER_1] == 135) { Vec3f spBC; Vec3f spB0; @@ -2681,7 +2681,7 @@ void BossTw_TwinrovaDeathCS(BossTw* this, PlayState* play) { switch (this->csState2) { case 0: this->csState2 = 1; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -2766,7 +2766,7 @@ void BossTw_TwinrovaDeathCS(BossTw* this, PlayState* play) { SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_KOTAKE_KOUME); this->csState2 = 3; this->work[CS_TIMER_2] = 0; - this->subCamYaw = this->subCamYawStep = this->actor.speedXZ = this->subCamDistStep = 0.0f; + this->subCamYaw = this->subCamYawStep = this->actor.speed = this->subCamDistStep = 0.0f; } break; case 3: @@ -2809,7 +2809,7 @@ void BossTw_TwinrovaDeathCS(BossTw* this, PlayState* play) { Play_ReturnToMainCam(play, this->subCamId, 0); this->csState2 = 4; this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_BOSS_CLEAR); Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DOOR_WARP1, 600.0f, 230.0f, 0.0f, 0, 0, 0, @@ -3925,7 +3925,7 @@ void BossTw_BlastFire(BossTw* this, PlayState* play) { // pitch distXZ = sqrtf(SQ(xDiff) + SQ(zDiff)); this->actor.world.rot.x = RAD_TO_BINANG(Math_FAtan2F(yDiff, distXZ)); - this->actor.speedXZ = 20.0f; + this->actor.speed = 20.0f; for (i = 0; i < 50; i++) { this->blastTailPos[i] = this->actor.world.pos; @@ -4113,7 +4113,7 @@ void BossTw_BlastIce(BossTw* this, PlayState* play) { this->actor.world.rot.y = RAD_TO_BINANG(Math_FAtan2F(xDiff, zDiff)); xzDist = sqrtf(SQ(xDiff) + SQ(zDiff)); this->actor.world.rot.x = RAD_TO_BINANG(Math_FAtan2F(yDiff, xzDist)); - this->actor.speedXZ = 20.0f; + this->actor.speed = 20.0f; for (i = 0; i < 50; i++) { this->blastTailPos[i] = this->actor.world.pos; } @@ -5377,7 +5377,7 @@ void BossTw_TwinrovaSetupFly(BossTw* this, PlayState* play) { zDiff = this->targetPos.z - this->actor.world.pos.z; this->actionFunc = BossTw_TwinrovaFly; this->rotateSpeed = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = RAD_TO_BINANG(Math_FAtan2F(xDiff, zDiff)); xzDist = sqrtf(SQ(xDiff) + SQ(zDiff)); this->actor.world.rot.x = RAD_TO_BINANG(Math_FAtan2F(yDiff, xzDist)); @@ -5403,7 +5403,7 @@ void BossTw_TwinrovaFly(BossTw* this, PlayState* play) { Math_ApproachS(&this->actor.world.rot.y, yaw, 0xA, this->rotateSpeed); Math_ApproachS(&this->actor.shape.rot.y, yaw, 0xA, this->rotateSpeed); Math_ApproachF(&this->rotateSpeed, 2000.0f, 1.0f, 100.0f); - Math_ApproachF(&this->actor.speedXZ, 30.0f, 1.0f, 2.0f); + Math_ApproachF(&this->actor.speed, 30.0f, 1.0f, 2.0f); func_8002D908(&this->actor); Math_ApproachF(&this->actor.world.pos.x, this->targetPos.x, 0.1f, fabsf(this->actor.velocity.x) * 1.5f); Math_ApproachF(&this->actor.world.pos.y, this->targetPos.y, 0.1f, fabsf(this->actor.velocity.y) * 1.5f); @@ -5419,7 +5419,7 @@ void BossTw_TwinrovaSetupSpin(BossTw* this, PlayState* play) { this->actionFunc = BossTw_TwinrovaSpin; Animation_MorphToLoop(&this->skelAnime, &gTwinrovaHoverAnim, 0.0f); this->timers[0] = 20; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void BossTw_TwinrovaSpin(BossTw* this, PlayState* play) { @@ -5440,7 +5440,7 @@ void BossTw_TwinrovaSetupLaugh(BossTw* this, PlayState* play) { this->actionFunc = BossTw_TwinrovaLaugh; Animation_MorphToPlayOnce(&this->skelAnime, &gTwinrovaLaughAnim, 0.0f); this->workf[ANIM_SW_TGT] = Animation_GetLastFrame(&gTwinrovaLaughAnim); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void BossTw_TwinrovaLaugh(BossTw* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c index f7a54bd5b6..d56c49ee72 100644 --- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c +++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c @@ -645,7 +645,7 @@ void BossVa_Init(Actor* thisx, PlayState* play2) { play->envCtx.screenFillColor[1] = 0xDC; play->envCtx.screenFillColor[2] = 0xBE; play->envCtx.screenFillColor[3] = 0xD2; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); sSubCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, sSubCamId, CAM_STAT_ACTIVE); @@ -786,7 +786,7 @@ void BossVa_BodyIntro(BossVa* this, PlayState* play) { sCsState++; break; case INTRO_LOOK_DOOR: - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); if (sSubCamId == SUB_CAM_ID_DONE) { sSubCamId = Play_CreateSubCamera(play); } @@ -828,7 +828,7 @@ void BossVa_BodyIntro(BossVa* this, PlayState* play) { sCsState++; break; case INTRO_SPAWN_BARI: - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); if (sSubCamId == SUB_CAM_ID_DONE) { sSubCamId = Play_CreateSubCamera(play); } @@ -1010,7 +1010,7 @@ void BossVa_BodyIntro(BossVa* this, PlayState* play) { if (this->timer == 0) { Play_ClearCamera(play, sSubCamId); sSubCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_ACTIVE); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); sCsState++; @@ -1165,7 +1165,7 @@ void BossVa_BodyPhase2(BossVa* this, PlayState* play) { } } - if ((sPhase2Timer > 10) && !(sPhase2Timer & 7) && (this->actor.speedXZ == 1.0f)) { + if ((sPhase2Timer > 10) && !(sPhase2Timer & 7) && (this->actor.speed == 1.0f)) { sp48 = this->actor.world.pos; sp48.y += 310.0f + (this->actor.shape.yOffset * this->actor.scale.y); sp48.x += -10.0f; @@ -1182,10 +1182,10 @@ void BossVa_BodyPhase2(BossVa* this, PlayState* play) { Math_SmoothStepToF(&this->actor.shape.yOffset, -1000.0f, 1.0f, 20.0f, 0.0f); if (!(sPhase2Timer & 0x100)) { this->actor.flags |= ACTOR_FLAG_0; - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; } else { this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (SkelAnime_Update(&this->skelAnime) && (sFightPhase >= PHASE_3)) { @@ -1218,7 +1218,7 @@ void BossVa_BodyPhase2(BossVa* this, PlayState* play) { void BossVa_SetupBodyPhase3(BossVa* this) { this->colliderBody.info.bumper.dmgFlags = DMG_BOOMERANG; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; sPhase3StopMoving = false; BossVa_SetupAction(this, BossVa_BodyPhase3); } @@ -1252,10 +1252,10 @@ void BossVa_BodyPhase3(BossVa* this, PlayState* play) { sBodyState = 0; if (this->timer == 0) { if (Math_SmoothStepToS(&this->vaBodySpinRate, 0xFA0, 1, 0x12C, 0) == 0) { - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; } - Math_SmoothStepToF(&this->actor.speedXZ, 3.0f, 1.0f, 0.15f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 3.0f, 1.0f, 0.15f, 0.0f); } this->actor.flags |= ACTOR_FLAG_0; } else { @@ -1264,7 +1264,7 @@ void BossVa_BodyPhase3(BossVa* this, PlayState* play) { sBodyState = 0x80; } Math_SmoothStepToS(&this->vaBodySpinRate, 0, 1, 0x12C, 0); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.2f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.2f, 0.0f); Math_SmoothStepToF(&this->actor.shape.yOffset, -1420.0f, 1.0f, 30.0f, 0.0f); } } @@ -1280,7 +1280,7 @@ void BossVa_BodyPhase3(BossVa* this, PlayState* play) { } if (sPhase3StopMoving) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } Actor_MoveForward(&this->actor); @@ -1385,13 +1385,13 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) { Enemy_StartFinishingBlow(play, &this->actor); return; } - this->actor.speedXZ = -10.0f; + this->actor.speed = -10.0f; this->timer = -170 - (s16)(Rand_ZeroOne() * 150.0f); } } else { this->timer = (s16)Rand_CenteredFloat(40.0f) + 160; this->vaBodySpinRate = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 125, COLORFILTER_BUFFLAG_OPA, 255); Actor_PlaySfx(&this->actor, NA_SE_EN_BALINADE_FAINT); } @@ -1414,12 +1414,12 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) { Math_SmoothStepToF(&this->actor.shape.yOffset, 0.0f, 1.0f, ((sFightPhase - PHASE_4 + 1) * 5.0f) + 10.0f, 0.0f); if (Math_SmoothStepToS(&this->vaBodySpinRate, (s16)((sFightPhase - PHASE_4 + 1) * 500.0f) + 0xFA0, 1, 0x12C, 0) == 0) { - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { this->actor.colorFilterTimer = 0; this->actor.world.rot.y = this->actor.yawTowardsPlayer; this->timer2 = (s16)(Rand_ZeroOne() * 150.0f) + 300; } - Math_SmoothStepToF(&this->actor.speedXZ, ((sFightPhase - PHASE_4 + 1) * 1.5f) + 4.0f, 1.0f, 0.25f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, ((sFightPhase - PHASE_4 + 1) * 1.5f) + 4.0f, 1.0f, 0.25f, 0.0f); } this->colliderBody.info.bumper.dmgFlags = DMG_BOOMERANG; } else { @@ -1439,18 +1439,18 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) { BossVa_Spark(play, this, 2, 0x64, 220.0f, 5.0f, SPARK_BODY, 12.0f, true); } if (this->timer < -30) { - if (this->actor.speedXZ > 0.0f) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + if (this->actor.speed > 0.0f) { + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); } Math_SmoothStepToF(&this->actor.shape.yOffset, -1400.0f, 1.0f, 60.0f, 0.0f); } else { - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { this->actor.world.rot.y = this->actor.yawTowardsPlayer + 0x8000; this->timer2 = (s16)(Rand_ZeroOne() * 150.0f) + 330; } Math_SmoothStepToS(&this->vaBodySpinRate, 0xFA0, 1, 0x1F4, 0); tmpf1 = sFightPhase - PHASE_4 + 1; - Math_SmoothStepToF(&this->actor.speedXZ, (tmpf1 + tmpf1) + 4.0f, 1.0f, 0.25f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, (tmpf1 + tmpf1) + 4.0f, 1.0f, 0.25f, 0.0f); Math_SmoothStepToF(&this->actor.shape.yOffset, 0.0f, 1.0f, 20.0f, 0.0f); } this->timer++; @@ -1458,8 +1458,8 @@ void BossVa_BodyPhase4(BossVa* this, PlayState* play) { } this->actor.shape.rot.y += this->vaBodySpinRate; - if (this->actor.speedXZ < 0.0f) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + if (this->actor.speed < 0.0f) { + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); } this->unk_1AC += 0xC31; @@ -1515,7 +1515,7 @@ void BossVa_SetupBodyDeath(BossVa* this, PlayState* play) { SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 1); this->vaCamRotMod = 0xC31; sCsState = DEATH_START; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_1A8 = 0.0f; Flags_SetClear(play, play->roomCtx.curRoom.num); BossVa_SetupAction(this, BossVa_BodyDeath); @@ -1531,7 +1531,7 @@ void BossVa_BodyDeath(BossVa* this, PlayState* play) { switch (sCsState) { case DEATH_START: func_8002DF54(play, &this->actor, PLAYER_CSMODE_1); - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); sSubCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, sSubCamId, CAM_STAT_ACTIVE); @@ -1626,7 +1626,7 @@ void BossVa_BodyDeath(BossVa* this, PlayState* play) { if (this->timer == 0) { Play_ClearCamera(play, sSubCamId); sSubCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_ACTIVE); mainCam->eyeNext = mainCam->eye = sSubCamEye; @@ -1675,7 +1675,7 @@ void BossVa_BodyDeath(BossVa* this, PlayState* play) { play->envCtx.screenFillColor[3] -= 50; } - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); this->actor.shape.rot.y += this->vaBodySpinRate; this->unk_1AC += this->vaCamRotMod; @@ -1992,7 +1992,7 @@ void BossVa_ZapperAttack(BossVa* this, PlayState* play) { return; } - if ((sFightPhase < PHASE_4) && (GET_BODY(this)->actor.speedXZ != 0.0f)) { + if ((sFightPhase < PHASE_4) && (GET_BODY(this)->actor.speed != 0.0f)) { BossVa_SetupZapperHold(this, play); return; } @@ -2381,7 +2381,7 @@ void BossVa_ZapperHold(BossVa* this, PlayState* play) { Math_SmoothStepToS(&this->unk_1EA, 0, 1, 0x1770, 0); Math_SmoothStepToS(&this->unk_1F2, this->actor.shape.rot.y - 0x4000, 1, 0x2710, 0); Math_SmoothStepToS(&this->unk_1F0, this->skelAnime.jointTable[7].z - 0x1388, 1, 0x1770, 0); - if (GET_BODY(this)->actor.speedXZ == 0.0f) { + if (GET_BODY(this)->actor.speed == 0.0f) { BossVa_SetupZapperAttack(this, play); } } diff --git a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c index 9a7e691615..3c0c0fd732 100644 --- a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c +++ b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c @@ -35,7 +35,7 @@ void func_8096865C(Actor* thisx, PlayState* play); void func_809688C4(Actor* thisx, PlayState* play2); void func_80968B70(Actor* thisx, PlayState* play); void func_80968FB0(Actor* thisx, PlayState* play); -void func_809691BC(Demo6K* this, PlayState* play, s32 params); +void func_809691BC(Demo6K* this, PlayState* play, s32 cueChannel); ActorInit Demo_6K_InitVars = { ACTOR_DEMO_6K, @@ -206,27 +206,27 @@ void func_80966DB0(Demo6K* this, PlayState* play) { } void func_80966E04(Demo6K* this, PlayState* play) { - if (play->csCtx.frames > 214) { + if (play->csCtx.curFrame > 214) { func_8002F948(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); } - if (play->csCtx.frames > 264) { + if (play->csCtx.curFrame > 264) { func_8002F948(&this->actor, NA_SE_EV_GOD_LIGHTBALL_2 - SFX_FLAG); } - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[6] != NULL) && - (play->csCtx.npcActions[6]->action == 2)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[6] != NULL) && + (play->csCtx.actorCues[6]->id == 2)) { Demo6K_SetupAction(this, func_80966E98); } } void func_80966E98(Demo6K* this, PlayState* play) { - if (play->csCtx.frames < 353) { + if (play->csCtx.curFrame < 353) { func_8002F948(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); func_8002F948(&this->actor, NA_SE_EV_GOD_LIGHTBALL_2 - SFX_FLAG); } - if (play->csCtx.frames == 342) { + if (play->csCtx.curFrame == 342) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_SAGE_SEAL); } @@ -288,8 +288,8 @@ void func_8096712C(Demo6K* this, PlayState* play) { this->actor.scale.x = 0.1f; } - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[6] != NULL) && - (play->csCtx.npcActions[6]->action == 2)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[6] != NULL) && + (play->csCtx.actorCues[6]->id == 2)) { Demo6K_SetupAction(this, func_809670AC); this->timer1 = 0; this->actor.scale.x = 0.1f; @@ -299,7 +299,7 @@ void func_8096712C(Demo6K* this, PlayState* play) { this->timer2++; - if ((play->sceneId == SCENE_INSIDE_GANONS_CASTLE) && (play->csCtx.frames < D_8096932C[this->actor.params - 3])) { + if ((play->sceneId == SCENE_INSIDE_GANONS_CASTLE) && (play->csCtx.curFrame < D_8096932C[this->actor.params - 3])) { func_8002F974(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); } } @@ -333,7 +333,7 @@ void func_80967244(Demo6K* this, PlayState* play) { if (play->sceneId == SCENE_TEMPLE_OF_TIME) { scale = 6000; - } else if (play->csCtx.frames < 419) { + } else if (play->csCtx.curFrame < 419) { scale = 6000; } else { scale = 18000; @@ -343,16 +343,16 @@ void func_80967244(Demo6K* this, PlayState* play) { } void func_80967410(Demo6K* this, PlayState* play) { - s32 params = this->actor.params - 14; + s32 cueChannel = this->actor.params - 14; this->timer2++; Actor_SetScale(&this->actor, 0.2f); - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[params] != NULL)) { - func_809691BC(this, play, params); + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[cueChannel] != NULL)) { + func_809691BC(this, play, cueChannel); - if (play->csCtx.npcActions[params]->action == 3) { + if (play->csCtx.actorCues[cueChannel]->id == 3) { this->flags &= ~1; func_80967244(this, play); } else { @@ -462,8 +462,8 @@ void func_80967A04(Demo6K* this, s32 i) { void func_80967AD0(Demo6K* this, PlayState* play) { s32 i; - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[1] != NULL)) { - if (play->csCtx.npcActions[1]->action == 2) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[1] != NULL)) { + if (play->csCtx.actorCues[1]->id == 2) { this->unk_170++; func_8002F948(&this->actor, NA_SE_EV_RAINBOW_SHOWER - SFX_FLAG); } @@ -688,8 +688,8 @@ void func_809688C4(Actor* thisx, PlayState* play2) { u32 frames = play->state.frames; s32 i; - if ((i = (play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[1] != NULL)) && - (play->csCtx.npcActions[1]->action != 1)) { + if ((i = (play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[1] != NULL)) && + (play->csCtx.actorCues[1]->id != 1)) { OPEN_DISPS(play->state.gfxCtx, "../z_demo_6k.c", 1277); Gfx_SetupDL_25Xlu(play->state.gfxCtx); @@ -796,21 +796,21 @@ void func_80968FB0(Actor* thisx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_demo_6k.c", 1411); } -void func_809691BC(Demo6K* this, PlayState* play, s32 params) { +void func_809691BC(Demo6K* this, PlayState* play, s32 cueChannel) { Vec3f startPos; Vec3f endPos; f32 temp; - CsCmdActorAction* csAction = play->csCtx.npcActions[params]; + CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel]; - startPos.x = csAction->startPos.x; - startPos.y = csAction->startPos.y; - startPos.z = csAction->startPos.z; + startPos.x = cue->startPos.x; + startPos.y = cue->startPos.y; + startPos.z = cue->startPos.z; - endPos.x = csAction->endPos.x; - endPos.y = csAction->endPos.y; - endPos.z = csAction->endPos.z; + endPos.x = cue->endPos.x; + endPos.y = cue->endPos.y; + endPos.z = cue->endPos.z; - temp = Environment_LerpWeight(csAction->endFrame, csAction->startFrame, play->csCtx.frames); + temp = Environment_LerpWeight(cue->endFrame, cue->startFrame, play->csCtx.curFrame); this->actor.world.pos.x = LERP(startPos.x, endPos.x, temp); this->actor.world.pos.y = LERP(startPos.y, endPos.y, temp); diff --git a/src/overlays/actors/ovl_Demo_Du/z_demo_du.c b/src/overlays/actors/ovl_Demo_Du/z_demo_du.c index 305b542968..0c03001fec 100644 --- a/src/overlays/actors/ovl_Demo_Du/z_demo_du.c +++ b/src/overlays/actors/ovl_Demo_Du/z_demo_du.c @@ -102,41 +102,41 @@ void DemoDu_UpdateBgCheckInfo(DemoDu* this, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 75.0f, 30.0f, 30.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2); } -CsCmdActorAction* DemoDu_GetNpcAction(PlayState* play, s32 idx) { +CsCmdActorCue* DemoDu_GetCue(PlayState* play, s32 cueChannel) { if (play->csCtx.state != CS_STATE_IDLE) { - return play->csCtx.npcActions[idx]; + return play->csCtx.actorCues[cueChannel]; } return NULL; } -s32 DemoDu_IsNpcDoingThisAction(DemoDu* this, PlayState* play, u16 action, s32 idx) { - CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, idx); +s32 DemoDu_CheckForCue(DemoDu* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = DemoDu_GetCue(play, cueChannel); - if ((npcAction != NULL) && (npcAction->action == action)) { + if ((cue != NULL) && (cue->id == cueId)) { return true; } return false; } -s32 DemoDu_IsNpcNotDoingThisAction(DemoDu* this, PlayState* play, u16 action, s32 idx) { - CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, idx); +s32 DemoDu_CheckForNoCue(DemoDu* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = DemoDu_GetCue(play, cueChannel); - if ((npcAction != NULL) && (npcAction->action != action)) { + if ((cue != NULL) && (cue->id != cueId)) { return true; } return false; } -void DemoDu_MoveToNpcPos(DemoDu* this, PlayState* play, s32 idx) { - CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, idx); +void DemoDu_SetStartPosRotFromCue(DemoDu* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = DemoDu_GetCue(play, cueChannel); s32 pad; - if (npcAction != NULL) { - this->actor.world.pos.x = npcAction->startPos.x; - this->actor.world.pos.y = npcAction->startPos.y; - this->actor.world.pos.z = npcAction->startPos.z; + if (cue != NULL) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; - this->actor.world.rot.y = this->actor.shape.rot.y = npcAction->rot.y; + this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y; } } @@ -198,7 +198,7 @@ void DemoDu_CsFireMedallion_AdvanceTo01(DemoDu* this, PlayState* play) { Player* player = GET_PLAYER(play); this->updateIndex = CS_FIREMEDALLION_SUBSCENE(1); - play->csCtx.segment = D_8096C1A4; + play->csCtx.script = D_8096C1A4; gSaveContext.cutsceneTrigger = 2; Item_Give(play, ITEM_MEDALLION_FIRE); @@ -208,9 +208,9 @@ void DemoDu_CsFireMedallion_AdvanceTo01(DemoDu* this, PlayState* play) { void DemoDu_CsFireMedallion_AdvanceTo02(DemoDu* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[2]; + CsCmdActorCue* cue = play->csCtx.actorCues[2]; - if ((npcAction != NULL) && (npcAction->action != 1)) { + if ((cue != NULL) && (cue->id != 1)) { this->updateIndex = CS_FIREMEDALLION_SUBSCENE(2); this->drawIndex = 1; DemoDu_CsFireMedallion_SpawnDoorWarp(this, play); @@ -227,9 +227,9 @@ void DemoDu_CsFireMedallion_AdvanceTo03(DemoDu* this) { void DemoDu_CsFireMedallion_AdvanceTo04(DemoDu* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[2]; + CsCmdActorCue* cue = play->csCtx.actorCues[2]; - if ((npcAction != NULL) && (npcAction->action != 2)) { + if ((cue != NULL) && (cue->id != 2)) { Animation_Change(&this->skelAnime, &gDaruniaItemGiveAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaItemGiveAnim), 2, 0.0f); this->updateIndex = CS_FIREMEDALLION_SUBSCENE(4); @@ -247,9 +247,9 @@ void DemoDu_CsFireMedallion_AdvanceTo05(DemoDu* this, s32 animFinished) { void DemoDu_CsFireMedallion_AdvanceTo06(DemoDu* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[6]; + CsCmdActorCue* cue = play->csCtx.actorCues[6]; - if ((npcAction != NULL) && (npcAction->action == 2)) { + if ((cue != NULL) && (cue->id == 2)) { this->updateIndex = CS_FIREMEDALLION_SUBSCENE(6); func_80969F38(this, play); } @@ -309,7 +309,7 @@ void DemoDu_CsPlaySfx_GoronLanding(DemoDu* this) { // Cutscene: Darunia gives Link the Goron's Ruby. // Sfx played when Darunia is falling at the start of the cutscene. void DemoDu_CsPlaySfx_DaruniaFalling(PlayState* play) { - if (play->csCtx.frames == 160) { + if (play->csCtx.curFrame == 160) { func_800788CC(NA_SE_EV_OBJECT_FALL); } } @@ -332,7 +332,7 @@ void DemoDu_CsPlaySfx_HitBreast(DemoDu* this) { // Cutscene: Darunia gives Link the Goron's Ruby. // Sfx played when Link is escaping from the gorons at the end of the scene. void DemoDu_CsPlaySfx_LinkEscapeFromGorons(PlayState* play) { - if (play->csCtx.frames == 1400) { + if (play->csCtx.curFrame == 1400) { Player* player = GET_PLAYER(play); Audio_PlaySfxGeneral(NA_SE_VO_LI_FALL_L_KID, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, @@ -343,7 +343,7 @@ void DemoDu_CsPlaySfx_LinkEscapeFromGorons(PlayState* play) { // Cutscene: Darunia gives Link the Goron's Ruby. // Sfx played when Link is surprised by Darunia falling from the sky. void DemoDu_CsPlaySfx_LinkSurprised(PlayState* play) { - if (play->csCtx.frames == 174) { + if (play->csCtx.curFrame == 174) { Player* player = GET_PLAYER(play); Audio_PlaySfxGeneral(NA_SE_VO_LI_SURPRISE_KID, &player->actor.projectedPos, 4U, &gSfxDefaultFreqAndVolScale, @@ -352,7 +352,7 @@ void DemoDu_CsPlaySfx_LinkSurprised(PlayState* play) { } void DemoDu_CsGoronsRuby_UpdateFaceTextures(DemoDu* this, PlayState* play) { - u16* frames = &play->csCtx.frames; + u16* frames = &play->csCtx.curFrame; if (*frames < 260) { DemoDu_UpdateEyes(this); @@ -438,21 +438,21 @@ void DemoDu_CsGoronsRuby_DaruniaFalling(DemoDu* this, PlayState* play) { CutsceneContext* csCtx = &play->csCtx; if (csCtx->state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = csCtx->npcActions[2]; + CsCmdActorCue* cue = csCtx->actorCues[2]; Vec3f startPos; Vec3f endPos; Vec3f* pos = &this->actor.world.pos; - if (npcAction != NULL) { - f32 traveledPercent = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, csCtx->frames); + if (cue != NULL) { + f32 traveledPercent = Environment_LerpWeight(cue->endFrame, cue->startFrame, csCtx->curFrame); - startPos.x = npcAction->startPos.x; - startPos.y = npcAction->startPos.y; - startPos.z = npcAction->startPos.z; + startPos.x = cue->startPos.x; + startPos.y = cue->startPos.y; + startPos.z = cue->startPos.z; - endPos.x = npcAction->endPos.x; - endPos.y = npcAction->endPos.y; - endPos.z = npcAction->endPos.z; + endPos.x = cue->endPos.x; + endPos.y = cue->endPos.y; + endPos.z = cue->endPos.z; pos->x = LERP(startPos.x, endPos.x, traveledPercent); pos->y = LERP(startPos.y, endPos.y, traveledPercent); @@ -467,9 +467,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo01(DemoDu* this, PlayState* play) { void DemoDu_CsGoronsRuby_AdvanceTo02(DemoDu* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[2]; + CsCmdActorCue* cue = play->csCtx.actorCues[2]; - if ((npcAction != NULL) && (npcAction->action != 1)) { + if ((cue != NULL) && (cue->id != 1)) { Animation_Change(&this->skelAnime, &gDaruniaStandUpAfterFallingAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaStandUpAfterFallingAnim), 2, 0.0f); this->updateIndex = CS_GORONSRUBY_SUBSCENE(2); @@ -483,9 +483,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo03(DemoDu* this, PlayState* play) { CutsceneContext* csCtx = &play->csCtx; if (csCtx->state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = csCtx->npcActions[2]; + CsCmdActorCue* cue = csCtx->actorCues[2]; - if ((npcAction != NULL) && (csCtx->frames >= npcAction->endFrame)) { + if ((cue != NULL) && (csCtx->curFrame >= cue->endFrame)) { this->updateIndex = CS_GORONSRUBY_SUBSCENE(3); func_8096A630(this, play); } @@ -494,9 +494,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo03(DemoDu* this, PlayState* play) { void DemoDu_CsGoronsRuby_AdvanceTo04(DemoDu* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[2]; + CsCmdActorCue* cue = play->csCtx.actorCues[2]; - if ((npcAction != NULL) && (npcAction->action != 2)) { + if ((cue != NULL) && (cue->id != 2)) { this->updateIndex = CS_GORONSRUBY_SUBSCENE(4); } } @@ -512,9 +512,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo05(DemoDu* this, s32 animFinished) { void DemoDu_CsGoronsRuby_AdvanceTo06(DemoDu* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[2]; + CsCmdActorCue* cue = play->csCtx.actorCues[2]; - if ((npcAction != NULL) && (npcAction->action != 3)) { + if ((cue != NULL) && (cue->id != 3)) { Animation_Change(&this->skelAnime, &gDaruniaHitBreastAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaHitBreastAnim), 2, -4.0f); this->updateIndex = CS_GORONSRUBY_SUBSCENE(6); @@ -532,9 +532,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo07(DemoDu* this, s32 animFinished) { void DemoDu_CsGoronsRuby_AdvanceTo08(DemoDu* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[2]; + CsCmdActorCue* cue = play->csCtx.actorCues[2]; - if ((npcAction != NULL) && (npcAction->action != 4)) { + if ((cue != NULL) && (cue->id != 4)) { Animation_Change(&this->skelAnime, &gDaruniaHitLinkAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaHitLinkAnim), 2, 0.0f); this->updateIndex = CS_GORONSRUBY_SUBSCENE(8); @@ -560,9 +560,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo10(DemoDu* this, s32 animFinished) { void DemoDu_CsGoronsRuby_AdvanceTo11(DemoDu* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[2]; + CsCmdActorCue* cue = play->csCtx.actorCues[2]; - if ((npcAction != NULL) && (npcAction->action != 5)) { + if ((cue != NULL) && (cue->id != 5)) { Animation_Change(&this->skelAnime, &gDaruniaItemGiveAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaItemGiveAnim), 2, 0.0f); this->updateIndex = CS_GORONSRUBY_SUBSCENE(11); @@ -580,9 +580,9 @@ void DemoDu_CsGoronsRuby_AdvanceTo12(DemoDu* this, s32 animFinished) { void DemoDu_CsGoronsRuby_AdvanceTo13(DemoDu* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[2]; + CsCmdActorCue* cue = play->csCtx.actorCues[2]; - if ((npcAction != NULL) && (npcAction->action != 6)) { + if ((cue != NULL) && (cue->id != 6)) { Animation_Change(&this->skelAnime, &gDaruniaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gDaruniaIdleAnim), ANIMMODE_LOOP, 0.0f); this->updateIndex = CS_GORONSRUBY_SUBSCENE(13); @@ -718,7 +718,7 @@ void DemoDu_CsAfterGanon_SpawnDemo6K(DemoDu* this, PlayState* play) { } void DemoDu_CsAfterGanon_AdvanceTo01(DemoDu* this, PlayState* play) { - if (DemoDu_IsNpcDoingThisAction(this, play, 4, 2)) { + if (DemoDu_CheckForCue(this, play, 4, 2)) { this->updateIndex = CS_CHAMBERAFTERGANON_SUBSCENE(1); this->drawIndex = 2; this->shadowAlpha = 0; @@ -732,7 +732,7 @@ void DemoDu_CsAfterGanon_AdvanceTo02(DemoDu* this, PlayState* play) { f32* unk_1A4 = &this->unk_1A4; s32 shadowAlpha = 255; - if (DemoDu_IsNpcDoingThisAction(this, play, 4, 2)) { + if (DemoDu_CheckForCue(this, play, 4, 2)) { *unk_1A4 += 1.0f; if (*unk_1A4 >= kREG(5) + 10.0f) { this->updateIndex = CS_CHAMBERAFTERGANON_SUBSCENE(2); @@ -759,7 +759,7 @@ void DemoDu_CsAfterGanon_AdvanceTo02(DemoDu* this, PlayState* play) { } void DemoDu_CsAfterGanon_BackTo01(DemoDu* this, PlayState* play) { - if (DemoDu_IsNpcNotDoingThisAction(this, play, 4, 2)) { + if (DemoDu_CheckForNoCue(this, play, 4, 2)) { this->updateIndex = CS_CHAMBERAFTERGANON_SUBSCENE(1); this->drawIndex = 2; this->unk_1A4 = kREG(5) + 10.0f; @@ -850,7 +850,7 @@ void DemoDu_CsCredits_UpdateShadowAlpha(DemoDu* this) { } void DemoDu_CsCredits_AdvanceTo01(DemoDu* this, PlayState* play) { - DemoDu_MoveToNpcPos(this, play, 2); + DemoDu_SetStartPosRotFromCue(this, play, 2); this->updateIndex = CS_CREDITS_SUBSCENE(1); this->drawIndex = 2; } @@ -879,15 +879,15 @@ void DemoDu_CsCredits_BackTo02(DemoDu* this, s32 animFinished) { } } -void DemoDu_CsCredits_HandleSubscenesByNpcAction(DemoDu* this, PlayState* play) { - CsCmdActorAction* npcAction = DemoDu_GetNpcAction(play, 2); +void DemoDu_CsCredits_HandleCues(DemoDu* this, PlayState* play) { + CsCmdActorCue* cue = DemoDu_GetCue(play, 2); - if (npcAction != NULL) { - s32 action = npcAction->action; - s32 lastAction = this->lastAction; + if (cue != NULL) { + s32 nextCueId = cue->id; + s32 currentCueId = this->cueId; - if (action != lastAction) { - switch (action) { + if (nextCueId != currentCueId) { + switch (nextCueId) { case 9: DemoDu_CsCredits_AdvanceTo01(this, play); break; @@ -902,13 +902,13 @@ void DemoDu_CsCredits_HandleSubscenesByNpcAction(DemoDu* this, PlayState* play) osSyncPrintf("Demo_Du_inEnding_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); break; } - this->lastAction = action; + this->cueId = nextCueId; } } } void DemoDu_UpdateCs_CR_00(DemoDu* this, PlayState* play) { - DemoDu_CsCredits_HandleSubscenesByNpcAction(this, play); + DemoDu_CsCredits_HandleCues(this, play); } void DemoDu_UpdateCs_CR_01(DemoDu* this, PlayState* play) { @@ -923,14 +923,14 @@ void DemoDu_UpdateCs_CR_02(DemoDu* this, PlayState* play) { DemoDu_UpdateBgCheckInfo(this, play); DemoDu_UpdateSkelAnime(this); DemoDu_UpdateEyes(this); - DemoDu_CsCredits_HandleSubscenesByNpcAction(this, play); + DemoDu_CsCredits_HandleCues(this, play); } void DemoDu_UpdateCs_CR_03(DemoDu* this, PlayState* play) { DemoDu_UpdateBgCheckInfo(this, play); DemoDu_UpdateSkelAnime(this); DemoDu_UpdateEyes(this); - DemoDu_CsCredits_HandleSubscenesByNpcAction(this, play); + DemoDu_CsCredits_HandleCues(this, play); } void DemoDu_UpdateCs_CR_04(DemoDu* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Demo_Du/z_demo_du.h b/src/overlays/actors/ovl_Demo_Du/z_demo_du.h index 93d91eb5f1..d46f03145e 100644 --- a/src/overlays/actors/ovl_Demo_Du/z_demo_du.h +++ b/src/overlays/actors/ovl_Demo_Du/z_demo_du.h @@ -18,7 +18,7 @@ typedef struct DemoDu { /* 0x01A4 */ f32 unk_1A4; /* 0x01A8 */ s32 shadowAlpha; /* 0x01AC */ s32 demo6KSpawned; - /* 0x01B0 */ s32 lastAction; + /* 0x01B0 */ s32 cueId; } DemoDu; // size = 0x01B4 // This is the parameter of this actor, diff --git a/src/overlays/actors/ovl_Demo_Du/z_demo_du_cutscene_data.inc.c b/src/overlays/actors/ovl_Demo_Du/z_demo_du_cutscene_data.inc.c index a937b655be..46844cc672 100644 --- a/src/overlays/actors/ovl_Demo_Du/z_demo_du_cutscene_data.inc.c +++ b/src/overlays/actors/ovl_Demo_Du/z_demo_du_cutscene_data.inc.c @@ -6,182 +6,182 @@ static CutsceneData D_8096C1A4[] = { CS_BEGIN_CUTSCENE(31, 3000), CS_UNK_DATA_LIST(0x00000020, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(31, 5), - CS_NPC_ACTION(0x0001, 0, 546, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 546, 547, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0004, 547, 616, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 616, 667, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 82, 0, 0.0f, -2.627451f, 0.0f), - CS_NPC_ACTION(0x0003, 667, 2834, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION_LIST(3), - CS_PLAYER_ACTION(0x000D, 0, 280, 0x0000, 0x6AAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0005, 280, 531, 0x0000, 0x6AAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0013, 531, 1716, 0x0000, 0xEAAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), - CS_NPC_ACTION_LIST(41, 3), - CS_NPC_ACTION(0x0001, 0, 170, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 170, 465, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0003, 465, 2915, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(49, 1), - CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -16, -121, 0, -16, -121, 0.0f, 0.0f, 0.0f), - CS_SCENE_TRANS_FX(0x0001, 530, 539), - CS_SCENE_TRANS_FX(0x0005, 540, 570), - CS_LIGHTING_LIST(2), - CS_LIGHTING(0x0001, 0, 10, 0x0000, 0x00000000, 0xFFFFFFDC, 0x00000000, 0x00000018, 0xFFFFFFDC, 0x00000000, 0x00000018), - CS_LIGHTING(0x0001, 10, 3000, 0x0000, 0x00000000, 0xFFFFFFDC, 0x00000000, 0x00000018, 0xFFFFFFDC, 0x00000000, 0x00000018), - CS_NPC_ACTION_LIST(39, 1), - CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, 0, -2, 0, 0, -2, 0.0f, 0.0f, 0.0f), - CS_SCENE_TRANS_FX(0x0001, 805, 835), - CS_NPC_ACTION_LIST(62, 1), - CS_NPC_ACTION(0x0004, 0, 3000, 0x0000, 0x0000, 0x0000, 32, 80, -51, 32, 80, -51, 0.0f, 0.0f, 0.0f), - CS_TERMINATOR(DEATH_MOUNTAIN_CRATER_AFTER_FIRE_BLUE_WARP, 905, 1030), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x0044, 615, 616, 0x0000, 0x00000000, 0xFFFFFF97, 0x00000000, 0x00000030, 0xFFFFFF97, 0x00000000, 0x00000030), - CS_FADE_BGM_LIST(1), - CS_FADE_BGM(0x0004, 500, 550, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC3, 0x0000006E, 0x00000000, 0xFFFFFFC3, 0x0000006E), + CS_ACTOR_CUE_LIST(31, 5), + CS_ACTOR_CUE(0x0001, 0, 546, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 546, 547, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0004, 547, 616, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 216, -10, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 616, 667, 0x0000, 0x0000, 0x0000, 0, 216, -10, 0, 82, 0, 0.0f, -2.627451f, 0.0f), + CS_ACTOR_CUE(0x0003, 667, 2834, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE_LIST(3), + CS_PLAYER_CUE(0x000D, 0, 280, 0x0000, 0x6AAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0005, 280, 531, 0x0000, 0x6AAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0013, 531, 1716, 0x0000, 0xEAAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), + CS_ACTOR_CUE_LIST(41, 3), + CS_ACTOR_CUE(0x0001, 0, 170, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 170, 465, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0003, 465, 2915, 0x0000, 0x0000, 0x0000, 98, 6, -169, 98, 6, -169, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(49, 1), + CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -16, -121, 0, -16, -121, 0.0f, 0.0f, 0.0f), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 530, 539), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 540, 570), + CS_LIGHT_SETTING_LIST(2), + CS_LIGHT_SETTING(0x0000, 0, 10, 0x0000, 0x00000000, 0xFFFFFFDC, 0x00000000, 0x00000018, 0xFFFFFFDC, 0x00000000, 0x00000018), + CS_LIGHT_SETTING(0x0000, 10, 3000, 0x0000, 0x00000000, 0xFFFFFFDC, 0x00000000, 0x00000018, 0xFFFFFFDC, 0x00000000, 0x00000018), + CS_ACTOR_CUE_LIST(39, 1), + CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, 0, -2, 0, 0, -2, 0.0f, 0.0f, 0.0f), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 805, 835), + CS_ACTOR_CUE_LIST(62, 1), + CS_ACTOR_CUE(0x0004, 0, 3000, 0x0000, 0x0000, 0x0000, 32, 80, -51, 32, 80, -51, 0.0f, 0.0f, 0.0f), + CS_DESTINATION(CS_DEST_DEATH_MOUNTAIN_CRATER_FROM_CHAMBER_OF_SAGES, 905, 1030), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_MEDALLION_GET, 615, 616, 0x0000, 0x00000000, 0xFFFFFF97, 0x00000000, 0x00000030, 0xFFFFFF97, 0x00000000, 0x00000030), + CS_FADE_OUT_SEQ_LIST(1), + CS_FADE_OUT_SEQ(CS_FADE_OUT_BGM_MAIN, 500, 550, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC3, 0x0000006E, 0x00000000, 0xFFFFFFC3, 0x0000006E), CS_TEXT_LIST(10), CS_TEXT_NONE(0, 310), - CS_TEXT_DISPLAY_TEXTBOX(0x303C, 310, 323, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x303C, 310, 323, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(323, 344), - CS_TEXT_DISPLAY_TEXTBOX(0x3045, 344, 394, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x3045, 344, 394, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(394, 415), - CS_TEXT_DISPLAY_TEXTBOX(0x3046, 415, 465, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x3046, 415, 465, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(465, 800), - CS_TEXT_DISPLAY_TEXTBOX(0x003C, 800, 805, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x003C, 800, 805, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(805, 865), - CS_TEXT_DISPLAY_TEXTBOX(0x303D, 865, 875, 0x0000, 0x0000, 0x0000), - CS_CAM_EYE_LIST(0, 1361), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, -85, 3211, 795, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, -85, 3211, 795, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, -85, 2925, 795, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 70, 974, 497, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 320, 268, 296, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 312, 190, 150, 0x013D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x013F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x014E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x015F), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.4f, 261, 61, -65, 0x0161), - CS_CAM_EYE_LIST(263, 509), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 29.399885f, 89, 30, -103, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00E8), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.2f, 89, 30, -103, 0x00EA), - CS_CAM_EYE_LIST(333, 1424), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00E8), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.999947f, 114, 50, -116, 0x00EA), - CS_CAM_EYE_LIST(403, 1494), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00E8), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.599945f, 26, 45, -10, 0x00EA), - CS_CAM_EYE_LIST(443, 1624), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 11, 23, -17, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 11, 23, -17, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 27, 31, -45, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x013D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x013F), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.399944f, 45, 40, -76, 0x002E), - CS_CAM_EYE_LIST(473, 1604), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x013D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x013F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x002E), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 70.39992f, 192, 278, -246, 0x0063), - CS_CAM_EYE_LIST(539, 881), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x013D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x013F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x002E), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x0063), - CS_CAM_EYE_REL_TO_PLAYER_LIST(615, 1796), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C6), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C8), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0x00D7), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00E8), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00EA), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013D), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013F), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x002E), - CS_CAM_AT_LIST(0, 1390), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 60, 60.4f, -115, 3163, 585, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 60, 60.4f, -115, 3163, 585, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 60, 60.4f, -115, 2877, 585, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4f, 27, 824, 348, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.4f, 197, 143, 174, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.4f, 147, 100, 55, 0x013D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.4f, 55, 35, -65, 0x013F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 60.4f, 55, 35, -65, 0x014E), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4f, 55, 35, -65, 0x015F), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.4f, 56, 35, -65, 0x0161), - CS_CAM_AT_LIST(263, 538), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 78.99979f, 87, 157, -391, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 82, 78.79979f, 87, 157, -391, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 103, 70.79991f, 87, 157, -391, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.2f, 87, 157, -391, 0x00E8), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.2f, 87, 157, -391, 0x00EA), - CS_CAM_AT_LIST(333, 1453), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.999947f, -52, 127, -309, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00E8), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.999947f, -52, 127, -309, 0x00EA), - CS_CAM_AT_LIST(403, 1523), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.599945f, -269, 186, 13, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00E8), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.599945f, -269, 186, 13, 0x00EA), - CS_CAM_AT_LIST(443, 1653), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 163, 70, -283, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 163, 70, -283, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 177, 74, -309, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 193, 92, -337, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 193, 92, -337, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.399944f, 192, 91, -336, 0x013D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 192, 91, -336, 0x013F), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.399944f, 192, 91, -336, 0x002E), - CS_CAM_AT_LIST(473, 1633), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -53, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -53, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -54, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 45.999947f, -8, 57, -54, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 70.39992f, 149, 547, -205, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 70.39992f, 149, 547, -205, 0x013D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 70.39992f, 149, 547, -205, 0x013F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.39992f, 149, 547, -205, 0x002E), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 70.39992f, 149, 547, -205, 0x0063), - CS_CAM_AT_LIST(539, 930), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x002E), - CS_CAM_AT(CS_CMD_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x0063), - CS_CAM_AT_REL_TO_PLAYER_LIST(615, 1825), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x00C6), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x00C8), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0x00D7), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00E8), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00EA), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x013D), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x013F), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x002E), + CS_TEXT(0x303D, 865, 875, 0x0000, 0x0000, 0x0000), + CS_CAM_EYE_SPLINE(0, 1361), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, -85, 3211, 795, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, -85, 3211, 795, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, -85, 2925, 795, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 70, 974, 497, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 320, 268, 296, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 312, 190, 150, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x014E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4f, 261, 61, -65, 0x015F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.4f, 261, 61, -65, 0x0161), + CS_CAM_EYE_SPLINE(263, 509), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 29.399885f, 89, 30, -103, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.2f, 89, 30, -103, 0x00E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.2f, 89, 30, -103, 0x00EA), + CS_CAM_EYE_SPLINE(333, 1424), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.999947f, 114, 50, -116, 0x00E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.999947f, 114, 50, -116, 0x00EA), + CS_CAM_EYE_SPLINE(403, 1494), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 26, 45, -10, 0x00E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.599945f, 26, 45, -10, 0x00EA), + CS_CAM_EYE_SPLINE(443, 1624), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 11, 23, -17, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 11, 23, -17, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 27, 31, -45, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 45, 40, -76, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.399944f, 45, 40, -76, 0x002E), + CS_CAM_EYE_SPLINE(473, 1604), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, 192, 29, -246, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.39992f, 192, 278, -246, 0x002E), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 70.39992f, 192, 278, -246, 0x0063), + CS_CAM_EYE_SPLINE(539, 881), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x002E), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x0063), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(615, 1796), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x002E), + CS_CAM_AT_SPLINE(0, 1390), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 60, 60.4f, -115, 3163, 585, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 60, 60.4f, -115, 3163, 585, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 60, 60.4f, -115, 2877, 585, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4f, 27, 824, 348, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.4f, 197, 143, 174, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.4f, 147, 100, 55, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.4f, 55, 35, -65, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.4f, 55, 35, -65, 0x014E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4f, 55, 35, -65, 0x015F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.4f, 56, 35, -65, 0x0161), + CS_CAM_AT_SPLINE(263, 538), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 78.99979f, 87, 157, -391, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 82, 78.79979f, 87, 157, -391, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 103, 70.79991f, 87, 157, -391, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.2f, 87, 157, -391, 0x00E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.2f, 87, 157, -391, 0x00EA), + CS_CAM_AT_SPLINE(333, 1453), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.999947f, -52, 127, -309, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.999947f, -52, 127, -309, 0x00E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.999947f, -52, 127, -309, 0x00EA), + CS_CAM_AT_SPLINE(403, 1523), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.599945f, -269, 186, 13, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -269, 186, 13, 0x00E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.599945f, -269, 186, 13, 0x00EA), + CS_CAM_AT_SPLINE(443, 1653), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 163, 70, -283, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 163, 70, -283, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 177, 74, -309, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 193, 92, -337, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 193, 92, -337, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.399944f, 192, 91, -336, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 192, 91, -336, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.399944f, 192, 91, -336, 0x002E), + CS_CAM_AT_SPLINE(473, 1633), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -53, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -53, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 45.199944f, -9, 57, -54, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 45.999947f, -8, 57, -54, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 70.39992f, 149, 547, -205, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 70.39992f, 149, 547, -205, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 70.39992f, 149, 547, -205, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.39992f, 149, 547, -205, 0x002E), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 70.39992f, 149, 547, -205, 0x0063), + CS_CAM_AT_SPLINE(539, 930), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x002E), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x0063), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(615, 1825), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x002E), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c index e288c84f63..8c46fd31dc 100644 --- a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c +++ b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c @@ -332,23 +332,23 @@ void DemoEc_UseAnimationObject(DemoEc* this, PlayState* play) { gSegments[6] = VIRTUAL_TO_PHYSICAL(play->objectCtx.status[animObjBankIndex].segment); } -CsCmdActorAction* DemoEc_GetNpcAction(PlayState* play, s32 actionIndex) { +CsCmdActorCue* DemoEc_GetCue(PlayState* play, s32 cueChannel) { if (play->csCtx.state != CS_STATE_IDLE) { - return play->csCtx.npcActions[actionIndex]; + return play->csCtx.actorCues[cueChannel]; } else { return NULL; } } -void DemoEc_SetNpcActionPosRot(DemoEc* this, PlayState* play, s32 actionIndex) { - CsCmdActorAction* npcAction = DemoEc_GetNpcAction(play, actionIndex); +void DemoEc_SetStartPosRotFromCue(DemoEc* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = DemoEc_GetCue(play, cueChannel); - if (npcAction != NULL) { - this->actor.world.pos.x = npcAction->startPos.x; - this->actor.world.pos.y = npcAction->startPos.y; - this->actor.world.pos.z = npcAction->startPos.z; + if (cue != NULL) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; - this->actor.world.rot.y = this->actor.shape.rot.y = npcAction->rot.y; + this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y; } } @@ -823,20 +823,21 @@ void func_8096F26C(DemoEc* this, s32 arg1) { } } -void func_8096F2B0(DemoEc* this, PlayState* play, s32 arg2) { - CsCmdActorAction* npcAction; - s32 sp18; +void func_8096F2B0(DemoEc* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = DemoEc_GetCue(play, cueChannel); - npcAction = DemoEc_GetNpcAction(play, arg2); + if (cue != NULL) { + s32 nextCueId = cue->id; + s32 currentCueId = this->cueId; - if (npcAction != NULL) { - sp18 = npcAction->action; - if (sp18 != this->npcAction) { - if (this->npcAction) {} - if (sp18 == 2) { - func_8096F224(this, play); + if (nextCueId != currentCueId) { + switch (nextCueId) { + case 2: + func_8096F224(this, play); + break; } - this->npcAction = sp18; + + this->cueId = nextCueId; } } } @@ -844,7 +845,7 @@ void func_8096F2B0(DemoEc* this, PlayState* play, s32 arg2) { void DemoEc_UpdateKingZora(DemoEc* this, PlayState* play) { DemoEc_UpdateSkelAnime(this); func_8096D594(this, play); - DemoEc_SetNpcActionPosRot(this, play, 6); + DemoEc_SetStartPosRotFromCue(this, play, 6); DemoEc_UpdateBgFlags(this, play); func_8096F2B0(this, play, 6); } @@ -897,19 +898,23 @@ void func_8096F544(DemoEc* this, s32 changeAnim) { } } -void func_8096F578(DemoEc* this, PlayState* play, s32 arg2) { - CsCmdActorAction* npcAction; - s32 sp18; +void func_8096F578(DemoEc* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue; - npcAction = DemoEc_GetNpcAction(play, arg2); - if (npcAction != NULL) { - sp18 = npcAction->action; - if (sp18 != this->npcAction) { - if (this->npcAction) {} - if (sp18 == 2) { - func_8096F4FC(this, play); + cue = DemoEc_GetCue(play, cueChannel); + + if (cue != NULL) { + s32 nextCueId = cue->id; + s32 currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { + case 2: + func_8096F4FC(this, play); + break; } - this->npcAction = sp18; + + this->cueId = nextCueId; } } } @@ -917,7 +922,7 @@ void func_8096F578(DemoEc* this, PlayState* play, s32 arg2) { void DemoEc_UpdateMido(DemoEc* this, PlayState* play) { DemoEc_UpdateSkelAnime(this); func_8096D594(this, play); - DemoEc_SetNpcActionPosRot(this, play, 7); + DemoEc_SetStartPosRotFromCue(this, play, 7); DemoEc_UpdateBgFlags(this, play); func_8096F578(this, play, 7); } diff --git a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.h b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.h index e39e0addc2..a93a8589ac 100644 --- a/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.h +++ b/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.h @@ -17,7 +17,7 @@ typedef struct DemoEc { /* 0x0192 */ s16 blinkTimer; /* 0x0194 */ s32 updateMode; /* 0x0198 */ s32 drawConfig; - /* 0x019C */ s32 npcAction; + /* 0x019C */ s32 cueId; /* 0x01A0 */ s32 drawObjBankIndex; /* 0x01A4 */ s32 animObjBankIndex; } DemoEc; // size = 0x01A8 diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index 6b4b262e46..cf75a5c300 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -57,10 +57,10 @@ void DemoEffect_UpdateTimeWarpReturnFromChamberOfSages(DemoEffect* this, PlaySta void DemoEffect_UpdateTimeWarpPullMasterSword(DemoEffect* this, PlayState* play); void DemoEffect_UpdateTimeWarpTimeblock(DemoEffect* this, PlayState* play); -s32 DemoEffect_CheckCsAction(DemoEffect* this, PlayState* play, s32 csActionCompareId); -void DemoEffect_InitPositionFromCsAction(DemoEffect* this, PlayState* play, s32 csActionIndex); -void DemoEffect_MoveToCsEndpoint(DemoEffect* this, PlayState* play, s32 csActionId, s32 shouldUpdateFacing); -void DemoEffect_MoveGetItem(DemoEffect* this, PlayState* play, s32 csActionId, f32 speed); +s32 DemoEffect_CheckForCue(DemoEffect* this, PlayState* play, s32 cueId); +void DemoEffect_SetStartPosFromCue(DemoEffect* this, PlayState* play, s32 cueChannel); +void DemoEffect_SetPosRotFromCue(DemoEffect* this, PlayState* play, s32 cueChannel, s32 shouldUpdateFacing); +void DemoEffect_MoveTowardCuePos(DemoEffect* this, PlayState* play, s32 cueChannel, f32 speed); ActorInit Demo_Effect_InitVars = { ACTOR_DEMO_EFFECT, @@ -115,28 +115,23 @@ static Color_RGB8 sJewelSparkleColors[5][2] = { { { 223, 0, 0 }, { 0, 0, 0 } }, }; -/** - * Sets up the update function. - */ void DemoEffect_SetupUpdate(DemoEffect* this, DemoEffectFunc updateFunc) { this->updateFunc = updateFunc; } /** - * Gives a number on the range of 0.0f - 1.0f representing current cutscene action completion percentage. + * Gives a number on the range of 0.0f - 1.0f representing current cue completion percentage. */ -f32 DemoEffect_InterpolateCsFrames(PlayState* play, s32 csActionId) { - f32 interpolated = Environment_LerpWeight(play->csCtx.npcActions[csActionId]->endFrame, - play->csCtx.npcActions[csActionId]->startFrame, play->csCtx.frames); +f32 DemoEffect_InterpolateCsFrames(PlayState* play, s32 cueChannel) { + f32 interpolated = Environment_LerpWeight(play->csCtx.actorCues[cueChannel]->endFrame, + play->csCtx.actorCues[cueChannel]->startFrame, play->csCtx.curFrame); if (interpolated > 1.0f) { interpolated = 1.0f; } + return interpolated; } -/** - * Initializes information for Jewel/Spritual Stone actors. - */ void DemoEffect_InitJewel(PlayState* play, DemoEffect* this) { this->initDrawFunc = DemoEffect_DrawJewel; if (!LINK_IS_ADULT) { @@ -149,7 +144,7 @@ void DemoEffect_InitJewel(PlayState* play, DemoEffect* this) { } else { Actor_SetScale(&this->actor, 0.10f); } - this->csActionId = 1; + this->cueChannel = 1; this->actor.shape.rot.x = 16384; DemoEffect_InitJewelColor(this); this->jewel.alpha = 0; @@ -157,22 +152,15 @@ void DemoEffect_InitJewel(PlayState* play, DemoEffect* this) { sSfxJewelId[0] = 0; } -/** - * Initializes information for Get Item actors. - * These are the Medal and Light Arrow actors. - */ void DemoEffect_InitGetItem(DemoEffect* this) { this->getItem.isPositionInit = 0; this->getItem.isLoaded = 0; this->initDrawFunc = DemoEffect_DrawGetItem; this->initUpdateFunc = DemoEffect_UpdateGetItem; Actor_SetScale(&this->actor, 0.25f); - this->csActionId = 6; + this->cueChannel = 6; } -/** - * Main Actor Init function - */ void DemoEffect_Init(Actor* thisx, PlayState* play2) { PlayState* play = play2; DemoEffect* this = (DemoEffect*)thisx; @@ -301,7 +289,7 @@ void DemoEffect_Init(Actor* thisx, PlayState* play2) { this->envXluColor[2] = 0; break; } - this->csActionId = 7; + this->cueChannel = 7; Actor_SetScale(thisx, 0.0f); break; @@ -323,7 +311,7 @@ void DemoEffect_Init(Actor* thisx, PlayState* play2) { this->godLgt.type = GOD_LGT_DIN; this->godLgt.rotation = 0; this->initUpdateFunc = DemoEffect_UpdateGodLgtDin; - this->csActionId = 0; + this->cueChannel = 0; break; case DEMO_EFFECT_GOD_LGT_NAYRU: @@ -344,7 +332,7 @@ void DemoEffect_Init(Actor* thisx, PlayState* play2) { this->godLgt.rotation = 0; this->godLgt.lightRingSpawnTimer = 0; this->initUpdateFunc = DemoEffect_UpdateGodLgtNayru; - this->csActionId = 1; + this->cueChannel = 1; break; case DEMO_EFFECT_GOD_LGT_FARORE: @@ -363,7 +351,7 @@ void DemoEffect_Init(Actor* thisx, PlayState* play2) { this->godLgt.type = GOD_LGT_FARORE; this->godLgt.rotation = 0; this->initUpdateFunc = DemoEffect_UpdateGodLgtFarore; - this->csActionId = 2; + this->cueChannel = 2; break; case DEMO_EFFECT_LIGHTRING_EXPANDING: @@ -380,7 +368,7 @@ void DemoEffect_Init(Actor* thisx, PlayState* play2) { this->lightRing.timer = 20; this->lightRing.timerIncrement = 4; this->lightRing.alpha = 0; - this->csActionId = 4; + this->cueChannel = 4; break; case DEMO_EFFECT_LIGHTRING_SHRINKING: @@ -399,7 +387,7 @@ void DemoEffect_Init(Actor* thisx, PlayState* play2) { this->triforceSpot.triforceSpotOpacity = 0; this->triforceSpot.rotation = 0; this->primXluColor[0] = 0; - this->csActionId = 3; + this->cueChannel = 3; Actor_SetScale(&this->actor, 0.020f); @@ -502,7 +490,7 @@ void DemoEffect_Init(Actor* thisx, PlayState* play2) { this->initDrawFunc = NULL; this->initUpdateFunc = DemoEffect_UpdateDust; this->dust.timer = 0; - this->csActionId = 2; + this->cueChannel = 2; break; default: @@ -514,9 +502,6 @@ void DemoEffect_Init(Actor* thisx, PlayState* play2) { DemoEffect_SetupUpdate(this, DemoEffect_Wait); } -/** - * Main Actor Destroy function - */ void DemoEffect_Destroy(Actor* thisx, PlayState* play) { DemoEffect* this = (DemoEffect*)thisx; s32 effectType = (this->actor.params & 0x00FF); @@ -548,7 +533,6 @@ void DemoEffect_Wait(DemoEffect* this, PlayState* play) { */ void DemoEffect_UpdatePositionToParent(DemoEffect* this, PlayState* play) { if (this->actor.parent != NULL) { - // Struct copy affects regalloc this->actor.world.pos.x = this->actor.parent->world.pos.x; this->actor.world.pos.y = this->actor.parent->world.pos.y; this->actor.world.pos.z = this->actor.parent->world.pos.z; @@ -566,9 +550,6 @@ void DemoEffect_UpdateCrystalLight(DemoEffect* this, PlayState* play) { this->actor.world.pos.y += 14.0f; } -/** - * Spawns sparkle effects for Medals - */ void DemoEffect_MedalSparkle(DemoEffect* this, PlayState* play, s32 isSmallSpawner) { Vec3f velocity; Vec3f accel; @@ -610,16 +591,16 @@ void DemoEffect_MedalSparkle(DemoEffect* this, PlayState* play, s32 isSmallSpawn /** * Update function for the GetItem Actors. * Medals and Light Arrows. - * It spawns Medal Sparkle Effects and scales/moves the Actor based on the current Cutscene Action + * It spawns Medal Sparkle Effects and scales/moves the Actor based on the current cue */ void DemoEffect_UpdateGetItem(DemoEffect* this, PlayState* play) { Actor* thisx = &this->actor; - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[this->csActionId] != NULL) { + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[this->cueChannel] != NULL) { if (this->getItem.isPositionInit) { - DemoEffect_MoveGetItem(this, play, this->csActionId, 0.1f); + DemoEffect_MoveTowardCuePos(this, play, this->cueChannel, 0.1f); } else { - DemoEffect_InitPositionFromCsAction(this, play, this->csActionId); + DemoEffect_SetStartPosFromCue(this, play, this->cueChannel); this->getItem.isPositionInit = 1; } @@ -632,7 +613,7 @@ void DemoEffect_UpdateGetItem(DemoEffect* this, PlayState* play) { Actor_SetScale(thisx, 0.20f); if (gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_0) { - switch (play->csCtx.npcActions[this->csActionId]->action) { + switch (play->csCtx.actorCues[this->cueChannel]->id) { case 2: DemoEffect_MedalSparkle(this, play, 0); break; @@ -641,7 +622,7 @@ void DemoEffect_UpdateGetItem(DemoEffect* this, PlayState* play) { break; } } - switch (play->csCtx.npcActions[this->csActionId]->action) { + switch (play->csCtx.actorCues[this->cueChannel]->id) { case 2: if (gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_0) { Actor_PlaySfx(thisx, NA_SE_EV_MEDAL_APPEAR_L - SFX_FLAG); @@ -715,7 +696,7 @@ void DemoEffect_InitTimeWarp(DemoEffect* this, PlayState* play) { * It changes the Background Music and updates its SkelCurve animation. */ void DemoEffect_UpdateTimeWarpPullMasterSword(DemoEffect* this, PlayState* play) { - if (Flags_GetEnv(play, 1)) { + if (CutsceneFlags_Get(play, 1)) { if (!(this->effectFlags & 0x2)) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_SWORD_GLOW); this->effectFlags |= 0x2; @@ -828,10 +809,10 @@ void DemoEffect_InitTimeWarpTimeblock(DemoEffect* this, PlayState* play) { void DemoEffect_UpdateTriforceSpot(DemoEffect* this, PlayState* play) { this->triforceSpot.rotation += 0x03E8; - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[this->csActionId] != NULL) { - DemoEffect_MoveToCsEndpoint(this, play, this->csActionId, 0); + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[this->cueChannel] != NULL) { + DemoEffect_SetPosRotFromCue(this, play, this->cueChannel, 0); - if (play->csCtx.npcActions[this->csActionId]->action == 2) { + if (play->csCtx.actorCues[this->cueChannel]->id == 2) { if (this->primXluColor[0] < 140) { this->primXluColor[0]++; } @@ -853,7 +834,7 @@ void DemoEffect_UpdateTriforceSpot(DemoEffect* this, PlayState* play) { } if (gSaveContext.entranceIndex == ENTR_CUTSCENE_MAP_0 && gSaveContext.sceneLayer == 6 && - play->csCtx.frames == 143) { + play->csCtx.curFrame == 143) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_RING_EXPLOSION); } } @@ -905,7 +886,6 @@ void DemoEffect_UpdateLightRingExpanding(DemoEffect* this, PlayState* play) { /** * Update function for the Lightring Actor that expands. This is a special version for the Triforce Actor. - * This version spawns a blue orb when the cutscene action state is set to 2. * Once the Blue Orb Actor is spawned the Update Function is changed to the regular Light Ring Expanding Update Func. */ void DemoEffect_UpdateLightRingTriforce(DemoEffect* this, PlayState* play) { @@ -914,7 +894,7 @@ void DemoEffect_UpdateLightRingTriforce(DemoEffect* this, PlayState* play) { DemoEffect_UpdatePositionToParent(this, play); if (play->csCtx.state != CS_STATE_IDLE) { - if (play->csCtx.npcActions[this->csActionId] != NULL && play->csCtx.npcActions[this->csActionId]->action == 2) { + if (play->csCtx.actorCues[this->cueChannel] != NULL && play->csCtx.actorCues[this->cueChannel]->id == 2) { blueOrb = (DemoEffect*)Actor_Spawn(&play->actorCtx, play, ACTOR_DEMO_EFFECT, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, DEMO_EFFECT_BLUE_ORB); @@ -939,7 +919,7 @@ void DemoEffect_UpdateCreationFireball(DemoEffect* this, PlayState* play) { DemoEffect* effect; Actor_MoveForward(&this->actor); - this->actor.speedXZ = this->actor.speedXZ + (this->actor.gravity * 0.5f); + this->actor.speed += this->actor.gravity * 0.5f; if (this->fireBall.timer != 0) { this->fireBall.timer--; @@ -980,7 +960,7 @@ void DemoEffect_InitCreationFireball(DemoEffect* this, PlayState* play) { this->actor.world.rot.y = parent->shape.rot.y; this->fireBall.timer = 50; - this->actor.speedXZ = 1.5f; + this->actor.speed = 1.5f; this->actor.minVelocityY = -1.5f; this->actor.gravity = -0.03f; this->updateFunc = DemoEffect_UpdateCreationFireball; @@ -1033,14 +1013,14 @@ void DemoEffect_UpdateBlueOrbGrow(DemoEffect* this, PlayState* play) { * This function updates the position and scale of the actor based on the current cutscene command. */ void DemoEffect_UpdateLightEffect(DemoEffect* this, PlayState* play) { - u16 action; + u16 pad; s32 isLargeSize; isLargeSize = ((this->actor.params & 0x0F00) >> 8); - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[this->csActionId] != NULL) { - DemoEffect_MoveToCsEndpoint(this, play, this->csActionId, 0); - switch (play->csCtx.npcActions[this->csActionId]->action) { + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[this->cueChannel] != NULL) { + DemoEffect_SetPosRotFromCue(this, play, this->cueChannel, 0); + switch (play->csCtx.actorCues[this->cueChannel]->id) { case 2: if (this->light.rotation < 240) { if (!isLargeSize) { @@ -1068,15 +1048,15 @@ void DemoEffect_UpdateLightEffect(DemoEffect* this, PlayState* play) { break; } - if (play->sceneId == SCENE_KOKIRI_FOREST && gSaveContext.sceneLayer == 6 && play->csCtx.frames == 197) { + if (play->sceneId == SCENE_KOKIRI_FOREST && gSaveContext.sceneLayer == 6 && play->csCtx.curFrame == 197) { Actor_PlaySfx(&this->actor, NA_SE_EV_WHITE_OUT); } if (play->sceneId == SCENE_DEATH_MOUNTAIN_TRAIL && gSaveContext.sceneLayer == 5) { - if (!DemoEffect_CheckCsAction(this, play, 1)) { + if (!DemoEffect_CheckForCue(this, play, 1)) { Actor_PlaySfx(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); } - if (play->csCtx.frames == 640) { + if (play->csCtx.curFrame == 640) { Actor_PlaySfx(&this->actor, NA_SE_EV_WHITE_OUT); } @@ -1084,10 +1064,10 @@ void DemoEffect_UpdateLightEffect(DemoEffect* this, PlayState* play) { } if (play->sceneId == SCENE_ZORAS_FOUNTAIN && gSaveContext.sceneLayer == 4) { - if (!DemoEffect_CheckCsAction(this, play, 1)) { + if (!DemoEffect_CheckForCue(this, play, 1)) { Actor_PlaySfx(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); } - if (play->csCtx.frames == 648) { + if (play->csCtx.curFrame == 648) { Actor_PlaySfx(&this->actor, NA_SE_EV_WHITE_OUT); } @@ -1098,13 +1078,13 @@ void DemoEffect_UpdateLightEffect(DemoEffect* this, PlayState* play) { if (play->sceneId == SCENE_TEMPLE_OF_TIME && gSaveContext.sceneLayer == 14) { if (1) {} - if (play->csCtx.npcActions[this->csActionId]->action == 2) { + if (play->csCtx.actorCues[this->cueChannel]->id == 2) { Actor_PlaySfx(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); } } if (play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_MAGIC || play->sceneId == SCENE_GREAT_FAIRYS_FOUNTAIN_SPELLS) { - if (play->csCtx.npcActions[this->csActionId]->action == 2) { + if (play->csCtx.actorCues[this->cueChannel]->id == 2) { Actor_PlaySfx(&this->actor, NA_SE_EV_LIGHT_GATHER - SFX_FLAG); } } @@ -1137,10 +1117,10 @@ void DemoEffect_UpdateLgtShower(DemoEffect* this, PlayState* play) { void DemoEffect_UpdateGodLgtDin(DemoEffect* this, PlayState* play) { DemoEffect* fireBall; - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[this->csActionId] != NULL) { - DemoEffect_MoveToCsEndpoint(this, play, this->csActionId, 1); + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[this->cueChannel] != NULL) { + DemoEffect_SetPosRotFromCue(this, play, this->cueChannel, 1); - if (play->csCtx.npcActions[this->csActionId]->action == 3) { + if (play->csCtx.actorCues[this->cueChannel]->id == 3) { fireBall = (DemoEffect*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, DEMO_EFFECT_FIRE_BALL); @@ -1154,22 +1134,22 @@ void DemoEffect_UpdateGodLgtDin(DemoEffect* this, PlayState* play) { if (gSaveContext.entranceIndex == ENTR_CUTSCENE_MAP_0) { switch (gSaveContext.sceneLayer) { case 4: - if (play->csCtx.frames == 288) { + if (play->csCtx.curFrame == 288) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_PASS); } - if (play->csCtx.frames == 635) { + if (play->csCtx.curFrame == 635) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_PASS); } break; case 6: - if (play->csCtx.frames == 55) { + if (play->csCtx.curFrame == 55) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_DASH); } break; case 11: - if (play->csCtx.frames == 350) { + if (play->csCtx.curFrame == 350) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_DASH); } break; @@ -1187,10 +1167,10 @@ void DemoEffect_UpdateGodLgtDin(DemoEffect* this, PlayState* play) { void DemoEffect_UpdateGodLgtNayru(DemoEffect* this, PlayState* play) { DemoEffect* lightRing; - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[this->csActionId] != NULL) { - DemoEffect_MoveToCsEndpoint(this, play, this->csActionId, 1); + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[this->cueChannel] != NULL) { + DemoEffect_SetPosRotFromCue(this, play, this->cueChannel, 1); - if (play->csCtx.npcActions[this->csActionId]->action == 3) { + if (play->csCtx.actorCues[this->cueChannel]->id == 3) { if (this->godLgt.lightRingSpawnTimer != 0) { this->godLgt.lightRingSpawnTimer--; } else { @@ -1209,19 +1189,19 @@ void DemoEffect_UpdateGodLgtNayru(DemoEffect* this, PlayState* play) { if (gSaveContext.entranceIndex == ENTR_CUTSCENE_MAP_0) { switch (gSaveContext.sceneLayer) { case 4: - if (play->csCtx.frames == 298) { + if (play->csCtx.curFrame == 298) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_PASS); } break; case 6: - if (play->csCtx.frames == 105) { + if (play->csCtx.curFrame == 105) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_DASH); } break; case 11: - if (play->csCtx.frames == 360) { + if (play->csCtx.curFrame == 360) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_DASH); } break; @@ -1229,10 +1209,10 @@ void DemoEffect_UpdateGodLgtNayru(DemoEffect* this, PlayState* play) { } if (gSaveContext.entranceIndex == ENTR_DEATH_MOUNTAIN_TRAIL_0 && gSaveContext.sceneLayer == 4) { - if (play->csCtx.frames == 72) { + if (play->csCtx.curFrame == 72) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_DASH); } - if (play->csCtx.frames == 80) { + if (play->csCtx.curFrame == 80) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_NAYRU_MAGIC); } } @@ -1248,10 +1228,10 @@ void DemoEffect_UpdateGodLgtNayru(DemoEffect* this, PlayState* play) { void DemoEffect_UpdateGodLgtFarore(DemoEffect* this, PlayState* play) { DemoEffect* lgtShower; - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[this->csActionId] != NULL) { - DemoEffect_MoveToCsEndpoint(this, play, this->csActionId, 1); + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[this->cueChannel] != NULL) { + DemoEffect_SetPosRotFromCue(this, play, this->cueChannel, 1); - if (play->csCtx.npcActions[this->csActionId]->action == 3) { + if (play->csCtx.actorCues[this->cueChannel]->id == 3) { lgtShower = (DemoEffect*)Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_EFFECT, this->actor.world.pos.x, this->actor.world.pos.y - 150.0f, this->actor.world.pos.z, 0, 0, 0, DEMO_EFFECT_LGT_SHOWER); @@ -1269,19 +1249,19 @@ void DemoEffect_UpdateGodLgtFarore(DemoEffect* this, PlayState* play) { if (gSaveContext.entranceIndex == ENTR_CUTSCENE_MAP_0) { switch (gSaveContext.sceneLayer) { case 4: - if (play->csCtx.frames == 315) { + if (play->csCtx.curFrame == 315) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_PASS); } break; case 6: - if (play->csCtx.frames == 80) { + if (play->csCtx.curFrame == 80) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_DASH); } break; case 11: - if (play->csCtx.frames == 370) { + if (play->csCtx.curFrame == 370) { Actor_PlaySfx(&this->actor, NA_SE_IT_DM_FLYING_GOD_DASH); } break; @@ -1290,18 +1270,12 @@ void DemoEffect_UpdateGodLgtFarore(DemoEffect* this, PlayState* play) { } } -/** - * Moves this actor towards the target position with a given speed. - */ void DemoEffect_MoveTowardTarget(Vec3f targetPos, DemoEffect* this, f32 speed) { this->actor.world.pos.x += (targetPos.x - this->actor.world.pos.x) * speed; this->actor.world.pos.y += (targetPos.y - this->actor.world.pos.y) * speed; this->actor.world.pos.z += (targetPos.z - this->actor.world.pos.z) * speed; } -/** - * Initializes Jewel colors. - */ void DemoEffect_InitJewelColor(DemoEffect* this) { u8 jewelType = this->jewel.type; @@ -1440,17 +1414,17 @@ void DemoEffect_MoveJewelActivateDoorOfTime(DemoEffect* this, PlayState* play) { f32 frameDivisor; f32 degrees; f32 radius; - s32 csActionId; + s32 cueChannel = this->cueChannel; - csActionId = this->csActionId; - startPos.x = play->csCtx.npcActions[csActionId]->startPos.x; - startPos.y = play->csCtx.npcActions[csActionId]->startPos.y; - startPos.z = play->csCtx.npcActions[csActionId]->startPos.z; - endPos.x = play->csCtx.npcActions[csActionId]->endPos.x; - endPos.y = play->csCtx.npcActions[csActionId]->endPos.y; - endPos.z = play->csCtx.npcActions[csActionId]->endPos.z; + startPos.x = play->csCtx.actorCues[cueChannel]->startPos.x; + startPos.y = play->csCtx.actorCues[cueChannel]->startPos.y; + startPos.z = play->csCtx.actorCues[cueChannel]->startPos.z; - frameDivisor = DemoEffect_InterpolateCsFrames(play, csActionId); + endPos.x = play->csCtx.actorCues[cueChannel]->endPos.x; + endPos.y = play->csCtx.actorCues[cueChannel]->endPos.y; + endPos.z = play->csCtx.actorCues[cueChannel]->endPos.z; + + frameDivisor = DemoEffect_InterpolateCsFrames(play, cueChannel); switch (this->jewel.type) { case DEMO_EFFECT_JEWEL_KOKIRI: @@ -1480,9 +1454,6 @@ void DemoEffect_MoveJewelActivateDoorOfTime(DemoEffect* this, PlayState* play) { DemoEffect_MoveJewelSpherical(degrees, frameDivisor, startPos, endPos, radius, this->jewelCsRotation, this); } -/** - * Spawns Sparkle Effects for the Jewel Actor. - */ void DemoEffect_JewelSparkle(DemoEffect* this, PlayState* play, s32 spawnerCount) { Vec3f velocity; Vec3f accel; @@ -1521,7 +1492,7 @@ void DemoEffect_JewelSparkle(DemoEffect* this, PlayState* play, s32 spawnerCount * The sSfxJewelId global variable is used to ensure only one Jewel Actor is playing SFX when all are spawned. */ void DemoEffect_PlayJewelSfx(DemoEffect* this, PlayState* play) { - if (!DemoEffect_CheckCsAction(this, play, 1)) { + if (!DemoEffect_CheckForCue(this, play, 1)) { if (this->actor.params == sSfxJewelId[0]) { func_8002F974(&this->actor, NA_SE_EV_SPIRIT_STONE - SFX_FLAG); } else if (sSfxJewelId[0] == 0) { @@ -1551,13 +1522,13 @@ void DemoEffect_UpdateJewelAdult(DemoEffect* this, PlayState* play) { * This also updates the Jewel's position based on different cutscenes. */ void DemoEffect_UpdateJewelChild(DemoEffect* this, PlayState* play) { - s32 hasCmdAction; + s32 hasCue; Actor* thisx = &this->actor; this->jewel.timer++; - if (play->csCtx.state && play->csCtx.npcActions[this->csActionId]) { - switch (play->csCtx.npcActions[this->csActionId]->action) { + if (play->csCtx.state && play->csCtx.actorCues[this->cueChannel]) { + switch (play->csCtx.actorCues[this->cueChannel]->id) { case 3: if (GET_EVENTCHKINF(EVENTCHKINF_4B)) { SET_EVENTCHKINF(EVENTCHKINF_4B); @@ -1569,13 +1540,13 @@ void DemoEffect_UpdateJewelChild(DemoEffect* this, PlayState* play) { break; case 4: if (this->jewel.isPositionInit) { - DemoEffect_MoveToCsEndpoint(this, play, this->csActionId, 0); + DemoEffect_SetPosRotFromCue(this, play, this->cueChannel, 0); DemoEffect_MoveJewelSplit(&thisx->world, this); if ((play->gameplayFrames & 1) == 0) { DemoEffect_JewelSparkle(this, play, 1); } } else { - DemoEffect_InitPositionFromCsAction(this, play, this->csActionId); + DemoEffect_SetStartPosFromCue(this, play, this->cueChannel); DemoEffect_MoveJewelSplit(&thisx->world, this); this->jewel.isPositionInit = 1; } @@ -1584,7 +1555,7 @@ void DemoEffect_UpdateJewelChild(DemoEffect* this, PlayState* play) { Actor_Kill(thisx); return; default: - DemoEffect_MoveToCsEndpoint(this, play, this->csActionId, 0); + DemoEffect_SetPosRotFromCue(this, play, this->cueChannel, 0); if (gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_0) { DemoEffect_MoveJewelSplit(&thisx->world, this); } @@ -1594,8 +1565,9 @@ void DemoEffect_UpdateJewelChild(DemoEffect* this, PlayState* play) { if (gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_0) { if (!GET_EVENTCHKINF(EVENTCHKINF_4B)) { - hasCmdAction = play->csCtx.state && play->csCtx.npcActions[this->csActionId]; - if (!hasCmdAction) { + hasCue = (play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[this->cueChannel] != NULL); + + if (!hasCue) { this->effectFlags |= 0x1; return; } @@ -1617,8 +1589,8 @@ void DemoEffect_UpdateDust(DemoEffect* this, PlayState* play) { Vec3f velocity; Vec3f accel; - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[this->csActionId] != NULL && - play->csCtx.npcActions[this->csActionId]->action == 2) { + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[this->cueChannel] != NULL && + play->csCtx.actorCues[this->cueChannel]->id == 2) { pos = this->actor.world.pos; pos.y += 600.0f; @@ -1639,29 +1611,20 @@ void DemoEffect_UpdateDust(DemoEffect* this, PlayState* play) { } } -/** - * This is the main Actor Update Function. - */ void DemoEffect_Update(Actor* thisx, PlayState* play) { DemoEffect* this = (DemoEffect*)thisx; this->updateFunc(this, play); } -/** - * Check if the current cutscene action matches the passed in cutscene action ID. - */ -s32 DemoEffect_CheckCsAction(DemoEffect* this, PlayState* play, s32 csActionCompareId) { - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[this->csActionId] != NULL && - play->csCtx.npcActions[this->csActionId]->action == csActionCompareId) { +s32 DemoEffect_CheckForCue(DemoEffect* this, PlayState* play, s32 cueId) { + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[this->cueChannel] != NULL && + play->csCtx.actorCues[this->cueChannel]->id == cueId) { return 1; } return 0; } -/** - * Draw function for the Jewel Actor. - */ void DemoEffect_DrawJewel(Actor* thisx, PlayState* play2) { DemoEffect* this = (DemoEffect*)thisx; PlayState* play = play2; @@ -1669,7 +1632,7 @@ void DemoEffect_DrawJewel(Actor* thisx, PlayState* play2) { OPEN_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2543); - if (!DemoEffect_CheckCsAction(this, play, 1)) { + if (!DemoEffect_CheckForCue(this, play, 1)) { if (1) {} if (!(this->effectFlags & 0x1)) { @@ -1721,9 +1684,6 @@ void DemoEffect_DrawJewel(Actor* thisx, PlayState* play2) { CLOSE_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2620); } -/** - * Draw function for the Crystal Light Actor. - */ void DemoEffect_DrawCrystalLight(Actor* thisx, PlayState* play) { DemoEffect* this = (DemoEffect*)thisx; DemoEffect* parent = (DemoEffect*)this->actor.parent; @@ -1769,9 +1729,6 @@ void DemoEffect_DrawCrystalLight(Actor* thisx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2688); } -/** - * Draw function for the Fire Ball Actor. - */ void DemoEffect_DrawFireBall(Actor* thisx, PlayState* play) { DemoEffect* this = (DemoEffect*)thisx; u32 frames = play->gameplayFrames; @@ -1791,7 +1748,6 @@ void DemoEffect_DrawFireBall(Actor* thisx, PlayState* play) { } /** - * Draw function for the God Lgt Actors. * This draws either Din, Nayru, or Farore based on the colors set in the DemoEffect struct. */ void DemoEffect_DrawGodLgt(Actor* thisx, PlayState* play) { @@ -1801,10 +1757,10 @@ void DemoEffect_DrawGodLgt(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2737); - if (!DemoEffect_CheckCsAction(this, play, 2)) { + if (!DemoEffect_CheckForCue(this, play, 2)) { if (gSaveContext.entranceIndex == ENTR_CUTSCENE_MAP_0) { if (gSaveContext.sceneLayer == 4) { - if (play->csCtx.frames <= 680) { + if (play->csCtx.curFrame <= 680) { func_80078914(&this->actor.projectedPos, NA_SE_EV_GOD_FLYING - SFX_FLAG); } } else { @@ -1850,9 +1806,6 @@ void DemoEffect_DrawGodLgt(Actor* thisx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2829); } -/** - * Draw function for the Light Effect Actor. - */ void DemoEffect_DrawLightEffect(Actor* thisx, PlayState* play) { DemoEffect* this = (DemoEffect*)thisx; u8* alpha; @@ -1860,7 +1813,7 @@ void DemoEffect_DrawLightEffect(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2842); - if (!DemoEffect_CheckCsAction(this, play, 1)) { + if (!DemoEffect_CheckForCue(this, play, 1)) { if (this->light.flicker == 0) { this->light.flicker = 1; @@ -1892,9 +1845,6 @@ void DemoEffect_DrawLightEffect(Actor* thisx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2881); } -/** - * Draw function for the Blue Orb Actor. - */ void DemoEffect_DrawBlueOrb(Actor* thisx, PlayState* play) { DemoEffect* this = (DemoEffect*)thisx; s32 pad2; @@ -1912,9 +1862,6 @@ void DemoEffect_DrawBlueOrb(Actor* thisx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2907); } -/** - * Draw function for the Lgt Shower Actor. - */ void DemoEffect_DrawLgtShower(Actor* thisx, PlayState* play) { DemoEffect* this = (DemoEffect*)thisx; s32 pad; @@ -1933,9 +1880,6 @@ void DemoEffect_DrawLgtShower(Actor* thisx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2942); } -/** - * Draw function for the Light Ring Actor. - */ void DemoEffect_DrawLightRing(Actor* thisx, PlayState* play2) { DemoEffect* this = (DemoEffect*)thisx; PlayState* play = play2; @@ -1956,9 +1900,6 @@ void DemoEffect_DrawLightRing(Actor* thisx, PlayState* play2) { CLOSE_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2978); } -/** - * Draw function for the Triforce Spot Actor. - */ void DemoEffect_DrawTriforceSpot(Actor* thisx, PlayState* play) { DemoEffect* this = (DemoEffect*)thisx; s32 pad; @@ -1966,7 +1907,7 @@ void DemoEffect_DrawTriforceSpot(Actor* thisx, PlayState* play) { u32 frames = play->gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2994); - if (gSaveContext.entranceIndex != ENTR_CASTLE_COURTYARD_ZELDA_0 || play->csCtx.frames < 885) { + if (gSaveContext.entranceIndex != ENTR_CASTLE_COURTYARD_ZELDA_0 || play->csCtx.curFrame < 885) { Gfx_SetupDL_25Xlu(play->state.gfxCtx); if (this->triforceSpot.lightColumnOpacity > 0) { @@ -2022,12 +1963,11 @@ void DemoEffect_DrawTriforceSpot(Actor* thisx, PlayState* play) { } /** - * Draw function for the Get Item Actors. * This is either Medals or Light Arrows based on the drawId. */ void DemoEffect_DrawGetItem(Actor* thisx, PlayState* play) { DemoEffect* this = (DemoEffect*)thisx; - if (!DemoEffect_CheckCsAction(this, play, 1) && !DemoEffect_CheckCsAction(this, play, 4)) { + if (!DemoEffect_CheckForCue(this, play, 1) && !DemoEffect_CheckForCue(this, play, 4)) { if (!this->getItem.isLoaded) { this->getItem.isLoaded = 1; return; @@ -2038,9 +1978,6 @@ void DemoEffect_DrawGetItem(Actor* thisx, PlayState* play) { } } -/** - * Callback for the SkelCurve system to draw the animated limbs. - */ s32 DemoEffect_OverrideLimbDrawTimeWarp(PlayState* play, SkelCurve* skelCurve, s32 limbIndex, void* thisx) { s32 pad; DemoEffect* this = (DemoEffect*)thisx; @@ -2066,16 +2003,13 @@ s32 DemoEffect_OverrideLimbDrawTimeWarp(PlayState* play, SkelCurve* skelCurve, s return true; } -/** - * Draw function for the Time Warp Actors. - */ void DemoEffect_DrawTimeWarp(Actor* thisx, PlayState* play) { DemoEffect* this = (DemoEffect*)thisx; GraphicsContext* gfxCtx = play->state.gfxCtx; u8 effectType = (this->actor.params & 0x00FF); if (effectType == DEMO_EFFECT_TIMEWARP_TIMEBLOCK_LARGE || effectType == DEMO_EFFECT_TIMEWARP_TIMEBLOCK_SMALL || - Flags_GetEnv(play, 1) || IS_CUTSCENE_LAYER || gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_4) { + CutsceneFlags_Get(play, 1) || IS_CUTSCENE_LAYER || gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_4) { OPEN_DISPS(gfxCtx, "../z_demo_effect.c", 3201); POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_25); @@ -2087,10 +2021,7 @@ void DemoEffect_DrawTimeWarp(Actor* thisx, PlayState* play) { } } -/** - * Faces/rotates the Actor towards the current cutscene action end point. - */ -void DemoEffect_FaceToCsEndpoint(DemoEffect* this, Vec3f startPos, Vec3f endPos) { +void DemoEffect_FaceTowardPoint(DemoEffect* this, Vec3f startPos, Vec3f endPos) { s32 pad; f32 x = endPos.x - startPos.x; f32 z = endPos.z - startPos.z; @@ -2100,52 +2031,44 @@ void DemoEffect_FaceToCsEndpoint(DemoEffect* this, Vec3f startPos, Vec3f endPos) this->actor.shape.rot.x = RAD_TO_BINANG(Math_FAtan2F(-(endPos.y - startPos.y), xzDistance)); } -/** - * Moves the Actor towards the current cutscene action end point. - * Will only update the Actor's facing/rotation if the shouldUpdateFacing argument is true. - * The speed is based on the current progress in the cutscene action. - */ -void DemoEffect_MoveToCsEndpoint(DemoEffect* this, PlayState* play, s32 csActionId, s32 shouldUpdateFacing) { +void DemoEffect_SetPosRotFromCue(DemoEffect* this, PlayState* play, s32 cueChannel, s32 shouldUpdateFacing) { Vec3f startPos; Vec3f endPos; f32 speed; - startPos.x = play->csCtx.npcActions[csActionId]->startPos.x; - startPos.y = play->csCtx.npcActions[csActionId]->startPos.y; - startPos.z = play->csCtx.npcActions[csActionId]->startPos.z; - endPos.x = play->csCtx.npcActions[csActionId]->endPos.x; - endPos.y = play->csCtx.npcActions[csActionId]->endPos.y; - endPos.z = play->csCtx.npcActions[csActionId]->endPos.z; + startPos.x = play->csCtx.actorCues[cueChannel]->startPos.x; + startPos.y = play->csCtx.actorCues[cueChannel]->startPos.y; + startPos.z = play->csCtx.actorCues[cueChannel]->startPos.z; - speed = DemoEffect_InterpolateCsFrames(play, csActionId); + endPos.x = play->csCtx.actorCues[cueChannel]->endPos.x; + endPos.y = play->csCtx.actorCues[cueChannel]->endPos.y; + endPos.z = play->csCtx.actorCues[cueChannel]->endPos.z; + + speed = DemoEffect_InterpolateCsFrames(play, cueChannel); this->actor.world.pos.x = ((endPos.x - startPos.x) * speed) + startPos.x; this->actor.world.pos.y = ((endPos.y - startPos.y) * speed) + startPos.y; this->actor.world.pos.z = ((endPos.z - startPos.z) * speed) + startPos.z; if (shouldUpdateFacing) { - DemoEffect_FaceToCsEndpoint(this, startPos, endPos); + DemoEffect_FaceTowardPoint(this, startPos, endPos); } } -/** - * Moves a GetItem actor towards the current cutscene action's endpoint. - */ -void DemoEffect_MoveGetItem(DemoEffect* this, PlayState* play, s32 csActionId, f32 speed) { +void DemoEffect_MoveTowardCuePos(DemoEffect* this, PlayState* play, s32 cueChannel, f32 speed) { Vec3f endPos; - endPos.x = play->csCtx.npcActions[csActionId]->endPos.x; - endPos.y = play->csCtx.npcActions[csActionId]->endPos.y; - endPos.z = play->csCtx.npcActions[csActionId]->endPos.z; + + endPos.x = play->csCtx.actorCues[cueChannel]->endPos.x; + endPos.y = play->csCtx.actorCues[cueChannel]->endPos.y; + endPos.z = play->csCtx.actorCues[cueChannel]->endPos.z; + DemoEffect_MoveTowardTarget(endPos, this, speed); } -/** - * Initializes the Actor's position to the current cutscene action's start point. - */ -void DemoEffect_InitPositionFromCsAction(DemoEffect* this, PlayState* play, s32 csActionIndex) { - f32 x = play->csCtx.npcActions[csActionIndex]->startPos.x; - f32 y = play->csCtx.npcActions[csActionIndex]->startPos.y; - f32 z = play->csCtx.npcActions[csActionIndex]->startPos.z; +void DemoEffect_SetStartPosFromCue(DemoEffect* this, PlayState* play, s32 cueChannel) { + f32 x = play->csCtx.actorCues[cueChannel]->startPos.x; + f32 y = play->csCtx.actorCues[cueChannel]->startPos.y; + f32 z = play->csCtx.actorCues[cueChannel]->startPos.z; this->actor.world.pos.x = x; this->actor.world.pos.y = y; diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h index 14e00067c7..8dea6944cf 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.h @@ -100,7 +100,7 @@ typedef struct DemoEffect { DemoEffectDust dust; }; /* 0x018A */ s16 effectFlags; - /* 0x018C */ s16 csActionId; + /* 0x018C */ s16 cueChannel; /* 0x018E */ Vec3s jewelCsRotation; /* 0x0194 */ DemoEffectFunc initUpdateFunc; /* 0x0198 */ ActorFunc initDrawFunc; diff --git a/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c b/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c index 67c79e8750..d7272f0f3e 100644 --- a/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c +++ b/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c @@ -50,10 +50,11 @@ void DemoExt_PlayVortexSFX(DemoExt* this) { } } -CsCmdActorAction* DemoExt_GetNpcAction(PlayState* play, s32 npcActionIndex) { +CsCmdActorCue* DemoExt_GetCue(PlayState* play, s32 cueChannel) { if (play->csCtx.state != CS_STATE_IDLE) { - return play->csCtx.npcActions[npcActionIndex]; + return play->csCtx.actorCues[cueChannel]; } + return NULL; } @@ -63,13 +64,13 @@ void DemoExt_SetupWait(DemoExt* this) { } void DemoExt_SetupMaintainVortex(DemoExt* this, PlayState* play) { - CsCmdActorAction* npcAction = DemoExt_GetNpcAction(play, 5); + CsCmdActorCue* cue = DemoExt_GetCue(play, 5); - if (npcAction != NULL) { - this->actor.world.pos.x = npcAction->startPos.x; - this->actor.world.pos.y = npcAction->startPos.y; - this->actor.world.pos.z = npcAction->startPos.z; - this->actor.world.rot.y = this->actor.shape.rot.y = npcAction->rot.y; + if (cue != NULL) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y; } this->action = EXT_MAINTAIN; this->drawMode = EXT_DRAW_VORTEX; @@ -87,17 +88,17 @@ void DemoExt_FinishClosing(DemoExt* this) { } } -void DemoExt_CheckCsMode(DemoExt* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction = DemoExt_GetNpcAction(play, 5); - s32 csAction; - s32 previousCsAction; +void DemoExt_HandleCues(DemoExt* this, PlayState* play) { + CsCmdActorCue* cue = DemoExt_GetCue(play, 5); + s32 nextCueId; + s32 currentCueId; - if (csCmdNPCAction != NULL) { - csAction = csCmdNPCAction->action; - previousCsAction = this->previousCsAction; + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; - if (csAction != previousCsAction) { - switch (csAction) { + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: DemoExt_SetupWait(this); break; @@ -112,7 +113,7 @@ void DemoExt_CheckCsMode(DemoExt* this, PlayState* play) { osSyncPrintf("Demo_Ext_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); break; } - this->previousCsAction = csAction; + this->cueId = nextCueId; } } } @@ -145,13 +146,13 @@ void DemoExt_SetColorsAndScales(DemoExt* this) { } void DemoExt_Wait(DemoExt* this, PlayState* play) { - DemoExt_CheckCsMode(this, play); + DemoExt_HandleCues(this, play); } void DemoExt_MaintainVortex(DemoExt* this, PlayState* play) { DemoExt_PlayVortexSFX(this); DemoExt_SetScrollAndRotation(this); - DemoExt_CheckCsMode(this, play); + DemoExt_HandleCues(this, play); } void DemoExt_DispellVortex(DemoExt* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.h b/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.h index 2805c474f6..dbed1bf1f9 100644 --- a/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.h +++ b/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.h @@ -13,7 +13,7 @@ typedef struct DemoExt { /* 0x0000 */ Actor actor; /* 0x014C */ s32 action; /* 0x014C */ s32 drawMode; - /* 0x0154 */ s32 previousCsAction; + /* 0x0154 */ s32 cueId; /* 0x015E */ s16 scrollIncr[4]; /* 0x0160 */ s16 curScroll[4]; /* 0x0168 */ s16 rotationPitch; diff --git a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c index 566fd73219..b62455f733 100644 --- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c +++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c @@ -311,7 +311,7 @@ void DemoGj_DrawRotated(DemoGj* this, PlayState* play, Gfx* displayList) { void DemoGj_SetupRotation(DemoGj* this, PlayState* play) { f32 yPosition = this->dyna.actor.world.pos.y; f32* yVelocity = &this->dyna.actor.velocity.y; - f32* speedXZ = &this->dyna.actor.speedXZ; + f32* speedXZ = &this->dyna.actor.speed; Vec3s* unk_172 = &this->unk_172; f32 verticalTranslation; Vec3f vec; @@ -467,7 +467,7 @@ void DemoGj_SetupMovement(DemoGj* this, PlayState* play) { switch (DemoGj_GetType(this)) { case DEMOGJ_TYPE_RUBBLE_PILE_1: - actor->speedXZ = kREG(16) + 10.0f; + actor->speed = kREG(16) + 10.0f; actor->velocity.y = kREG(17) + 40.0f; unk_172->x = kREG(18); unk_172->y = kREG(19) + 0x3E8; @@ -477,7 +477,7 @@ void DemoGj_SetupMovement(DemoGj* this, PlayState* play) { break; case DEMOGJ_TYPE_RUBBLE_PILE_2: - actor->speedXZ = kREG(29) + 10.0f; + actor->speed = kREG(29) + 10.0f; actor->velocity.y = kREG(30) + 40.0f; unk_172->x = kREG(31); unk_172->y = kREG(32) + 0x3E8; @@ -487,7 +487,7 @@ void DemoGj_SetupMovement(DemoGj* this, PlayState* play) { break; case DEMOGJ_TYPE_RUBBLE_PILE_3: - actor->speedXZ = kREG(42) + 10.0f; + actor->speed = kREG(42) + 10.0f; actor->velocity.y = kREG(43) + 40.0f; unk_172->x = kREG(44); unk_172->y = kREG(45) + 0x3E8; @@ -497,7 +497,7 @@ void DemoGj_SetupMovement(DemoGj* this, PlayState* play) { break; case DEMOGJ_TYPE_RUBBLE_PILE_4: - actor->speedXZ = kREG(55) + 10.0f; + actor->speed = kREG(55) + 10.0f; actor->velocity.y = kREG(56) + 40.0f; unk_172->x = kREG(57); unk_172->y = kREG(58) + 0x3E8; @@ -507,7 +507,7 @@ void DemoGj_SetupMovement(DemoGj* this, PlayState* play) { break; case DEMOGJ_TYPE_RUBBLE_PILE_5: - actor->speedXZ = kREG(68) + 10.0f; + actor->speed = kREG(68) + 10.0f; actor->velocity.y = kREG(69) + 40.0f; unk_172->x = kREG(70); unk_172->y = kREG(71) + 0x3E8; @@ -517,7 +517,7 @@ void DemoGj_SetupMovement(DemoGj* this, PlayState* play) { break; case DEMOGJ_TYPE_RUBBLE_PILE_6: - actor->speedXZ = kREG(81) + 10.0f; + actor->speed = kREG(81) + 10.0f; actor->velocity.y = kREG(82) + 40.0f; unk_172->x = kREG(83); unk_172->y = kREG(84) + 0x3E8; @@ -527,7 +527,7 @@ void DemoGj_SetupMovement(DemoGj* this, PlayState* play) { break; case DEMOGJ_TYPE_RUBBLE_PILE_7: - actor->speedXZ = kREG(94) + 10.0f; + actor->speed = kREG(94) + 10.0f; actor->velocity.y = kREG(95) + 70.0f; unk_172->x = kREG(15); unk_172->y = kREG(14) + 0x3E8; diff --git a/src/overlays/actors/ovl_Demo_Go/z_demo_go.c b/src/overlays/actors/ovl_Demo_Go/z_demo_go.c index 4412f84aa0..b02f14d801 100644 --- a/src/overlays/actors/ovl_Demo_Go/z_demo_go.c +++ b/src/overlays/actors/ovl_Demo_Go/z_demo_go.c @@ -49,22 +49,25 @@ ActorInit Demo_Go_InitVars = { (ActorFunc)DemoGo_Draw, }; -s32 func_8097C870(DemoGo* this) { +s32 DemoGo_GetCueChannel(DemoGo* this) { s32 ret; switch (this->actor.params) { case 0: ret = 3; break; + case 1: ret = 4; break; + default: if (1) { ret = 5; } break; } + return ret; } @@ -126,26 +129,31 @@ void func_8097CB0C(DemoGo* this, PlayState* play) { Actor* thisx = &this->actor; PosRot* world = &thisx->world; CutsceneContext* csCtx = &play->csCtx; - CsCmdActorAction* npcAction; - f32 temp_ret; + CsCmdActorCue* cue; + f32 lerp; s32 pad; Vec3f startPos; Vec3f endPos; if (play->csCtx.state != CS_STATE_IDLE) { - npcAction = csCtx->npcActions[func_8097C870(this)]; - if (npcAction != NULL) { - temp_ret = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, csCtx->frames); - startPos.x = npcAction->startPos.x; - startPos.y = npcAction->startPos.y; - startPos.z = npcAction->startPos.z; - endPos.x = npcAction->endPos.x; - endPos.y = npcAction->endPos.y; - endPos.z = npcAction->endPos.z; - world->pos.x = (endPos.x - startPos.x) * temp_ret + startPos.x; - world->pos.y = (endPos.y - startPos.y) * temp_ret + startPos.y; - world->pos.z = (endPos.z - startPos.z) * temp_ret + startPos.z; - world->rot.y = thisx->shape.rot.y = npcAction->rot.y; + cue = csCtx->actorCues[DemoGo_GetCueChannel(this)]; + + if (cue != NULL) { + lerp = Environment_LerpWeight(cue->endFrame, cue->startFrame, csCtx->curFrame); + + startPos.x = cue->startPos.x; + startPos.y = cue->startPos.y; + startPos.z = cue->startPos.z; + + endPos.x = cue->endPos.x; + endPos.y = cue->endPos.y; + endPos.z = cue->endPos.z; + + world->pos.x = (endPos.x - startPos.x) * lerp + startPos.x; + world->pos.y = (endPos.y - startPos.y) * lerp + startPos.y; + world->pos.z = (endPos.z - startPos.z) * lerp + startPos.z; + + world->rot.y = thisx->shape.rot.y = cue->rot.y; } } } @@ -154,9 +162,9 @@ void func_8097CC08(DemoGo* this) { f32 something = this->unk_19C; if (something < 8.0f) { - this->actor.speedXZ = (((kREG(15) * 0.01f) + 1.2f) / 8.0f) * something; + this->actor.speed = (((kREG(15) * 0.01f) + 1.2f) / 8.0f) * something; } else { - this->actor.speedXZ = (kREG(15) * 0.01f) + 1.2f; + this->actor.speed = (kREG(15) * 0.01f) + 1.2f; } Actor_MoveForward(&this->actor); } @@ -166,24 +174,27 @@ void func_8097CCC0(DemoGo* this) { } void func_8097CCE0(DemoGo* this, PlayState* play) { - CsCmdActorAction* npcAction; + CsCmdActorCue* cue; Actor* thisx = &this->actor; s32 rotYDelta; s32 newRotY; s32 thisRotY; if (play->csCtx.state != CS_STATE_IDLE) { - npcAction = play->csCtx.npcActions[func_8097C870(this)]; - if (npcAction != NULL) { + cue = play->csCtx.actorCues[DemoGo_GetCueChannel(this)]; + + if (cue != NULL) { thisRotY = thisx->world.rot.y; - rotYDelta = npcAction->rot.y - thisRotY; + rotYDelta = (s16)cue->rot.y - thisRotY; + if ((rotYDelta > -(kREG(16) + 0x96)) && (rotYDelta < kREG(16) + 0x96)) { - newRotY = npcAction->rot.y; + newRotY = (s16)cue->rot.y; } else if (rotYDelta > 0) { newRotY = (thisRotY + kREG(16)) + 0x96; } else { newRotY = (thisRotY - kREG(16)) - 0x96; } + thisx->shape.rot.y = newRotY; thisx->world.rot.y = newRotY; } @@ -194,15 +205,16 @@ s32 DemoGo_UpdateSkelAnime(DemoGo* this) { return SkelAnime_Update(&this->skelAnime); } -s32 func_8097CDB0(DemoGo* this, PlayState* play, u16 npcAction) { +s32 func_8097CDB0(DemoGo* this, PlayState* play, u16 cueId) { CutsceneContext* csCtx = &play->csCtx; - s32 actionIdx = func_8097C870(this); + s32 cueChannel = DemoGo_GetCueChannel(this); - if ((csCtx->state != CS_STATE_IDLE) && (csCtx->npcActions[actionIdx] != NULL) && - (csCtx->npcActions[actionIdx]->action == npcAction)) { - return 1; + if ((csCtx->state != CS_STATE_IDLE) && (csCtx->actorCues[cueChannel] != NULL) && + (csCtx->actorCues[cueChannel]->id == cueId)) { + return true; } - return 0; + + return false; } void func_8097CE10(DemoGo* this, PlayState* play) { @@ -220,11 +232,12 @@ void func_8097CE20(DemoGo* this, PlayState* play) { void func_8097CE78(DemoGo* this, PlayState* play) { CutsceneContext* csCtx = &play->csCtx; - CsCmdActorAction* npcAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - npcAction = csCtx->npcActions[func_8097C870(this)]; - if (npcAction != NULL && csCtx->frames >= npcAction->endFrame) { + cue = csCtx->actorCues[DemoGo_GetCueChannel(this)]; + + if (cue != NULL && csCtx->curFrame >= cue->endFrame) { func_8097CA78(this, play); this->action = 3; } diff --git a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c index 3154755fc3..573fbe6270 100644 --- a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c +++ b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c @@ -289,7 +289,7 @@ void func_8097E454(PlayState* play, Vec3f* spawnerPos, Vec3f* velocity, Vec3f* a } } -u8 func_8097E69C(PlayState* play) { +u8 DemoGt_IsCutsceneIdle(PlayState* play) { if (play->csCtx.state == CS_STATE_IDLE) { return true; } else { @@ -297,29 +297,29 @@ u8 func_8097E69C(PlayState* play) { } } -CsCmdActorAction* DemoGt_GetNpcAction(PlayState* play, u32 actionIdx) { +CsCmdActorCue* DemoGt_GetCue(PlayState* play, u32 cueChannel) { s32 pad[2]; - CsCmdActorAction* ret = NULL; + CsCmdActorCue* cue = NULL; - if (!func_8097E69C(play)) { - ret = play->csCtx.npcActions[actionIdx]; + if (!DemoGt_IsCutsceneIdle(play)) { + cue = play->csCtx.actorCues[cueChannel]; } - return ret; + return cue; } -u8 func_8097E704(PlayState* play, u16 arg1, s32 arg2) { - CsCmdActorAction* action = DemoGt_GetNpcAction(play, arg2); +u8 func_8097E704(PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = DemoGt_GetCue(play, cueChannel); - if ((action != NULL) && (action->action == arg1)) { + if ((cue != NULL) && (cue->id == cueId)) { return true; } else { return false; } } -void func_8097E744(DemoGt* this, PlayState* play, u32 actionIdx) { - CsCmdActorAction* npcAction = DemoGt_GetNpcAction(play, actionIdx); +void func_8097E744(DemoGt* this, PlayState* play, u32 cueChannel) { + CsCmdActorCue* cue = DemoGt_GetCue(play, cueChannel); Vec3f* pos = &this->dyna.actor.world.pos; f32 startX; f32 startY; @@ -327,21 +327,22 @@ void func_8097E744(DemoGt* this, PlayState* play, u32 actionIdx) { f32 endX; f32 endY; f32 endZ; - f32 someFloat; + f32 lerp; - if (npcAction != NULL) { - someFloat = - Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, play->csCtx.frames, 8, 0); - startX = npcAction->startPos.x; - startY = npcAction->startPos.y; - startZ = npcAction->startPos.z; - endX = npcAction->endPos.x; - endY = npcAction->endPos.y; - endZ = npcAction->endPos.z; + if (cue != NULL) { + lerp = Environment_LerpWeightAccelDecel(cue->endFrame, cue->startFrame, play->csCtx.curFrame, 8, 0); - pos->x = ((endX - startX) * someFloat) + startX; - pos->y = ((endY - startY) * someFloat) + startY; - pos->z = ((endZ - startZ) * someFloat) + startZ; + startX = cue->startPos.x; + startY = cue->startPos.y; + startZ = cue->startPos.z; + + endX = cue->endPos.x; + endY = cue->endPos.y; + endZ = cue->endPos.z; + + pos->x = ((endX - startX) * lerp) + startX; + pos->y = ((endY - startY) * lerp) + startY; + pos->z = ((endZ - startZ) * lerp) + startZ; } } @@ -430,9 +431,9 @@ void func_8097E824(DemoGt* this, s32 arg1) { pos->z += tempf3; } -void func_8097ED64(DemoGt* this, PlayState* play, s32 actionIdx) { - func_8097E744(this, play, actionIdx); - func_8097E824(this, actionIdx); +void func_8097ED64(DemoGt* this, PlayState* play, s32 cueChannel) { + func_8097E744(this, play, cueChannel); + func_8097E824(this, cueChannel); } u8 DemoGt_IsCutsceneLayer(void) { @@ -483,9 +484,9 @@ void func_8097EEA8_Init0(DemoGt* this, PlayState* play) { } void func_8097EF00(DemoGt* this, PlayState* play) { - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if (frames == 527) { + if (csCurFrame == 527) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_TOWER_COLLAPSE); } } @@ -494,7 +495,7 @@ void func_8097EF34(DemoGt* this, PlayState* play) { } void func_8097EF40(DemoGt* this, PlayState* play) { - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; s32 pad1[3]; Vec3f dustPos; Vec3f velocity = { 0.0f, -16.0f, 0.0f }; @@ -502,7 +503,7 @@ void func_8097EF40(DemoGt* this, PlayState* play) { Vec3f* pos = &this->dyna.actor.world.pos; s32 pad; - if ((kREG(1) == 20) || (frames == 220)) { + if ((kREG(1) == 20) || (csCurFrame == 220)) { dustPos.x = pos->x + 256.0f; dustPos.y = pos->y + 679.0f; dustPos.z = pos->z + 82.0f; @@ -522,17 +523,17 @@ void func_8097F0AC(DemoGt* this, PlayState* play) { Vec3f sp38; s16 pad1[3]; Vec3f sp24; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; s32 pad2; - if ((frames == 140) || (kREG(1) == 19)) { + if ((csCurFrame == 140) || (kREG(1) == 19)) { sp38.x = this->dyna.actor.world.pos.x + 260.0f; sp38.y = this->dyna.actor.world.pos.y + 340.0f; sp38.z = this->dyna.actor.world.pos.z + 45.0f; DemoGt_SpawnExplosionWithSound(play, &sp38, 2.0f); } - if (frames == 176) { + if (csCurFrame == 176) { sp24.x = this->dyna.actor.world.pos.x + 260.0f; sp24.y = this->dyna.actor.world.pos.y + 840.0f; sp24.z = this->dyna.actor.world.pos.z + 45.0f; @@ -563,7 +564,7 @@ void func_8097F280(DemoGt* this, PlayState* play) { s32* unk198 = this->unk_198; f32 temp_f0; - if (play->csCtx.frames < 160) { + if (play->csCtx.curFrame < 160) { unk178[0] = 100; unk178[1] = 255; unk178[2] = 200; @@ -574,8 +575,8 @@ void func_8097F280(DemoGt* this, PlayState* play) { unk198[0]++; unk198[1]--; - } else if (play->csCtx.frames < 170) { - temp_f0 = Environment_LerpWeightAccelDecel(170, 160, play->csCtx.frames, 0, 0); + } else if (play->csCtx.curFrame < 170) { + temp_f0 = Environment_LerpWeightAccelDecel(170, 160, play->csCtx.curFrame, 0, 0); unk178[0] = (temp_f0 * -63.0f) + 163.0f; unk178[1] = (temp_f0 * -155.0f) + 255.0f; @@ -703,9 +704,9 @@ void func_8097F96C(DemoGt* this, PlayState* play) { s32 pad[4]; Vec3f pos; Actor* actor; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if (((frames > 1059) && (frames < 1062)) || kREG(1) == 17) { + if (((csCurFrame > 1059) && (csCurFrame < 1062)) || kREG(1) == 17) { pos.x = this->dyna.actor.world.pos.x; pos.y = this->dyna.actor.world.pos.y + 612.0f; pos.z = this->dyna.actor.world.pos.z; @@ -724,12 +725,12 @@ void func_8097F96C(DemoGt* this, PlayState* play) { void func_8097FA1C(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f dustPos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f* pos = &this->dyna.actor.world.pos; Vec3f velOffset = { -12.0f, -17.0, 5.0 }; s32 pad1[3]; - if (((frames > 502) && !(frames >= 581)) || (kREG(1) == 5)) { + if (((csCurFrame > 502) && !(csCurFrame >= 581)) || (kREG(1) == 5)) { dustPos.x = pos->x + 300.0f; dustPos.y = pos->y + 360.0f; dustPos.z = pos->z - 377.0f; @@ -746,17 +747,17 @@ void func_8097FAFC(DemoGt* this, PlayState* play) { static s32 arg7 = 1; static s16 life = 3; s32 pad[2]; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f pos; f32 new_var = -200.0; - if (((frames > 582) && (frames < 683)) || (kREG(1) == 6)) { + if (((csCurFrame > 582) && (csCurFrame < 683)) || (kREG(1) == 6)) { pos = this->dyna.actor.world.pos; pos.y += 680.0f; - if (frames == 682) { + if (csCurFrame == 682) { velocity.y += new_var; - } else if (frames == 681) { + } else if (csCurFrame == 681) { accel.y += new_var; } @@ -767,12 +768,12 @@ void func_8097FAFC(DemoGt* this, PlayState* play) { void func_8097FC1C(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f dustPos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f* pos = &this->dyna.actor.world.pos; Vec3f velOffset = { 5.0f, -16.0f, -16.0f }; s32 pad1[3]; - if (frames > 682 || kREG(1) == 7) { + if (csCurFrame > 682 || kREG(1) == 7) { dustPos.x = pos->x + 260.0f; dustPos.y = pos->y + 360.0f; dustPos.z = pos->z + 260.0f; @@ -783,9 +784,9 @@ void func_8097FC1C(DemoGt* this, PlayState* play) { void func_8097FCE4(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f vec; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if (frames == 0x1F7 || kREG(1) == 4) { + if (csCurFrame == 0x1F7 || kREG(1) == 4) { vec.x = this->dyna.actor.world.pos.x + 300.0f; vec.y = this->dyna.actor.world.pos.y + 560.0f; vec.z = this->dyna.actor.world.pos.z - 377.0f; @@ -806,14 +807,14 @@ void func_8097FDDC(DemoGt* this, PlayState* play) { s32* unk178 = this->unk_178; s32* unk198 = this->unk_198; - if (play->csCtx.frames < 610) { + if (play->csCtx.curFrame < 610) { unk178[0] = 163; unk178[1] = 193; unk178[2] = 193; unk198[0]++; unk198[1]--; - } else if (play->csCtx.frames < 620) { - f32 temp_f0 = Environment_LerpWeightAccelDecel(620, 610, play->csCtx.frames, 0, 0); + } else if (play->csCtx.curFrame < 620) { + f32 temp_f0 = Environment_LerpWeightAccelDecel(620, 610, play->csCtx.curFrame, 0, 0); unk178[0] = (temp_f0 * (-13.0f)) + 163.0f; unk178[1] = (temp_f0 * (-43.0f)) + 193.0f; @@ -885,7 +886,7 @@ void func_80980184(DemoGt* this, PlayState* play) { Vec3f pos; Actor* actor; - if ((play->csCtx.frames > 1027) && (play->csCtx.frames < 1031)) { + if ((play->csCtx.curFrame > 1027) && (play->csCtx.curFrame < 1031)) { pos.x = this->dyna.actor.world.pos.x; pos.y = this->dyna.actor.world.pos.y + 247.0f; pos.z = this->dyna.actor.world.pos.z; @@ -907,7 +908,7 @@ void func_80980218(DemoGt* this, PlayState* play) { Vec3f pos; Actor* actor; - if ((play->csCtx.frames > 997) && (play->csCtx.frames < 1001)) { + if ((play->csCtx.curFrame > 997) && (play->csCtx.curFrame < 1001)) { pos.x = this->dyna.actor.home.pos.x; pos.y = this->dyna.actor.home.pos.y + 38.0f; pos.z = this->dyna.actor.home.pos.z; @@ -926,12 +927,12 @@ void func_80980218(DemoGt* this, PlayState* play) { void func_809802AC(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f dustPos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f* pos = &this->dyna.actor.world.pos; Vec3f velOffset = { 0.0f, 0.0f, -10.0f }; s32 pad1[3]; - if (frames > 109 && frames < 140) { + if (csCurFrame > 109 && csCurFrame < 140) { dustPos.x = pos->x - 100.0f; dustPos.y = pos->y + 1260.0f; dustPos.z = pos->z - 323.0f; @@ -942,12 +943,12 @@ void func_809802AC(DemoGt* this, PlayState* play) { void func_8098036C(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f dustPos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f* world = &this->dyna.actor.world.pos; Vec3f velOffset = { 5.0f, -3.0f, 0.0f }; s32 pad1[3]; - if ((frames > 284) && (frames < 421)) { + if ((csCurFrame > 284) && (csCurFrame < 421)) { dustPos.x = world->x + 760.0f; dustPos.y = world->y - 40.0f; dustPos.z = world->z - 240.0f; @@ -958,12 +959,12 @@ void func_8098036C(DemoGt* this, PlayState* play) { void func_80980430(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f dustPos; - s32 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f* pos = &this->dyna.actor.world.pos; Vec3f velOffset = { 5.0f, -3.0f, 0.0f }; s32 pad1[3]; - if (frames > 709 || kREG(1) == 8) { + if (csCurFrame > 709 || kREG(1) == 8) { dustPos.x = pos->x + 760.0f; dustPos.y = pos->y - 40.0f; dustPos.z = pos->z - 240.0f; @@ -974,12 +975,12 @@ void func_80980430(DemoGt* this, PlayState* play) { void func_80980504(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f dustPos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f* pos = &this->dyna.actor.world.pos; Vec3f velOffset = { 5.0f, -16.0f, -16.0f }; s32 pad1[3]; - if ((frames > 704) || kREG(1) == 9) { + if ((csCurFrame > 704) || kREG(1) == 9) { dustPos.x = pos->x + 830.0f; dustPos.y = pos->y + 60.0f; dustPos.z = pos->z + 390.0f; @@ -990,12 +991,12 @@ void func_80980504(DemoGt* this, PlayState* play) { void func_809805D8(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f dustPos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f* homePos = &this->dyna.actor.home.pos; Vec3f velOffset = { 15.0f, -26.0, 0.0f }; s32 pad1[3]; - if (((frames > 739) && (frames < 781)) || kREG(1) == 11) { + if (((csCurFrame > 739) && (csCurFrame < 781)) || kREG(1) == 11) { dustPos.x = homePos->x + 550.0f; dustPos.y = homePos->y - 110.0f; dustPos.z = homePos->z + 50.0f; @@ -1006,12 +1007,12 @@ void func_809805D8(DemoGt* this, PlayState* play) { void func_809806B8(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f dustPos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f* pos = &this->dyna.actor.world.pos; Vec3f velOffset = { 5.0f, -16.0f, -16.0f }; s32 pad1[3]; - if ((frames > 964) || (kREG(1) == 12)) { + if ((csCurFrame > 964) || (kREG(1) == 12)) { dustPos.x = pos->x + 460.0f; dustPos.y = pos->y + 60.0f; dustPos.z = pos->z + 760.0f; @@ -1022,12 +1023,12 @@ void func_809806B8(DemoGt* this, PlayState* play) { void func_8098078C(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f dustPos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f* pos = &this->dyna.actor.world.pos; Vec3f velOffset = { 5.0f, -16.0f, -16.0f }; s32 pad1[3]; - if ((frames > 939) || (kREG(1) == 14)) { + if ((csCurFrame > 939) || (kREG(1) == 14)) { dustPos.x = pos->x + 360.0f; dustPos.y = pos->y + 70.0f; dustPos.z = pos->z - 640.0f; @@ -1038,20 +1039,20 @@ void func_8098078C(DemoGt* this, PlayState* play) { void func_8098085C(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f sp28; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f* pos = &this->dyna.actor.world.pos; - if ((frames == 58) || (kREG(1) == 1)) { + if ((csCurFrame == 58) || (kREG(1) == 1)) { sp28.x = pos->x + 900.0f; sp28.y = pos->y - 50.0f; sp28.z = pos->z + 93.0f; DemoGt_SpawnExplosionWithSound(play, &sp28, 2.0f); - } else if (frames == 80) { + } else if (csCurFrame == 80) { sp28.x = pos->x + 810.0f; sp28.y = pos->y + 200.0f; sp28.z = pos->z - 37.0f; DemoGt_SpawnExplosionWithSound(play, &sp28, 0.9f); - } else if (frames == 90) { + } else if (csCurFrame == 90) { sp28.x = pos->x - 220.0f; sp28.y = pos->y + 1350.0f; sp28.z = pos->z - 287.0f; @@ -1063,11 +1064,11 @@ void func_809809C0(DemoGt* this, PlayState* play2) { PlayState* play = play2; DemoGt* this2 = this; s32 gameplayFrames = play->gameplayFrames; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; Vec3f sp54; s16 pad[3]; - if (((frames > 469) && (frames < 481)) || (kREG(1) == 3)) { + if (((csCurFrame > 469) && (csCurFrame < 481)) || (kREG(1) == 3)) { Vec3f sp40 = { 20.0f, 6.0f, 0.0f }; Vec3f sp34 = { 0.0f, 0.0f, 0.0f }; s16 pad2[3]; @@ -1085,9 +1086,9 @@ void func_809809C0(DemoGt* this, PlayState* play2) { void func_80980AD4(DemoGt* this, PlayState* play) { s32 pad[4]; Vec3f pos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if ((frames == 477) || (kREG(2) == 1)) { + if ((csCurFrame == 477) || (kREG(2) == 1)) { pos.x = this->dyna.actor.world.pos.x + 790.0f; pos.y = this->dyna.actor.world.pos.y + 60.0f; pos.z = this->dyna.actor.world.pos.z + 23.0f; @@ -1100,9 +1101,9 @@ void func_80980AD4(DemoGt* this, PlayState* play) { void func_80980B68(DemoGt* this, PlayState* play) { s32 pad[4]; Vec3f pos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if ((frames == 317) || (kREG(3) == 1)) { + if ((csCurFrame == 317) || (kREG(3) == 1)) { pos.x = this->dyna.actor.world.pos.x + 980.0f; pos.y = this->dyna.actor.world.pos.y + 410.0f; pos.z = this->dyna.actor.world.pos.z - 177.0f; @@ -1114,9 +1115,9 @@ void func_80980B68(DemoGt* this, PlayState* play) { void func_80980BFC(DemoGt* this, PlayState* play) { s32 pad[4]; Vec3f pos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if ((frames == 740) || (kREG(4) == 1)) { + if ((csCurFrame == 740) || (kREG(4) == 1)) { pos.x = this->dyna.actor.world.pos.x + 790.0f; pos.y = this->dyna.actor.world.pos.y + 60.0f; pos.z = this->dyna.actor.world.pos.z + 23.0f; @@ -1185,9 +1186,9 @@ void func_80980F00_Init5(DemoGt* this, PlayState* play) { } void func_80980F58(DemoGt* this, PlayState* play) { - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if (frames == 244) { + if (csCurFrame == 244) { func_80078914(&this->dyna.actor.projectedPos, NA_SE_EV_TOWER_PARTS_BROKEN - SFX_FLAG); } } @@ -1196,9 +1197,9 @@ void func_80980F8C(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f sp58; Vec3f dustPos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if ((frames > 259) && (frames < 289)) { + if ((csCurFrame > 259) && (csCurFrame < 289)) { Vec3f velOfset = { 0.0f, -17.0f, 0.0f }; s32 pad[3]; @@ -1244,7 +1245,7 @@ void DemoGt_Update16(DemoGt* this, PlayState* play) { void DemoGt_Draw4(DemoGt* this, PlayState* play2) { GraphicsContext* gfxCtx; PlayState* play = play2; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; s32 pad; s16 sp76; f32 sp70; @@ -1257,7 +1258,7 @@ void DemoGt_Draw4(DemoGt* this, PlayState* play2) { Vec3f sp48; f32 sp44; - if (frames < 301) { + if (csCurFrame < 301) { sp76 = this->unk_172; sp70 = fabsf(BINANG_TO_RAD(sp76)); @@ -1308,9 +1309,9 @@ void func_809813CC_Init6(DemoGt* this, PlayState* play) { } void func_80981424(DemoGt* this, PlayState* play) { - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if (frames == 789) { + if (csCurFrame == 789) { func_80078914(&this->dyna.actor.projectedPos, NA_SE_EV_TOWER_PARTS_BROKEN - SFX_FLAG); } } @@ -1319,9 +1320,9 @@ void func_80981458(DemoGt* this, PlayState* play) { s32 pad[3]; Vec3f sp58; Vec3f dustPos; - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if (((frames > 855) && (frames < 891)) || (kREG(1) == 13)) { + if (((csCurFrame > 855) && (csCurFrame < 891)) || (kREG(1) == 13)) { Vec3f velOffset = { 0.0f, -30.0f, 0.0f }; s32 pad1[3]; @@ -1426,9 +1427,9 @@ void func_809818A4_Init7(DemoGt* this, PlayState* play) { } void func_809818FC(DemoGt* this, PlayState* play) { - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if (frames == 845) { + if (csCurFrame == 845) { func_80078914(&this->dyna.actor.projectedPos, NA_SE_EV_TOWER_PARTS_BROKEN - SFX_FLAG); } } @@ -1517,9 +1518,9 @@ void func_80981C94_Init23(DemoGt* this, PlayState* play) { } void func_80981CEC(DemoGt* this, PlayState* play) { - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if (frames == 183) { + if (csCurFrame == 183) { func_80078914(&this->dyna.actor.projectedPos, NA_SE_EV_TOWER_PARTS_BROKEN - SFX_FLAG); } } @@ -1608,9 +1609,9 @@ void func_80982054_Init24(DemoGt* this, PlayState* play) { } void func_809820AC(DemoGt* this, PlayState* play) { - u16 frames = play->csCtx.frames; + u16 csCurFrame = play->csCtx.curFrame; - if (frames == 154) { + if (csCurFrame == 154) { func_80078914(&this->dyna.actor.projectedPos, NA_SE_EV_TOWER_PARTS_BROKEN - SFX_FLAG); } } diff --git a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c index 65371f306b..1ed4932ec6 100644 --- a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c +++ b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c @@ -34,17 +34,17 @@ s32 DemoIk_UpdateSkelAnime(DemoIk* this) { return SkelAnime_Update(&this->skelAnime); } -CsCmdActorAction* DemoIk_GetCue(PlayState* play, s32 index) { +CsCmdActorCue* DemoIk_GetCue(PlayState* play, s32 cueChannel) { if (play->csCtx.state != CS_STATE_IDLE) { - return play->csCtx.npcActions[index]; + return play->csCtx.actorCues[cueChannel]; } return NULL; } -s32 DemoIk_CheckCue(PlayState* play, u16 action, s32 index) { - CsCmdActorAction* cue = DemoIk_GetCue(play, index); +s32 DemoIk_CheckForCue(PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = DemoIk_GetCue(play, cueChannel); - if ((cue != NULL) && (cue->action == action)) { + if ((cue != NULL) && (cue->id == cueId)) { return 1; } return 0; @@ -73,7 +73,7 @@ Gfx* DemoIk_SetColors(GraphicsContext* gfxCtx, u8 primR, u8 primG, u8 primB, u8 return head; } -s32 DemoIk_GetIndexFromParams(s32 params) { +s32 DemoIk_GetCueChannel(s32 params) { s32 ret; if (params == 0) { @@ -116,18 +116,18 @@ void DemoIk_SpawnDeadDb(DemoIk* this, PlayState* play) { { -6.0f, 13.0f, -5.0f }, { 1.0f, 9.0f, 3.0f }, { -10.0f, 9.0f, 1.0f }, }; s32 i; - s32 index = DemoIk_GetIndexFromParams(this->actor.params); + s32 cueChannel = DemoIk_GetCueChannel(this->actor.params); - if (DemoIk_CheckCue(play, 5, index)) { + if (DemoIk_CheckForCue(play, 5, cueChannel)) { Vec3f pos; Vec3f zeroVec = { 0.0f, 0.0f, 0.0f }; s32 startIndex; s32 endIndex; - if (index == 5) { + if (cueChannel == 5) { startIndex = 0; endIndex = 4; - } else if (index == 7) { + } else if (cueChannel == 7) { startIndex = 4; endIndex = 8; } else { @@ -143,8 +143,8 @@ void DemoIk_SpawnDeadDb(DemoIk* this, PlayState* play) { } } -void DemoIk_MoveToStartPos(DemoIk* this, PlayState* play, s32 index) { - CsCmdActorAction* cue = DemoIk_GetCue(play, index); +void DemoIk_MoveToStartPos(DemoIk* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = DemoIk_GetCue(play, cueChannel); if (cue != NULL) { this->actor.world.pos.x = cue->startPos.x; @@ -190,7 +190,7 @@ void func_8098393C(DemoIk* this) { void func_8098394C(DemoIk* this, PlayState* play) { DemoIk_EndMove(this); - DemoIk_MoveToStartPos(this, play, DemoIk_GetIndexFromParams(this->actor.params)); + DemoIk_MoveToStartPos(this, play, DemoIk_GetCueChannel(this->actor.params)); this->actionMode = 1; this->drawMode = 1; this->actor.shape.shadowAlpha = 255; @@ -205,14 +205,14 @@ void func_809839AC(DemoIk* this) { } void func_809839D0(DemoIk* this, PlayState* play) { - CsCmdActorAction* cue = DemoIk_GetCue(play, DemoIk_GetIndexFromParams(this->actor.params)); + CsCmdActorCue* cue = DemoIk_GetCue(play, DemoIk_GetCueChannel(this->actor.params)); if (cue != NULL) { - s32 nextCsAction = cue->action; - s32 csAction = this->csAction; + s32 nextCueId = cue->id; + s32 currentCueId = this->cueId; - if (nextCsAction != csAction) { - switch (nextCsAction) { + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: func_8098393C(this); break; @@ -232,7 +232,7 @@ void func_809839D0(DemoIk* this, PlayState* play) { // "there is no such action" osSyncPrintf("Demo_Ik_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->csAction = nextCsAction; + this->cueId = nextCueId; } } } @@ -359,14 +359,14 @@ void func_8098402C(DemoIk* this) { } void func_80984048(DemoIk* this, PlayState* play) { - CsCmdActorAction* cue = DemoIk_GetCue(play, 4); + CsCmdActorCue* cue = DemoIk_GetCue(play, 4); if (cue != NULL) { - s32 nextCsAction = cue->action; - s32 csAction = this->csAction; + s32 nextCueId = cue->id; + s32 currentCueId = this->cueId; - if (nextCsAction != csAction) { - switch (nextCsAction) { + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: func_80983FDC(this); break; @@ -383,7 +383,7 @@ void func_80984048(DemoIk* this, PlayState* play) { // "there is no such action" osSyncPrintf("Demo_Ik_inFace_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->csAction = nextCsAction; + this->cueId = nextCueId; } } } diff --git a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.h b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.h index caae15f7b1..3b21af5665 100644 --- a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.h +++ b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.h @@ -16,7 +16,7 @@ typedef struct DemoIk { /* 0x019C */ Vec3s morphTable[2]; /* 0x01A8 */ s32 actionMode; /* 0x01AC */ s32 drawMode; - /* 0x01B0 */ s32 csAction; + /* 0x01B0 */ s32 cueId; } DemoIk; // size = 0x01B4 #endif diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c index 9879cbe95d..41b42de04e 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c @@ -214,7 +214,7 @@ s32 DemoIm_UpdateSkelAnime(DemoIm* this) { return SkelAnime_Update(&this->skelAnime); } -s32 DemoIm_IsCsStateIdle(PlayState* play) { +s32 DemoIm_IsCutsceneIdle(PlayState* play) { if (play->csCtx.state == CS_STATE_IDLE) { return true; } else { @@ -222,57 +222,58 @@ s32 DemoIm_IsCsStateIdle(PlayState* play) { } } -CsCmdActorAction* DemoIm_GetNpcAction(PlayState* play, s32 actionIdx) { +CsCmdActorCue* DemoIm_GetCue(PlayState* play, s32 cueChannel) { s32 pad[2]; - CsCmdActorAction* ret = NULL; + CsCmdActorCue* cue = NULL; - if (!DemoIm_IsCsStateIdle(play)) { - ret = play->csCtx.npcActions[actionIdx]; + if (!DemoIm_IsCutsceneIdle(play)) { + cue = play->csCtx.actorCues[cueChannel]; } - return ret; + + return cue; } -s32 func_809850E8(DemoIm* this, PlayState* play, u16 action, s32 actionIdx) { - CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, actionIdx); +s32 func_809850E8(DemoIm* this, PlayState* play, u16 action, s32 cueChannel) { + CsCmdActorCue* cue = DemoIm_GetCue(play, cueChannel); - if (npcAction != NULL) { - if (npcAction->action == action) { + if (cue != NULL) { + if (cue->id == action) { return true; } } return false; } -s32 func_80985134(DemoIm* this, PlayState* play, u16 action, s32 actionIdx) { - CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, actionIdx); +s32 func_80985134(DemoIm* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = DemoIm_GetCue(play, cueChannel); - if (npcAction != NULL) { - if (npcAction->action != action) { + if (cue != NULL) { + if (cue->id != cueId) { return true; } } return false; } -void func_80985180(DemoIm* this, PlayState* play, s32 actionIdx) { - CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, actionIdx); +void func_80985180(DemoIm* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = DemoIm_GetCue(play, cueChannel); - if (npcAction != NULL) { - this->actor.world.pos.x = npcAction->startPos.x; - this->actor.world.pos.y = npcAction->startPos.y; - this->actor.world.pos.z = npcAction->startPos.z; - this->actor.world.rot.y = this->actor.shape.rot.y = npcAction->rot.y; + if (cue != NULL) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y; } } -void func_80985200(DemoIm* this, PlayState* play, s32 actionIdx) { - CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, actionIdx); +void func_80985200(DemoIm* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = DemoIm_GetCue(play, cueChannel); - if (npcAction != NULL) { - this->actor.world.pos.x = npcAction->startPos.x; - this->actor.world.pos.y = npcAction->startPos.y; - this->actor.world.pos.z = npcAction->startPos.z; - this->actor.world.rot.y = this->actor.shape.rot.y = npcAction->rot.y; + if (cue != NULL) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y; } } @@ -329,7 +330,7 @@ void func_8098544C(DemoIm* this, PlayState* play) { Player* player = GET_PLAYER(play); this->action = 1; - play->csCtx.segment = D_8098786C; + play->csCtx.script = D_8098786C; gSaveContext.cutsceneTrigger = 2; Item_Give(play, ITEM_MEDALLION_SHADOW); player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y + 0x8000; @@ -337,8 +338,8 @@ void func_8098544C(DemoIm* this, PlayState* play) { } void func_809854DC(DemoIm* this, PlayState* play) { - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[5] != NULL) && - (play->csCtx.npcActions[5]->action == 2)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[5] != NULL) && + (play->csCtx.actorCues[5]->id == 2)) { Animation_Change(&this->skelAnime, &gImpaIdleAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gImpaIdleAnim), ANIMMODE_LOOP, 0.0f); this->action = 2; @@ -355,8 +356,8 @@ void func_8098557C(DemoIm* this) { } void func_809855A8(DemoIm* this, PlayState* play) { - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[5] != NULL) && - (play->csCtx.npcActions[5]->action == 3)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[5] != NULL) && + (play->csCtx.actorCues[5]->id == 3)) { Animation_Change(&this->skelAnime, &gImpaRaiseArmsAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gImpaRaiseArmsAnim), ANIMMODE_ONCE, 4.0f); this->action = 4; @@ -372,8 +373,8 @@ void func_80985640(DemoIm* this, s32 arg1) { } void func_809856AC(DemoIm* this, PlayState* play) { - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[6] != NULL) && - (play->csCtx.npcActions[6]->action == 2)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[6] != NULL) && + (play->csCtx.actorCues[6]->id == 2)) { this->action = 6; func_809853B4(this, play); } @@ -543,7 +544,7 @@ void func_80985E60(DemoIm* this, PlayState* play) { } void func_80985EAC(DemoIm* this, PlayState* play) { - if ((play->csCtx.frames >= 80) && (play->csCtx.frames < 243)) { + if ((play->csCtx.curFrame >= 80) && (play->csCtx.curFrame < 243)) { func_80984F10(this, play); } else { func_80984DB8(this); @@ -606,14 +607,14 @@ void func_80986148(DemoIm* this) { } void func_809861C4(DemoIm* this, PlayState* play) { - CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, 5); + CsCmdActorCue* cue = DemoIm_GetCue(play, 5); - if (npcAction != NULL) { - u32 action = npcAction->action; - u32 unk_274 = this->unk_274; + if (cue != NULL) { + u32 nextCueId = cue->id; + u32 currentCueId = this->cueId; - if (action != unk_274) { - switch (action) { + if (nextCueId != currentCueId) { + switch (nextCueId) { case 9: func_80986148(this); break; @@ -625,13 +626,13 @@ void func_809861C4(DemoIm* this, PlayState* play) { default: osSyncPrintf("Demo_Im_Ocarina_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->unk_274 = action; + this->cueId = nextCueId; } } } void func_8098629C(DemoIm* this, PlayState* play) { - if (DemoIm_IsCsStateIdle(play)) { + if (DemoIm_IsCutsceneIdle(play)) { this->action = 21; this->drawConfig = 1; this->unk_280 = 1; @@ -639,14 +640,14 @@ void func_8098629C(DemoIm* this, PlayState* play) { } void func_809862E0(DemoIm* this, PlayState* play) { - CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, 5); + CsCmdActorCue* cue = DemoIm_GetCue(play, 5); - if (npcAction != NULL) { - u32 action = npcAction->action; - u32 unk_274 = this->unk_274; + if (cue != NULL) { + u32 nextCueId = cue->id; + u32 currentCueId = this->cueId; - if (action != unk_274) { - switch (action) { + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: func_80985F54(this); break; @@ -665,7 +666,7 @@ void func_809862E0(DemoIm* this, PlayState* play) { default: osSyncPrintf("Demo_Im_Ocarina_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->unk_274 = action; + this->cueId = nextCueId; } } } @@ -770,14 +771,14 @@ void func_80986794(DemoIm* this) { } void func_8098680C(DemoIm* this, PlayState* play) { - CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, 5); + CsCmdActorCue* cue = DemoIm_GetCue(play, 5); - if (npcAction != NULL) { - u32 action = npcAction->action; - u32 unk_274 = this->unk_274; + if (cue != NULL) { + u32 nextCueId = cue->id; + u32 currentCueId = this->cueId; - if (action != unk_274) { - switch (action) { + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: func_80986700(this); break; @@ -793,7 +794,7 @@ void func_8098680C(DemoIm* this, PlayState* play) { default: osSyncPrintf("Demo_Im_Spot00_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->unk_274 = action; + this->cueId = nextCueId; } } } @@ -898,7 +899,7 @@ void func_80986BF8(DemoIm* this, PlayState* play) { void func_80986C30(DemoIm* this, PlayState* play) { if (func_80986A5C(this, play)) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardLullabyCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardLullabyCs); gSaveContext.cutsceneTrigger = 1; SET_EVENTCHKINF(EVENTCHKINF_59); Item_Give(play, ITEM_SONG_LULLABY); @@ -1039,14 +1040,14 @@ void func_809871B4(DemoIm* this, s32 arg1) { } void func_809871E8(DemoIm* this, PlayState* play) { - CsCmdActorAction* npcAction = DemoIm_GetNpcAction(play, 5); + CsCmdActorCue* cue = DemoIm_GetCue(play, 5); - if (npcAction != NULL) { - u32 action = npcAction->action; - u32 unk_274 = this->unk_274; + if (cue != NULL) { + u32 nextCueId = cue->id; + u32 currentCueId = this->cueId; - if (action != unk_274) { - switch (action) { + if (nextCueId != currentCueId) { + switch (nextCueId) { case 12: func_809870F0(this, play); break; @@ -1056,7 +1057,7 @@ void func_809871E8(DemoIm* this, PlayState* play) { default: osSyncPrintf("Demo_Im_inEnding_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->unk_274 = action; + this->cueId = nextCueId; } } } diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.h b/src/overlays/actors/ovl_Demo_Im/z_demo_im.h index 97511e0429..93fb427ddf 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.h +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.h @@ -42,7 +42,7 @@ typedef struct DemoIm { /* 0x0268 */ f32 unk_268; /* 0x026C */ s32 alpha; /* 0x0270 */ s32 unk_270; - /* 0x0274 */ s32 unk_274; + /* 0x0274 */ s32 cueId; /* 0x0278 */ f32 unk_278; /* 0x027C */ s32 unk_27C; /* 0x0280 */ s32 unk_280; diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im_cutscene_data.inc.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im_cutscene_data.inc.c index 585032fbb1..eb6d4fe446 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im_cutscene_data.inc.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im_cutscene_data.inc.c @@ -6,217 +6,217 @@ static CutsceneData D_8098786C[] = { CS_BEGIN_CUTSCENE(32, 3000), CS_UNK_DATA_LIST(0x00000020, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(31, 5), - CS_NPC_ACTION(0x0001, 0, 697, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 697, 698, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0004, 698, 768, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 768, 817, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0003, 817, 2666, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION_LIST(3), - CS_PLAYER_ACTION(0x000D, 0, 300, 0x0000, 0x0000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION(0x0005, 300, 661, 0x0000, 0xEAAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION(0x0013, 661, 1934, 0x0000, 0x6AAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(44, 3), - CS_NPC_ACTION(0x0001, 0, 145, 0x0000, 0x0000, 0x0000, -97, 6, 169, -97, 6, 169, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 145, 615, 0x0000, 0x0000, 0x0000, -97, 6, 169, -97, 6, 169, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0003, 615, 1906, 0x0000, 0x0000, 0x0000, -97, 6, 169, -97, 6, 169, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(49, 1), - CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, -22, 0, -55, -22, 0, -55, 0.0f, 0.0f, 0.0f), - CS_LIGHTING_LIST(2), - CS_LIGHTING(0x0002, 0, 10, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0x0000000D, 0xFFFFFFFE, 0x00000000, 0x0000000D), - CS_LIGHTING(0x0002, 10, 3000, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0x0000000D, 0xFFFFFFFE, 0x00000000, 0x0000000D), - CS_SCENE_TRANS_FX(0x0005, 694, 724), - CS_SCENE_TRANS_FX(0x0001, 960, 990), - CS_SCENE_TRANS_FX(0x0001, 683, 692), - CS_NPC_ACTION_LIST(62, 2), - CS_NPC_ACTION(0x0001, 0, 10, 0x0000, 0x0000, 0x0000, 64, 80, 130, 64, 80, 130, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0004, 10, 3000, 0x0000, 0x0000, 0x0000, 64, 80, 130, 64, 80, 130, 0.0f, 0.0f, 0.0f), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x0044, 770, 771, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC9, 0x0000005C, 0x00000000, 0xFFFFFFC9, 0x0000005C), + CS_ACTOR_CUE_LIST(31, 5), + CS_ACTOR_CUE(0x0001, 0, 697, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 697, 698, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0004, 698, 768, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 768, 817, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0003, 817, 2666, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE_LIST(3), + CS_PLAYER_CUE(0x000D, 0, 300, 0x0000, 0x0000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE(0x0005, 300, 661, 0x0000, 0xEAAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE(0x0013, 661, 1934, 0x0000, 0x6AAA, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(44, 3), + CS_ACTOR_CUE(0x0001, 0, 145, 0x0000, 0x0000, 0x0000, -97, 6, 169, -97, 6, 169, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 145, 615, 0x0000, 0x0000, 0x0000, -97, 6, 169, -97, 6, 169, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0003, 615, 1906, 0x0000, 0x0000, 0x0000, -97, 6, 169, -97, 6, 169, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(49, 1), + CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, -22, 0, -55, -22, 0, -55, 0.0f, 0.0f, 0.0f), + CS_LIGHT_SETTING_LIST(2), + CS_LIGHT_SETTING(0x0001, 0, 10, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0x0000000D, 0xFFFFFFFE, 0x00000000, 0x0000000D), + CS_LIGHT_SETTING(0x0001, 10, 3000, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0x0000000D, 0xFFFFFFFE, 0x00000000, 0x0000000D), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 694, 724), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 960, 990), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 683, 692), + CS_ACTOR_CUE_LIST(62, 2), + CS_ACTOR_CUE(0x0001, 0, 10, 0x0000, 0x0000, 0x0000, 64, 80, 130, 64, 80, 130, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0004, 10, 3000, 0x0000, 0x0000, 0x0000, 64, 80, 130, 64, 80, 130, 0.0f, 0.0f, 0.0f), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_MEDALLION_GET, 770, 771, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC9, 0x0000005C, 0x00000000, 0xFFFFFFC9, 0x0000005C), CS_TEXT_LIST(14), CS_TEXT_NONE(0, 340), - CS_TEXT_DISPLAY_TEXTBOX(0x5022, 340, 353, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x5022, 340, 353, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(353, 374), - CS_TEXT_DISPLAY_TEXTBOX(0x5025, 374, 404, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x5025, 374, 404, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(404, 424), - CS_TEXT_DISPLAY_TEXTBOX(0x502B, 424, 474, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x502B, 424, 474, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(474, 494), - CS_TEXT_DISPLAY_TEXTBOX(0x502C, 494, 543, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x502C, 494, 543, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(543, 564), - CS_TEXT_DISPLAY_TEXTBOX(0x5026, 564, 613, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x5026, 564, 613, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(613, 955), - CS_TEXT_DISPLAY_TEXTBOX(0x0041, 955, 959, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x0041, 955, 959, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(959, 1020), - CS_TEXT_DISPLAY_TEXTBOX(0x5023, 1020, 1029, 0x0000, 0x0000, 0x0000), - CS_TERMINATOR(GRAVEYARD_AFTER_SHADOW_BLUE_WARP, 1060, 1061), - CS_FADE_BGM_LIST(1), - CS_FADE_BGM(0x0004, 673, 723, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC1, 0x00000058, 0x00000000, 0xFFFFFFC1, 0x00000058), - CS_CAM_EYE_LIST(0, 341), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 33, 225, -58, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 33, 225, -58, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 33, 225, -58, 0x0950), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 33, 106, -58, 0x7C50), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 33, 23, -58, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 11, 10, -18, 0xFFFF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 11, 10, -18, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 11, 10, -18, 0xE6A0), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.600002f, 11, 10, -18, 0x7C53), - CS_CAM_EYE_LIST(263, 504), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 22.626957f, -49, 13, 158, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 22.626957f, -49, 13, 158, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 22.626957f, -49, 13, 158, 0x0950), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 22.626957f, -21, 22, 150, 0x7C50), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 33.226997f, -21, 22, 150, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 33.226997f, -21, 22, 150, 0xFFFF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 33.226997f, -21, 22, 150, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 33.226997f, -21, 22, 150, 0xE6A0), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 33.226997f, -21, 22, 150, 0x7C53), - CS_CAM_EYE_LIST(363, 824), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0x0950), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0x7C50), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0xFFFF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.79991f, -67, 8, 117, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.79991f, -67, 8, 117, 0xE6A0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.79991f, -67, 8, 117, 0x7C53), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.79991f, -67, 8, 117, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 70.79991f, -67, 8, 117, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER_LIST(413, 1504), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 19.99985f, -53, 28, 45, 0x20BA), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 19.99985f, -53, 28, 45, 0xD5E0), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 19.99985f, -53, 28, 45, 0x0950), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 19.99985f, -53, 28, 45, 0x7C50), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 19.99985f, -53, 28, 45, 0x0000), - CS_CAM_EYE_LIST(483, 1684), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 68.91906f, -67, 8, 117, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 68.91906f, -67, 8, 117, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 68.91906f, -67, 8, 117, 0x0950), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 68.91906f, -71, 15, 124, 0x7C50), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 68.91906f, -73, 29, 131, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 68.91906f, -78, 40, 140, 0xFFFF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 68.91906f, -78, 40, 140, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 68.91906f, -78, 40, 140, 0xE6A0), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 68.91906f, -78, 40, 140, 0x7C53), - CS_CAM_EYE_LIST(553, 1644), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -39, 34, 201, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -39, 34, 201, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -39, 34, 201, 0x0950), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -39, 34, 201, 0x7C50), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.599945f, -39, 34, 201, 0x0000), - CS_CAM_EYE_LIST(623, 819), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 9, 13, -17, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 9, 13, -17, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 9, 13, -17, 0x0950), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 9, 71, -17, 0x7C50), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 126.999054f, 9, 385, -17, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 126.999054f, 9, 385, -17, 0xFFFF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 126.999054f, 9, 385, -17, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 126.999054f, 9, 385, -17, 0xE6A0), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 126.999054f, 9, 385, -17, 0x7C53), - CS_CAM_EYE_LIST(693, 1035), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0x0950), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x7C50), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0xFFFF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0xE6A0), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x7C53), - CS_CAM_EYE_REL_TO_PLAYER_LIST(769, 1950), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x20BA), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0xD5E0), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0x0950), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x7C50), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0xFFFF), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0xE6A0), - CS_CAM_AT_LIST(0, 370), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -21, 21, 42, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.600002f, -21, 21, 42, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.600002f, -21, 21, 42, 0x0950), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.600002f, -78, 86, 144, 0x7C50), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.600002f, -80, 21, 142, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.600002f, -99, 31, 177, 0xFFFF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -99, 31, 177, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -99, 31, 177, 0xE6A0), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.600002f, -99, 31, 177, 0x7C53), - CS_CAM_AT_LIST(263, 533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 22.626957f, -309, 11, 229, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 22.626957f, -309, 11, 229, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 22.626957f, -309, 11, 229, 0x0950), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 33.226997f, -258, 133, 191, 0x7C50), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 33.226997f, -258, 133, 191, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 33.226997f, -258, 133, 191, 0xFFFF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 33.226997f, -258, 133, 191, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 33.226997f, -258, 133, 191, 0xE6A0), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 33.226997f, -258, 133, 191, 0x7C53), - CS_CAM_AT_LIST(363, 853), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 68.79994f, 68, 109, -103, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 68.99994f, 68, 109, -103, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 68.79994f, 67, 109, -103, 0x0950), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 68.599945f, 189, 109, 92, 0x7C50), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 68.599945f, 57, 108, 341, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 70.79991f, -186, 107, 341, 0xFFFF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 70.79991f, -186, 107, 341, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 70.79991f, -186, 107, 341, 0xE6A0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.79991f, -186, 107, 341, 0x7C53), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.79991f, -186, 107, 341, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 70.79991f, -186, 107, 341, 0x0000), - CS_CAM_AT_REL_TO_PLAYER_LIST(413, 1533), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 19.99985f, 171, 122, -106, 0x20BA), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 19.99985f, 171, 122, -106, 0xD5E0), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 19.99985f, 171, 122, -106, 0x0950), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 19.99985f, 170, 122, -106, 0x7C50), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 19.99985f, 170, 122, -106, 0x0000), - CS_CAM_AT_LIST(483, 1713), - CS_CAM_AT(CS_CMD_CONTINUE, 0x01, 20, 68.91906f, -191, 132, 327, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 68.91906f, -191, 132, 327, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0xFF, 30, 68.91906f, -190, 131, 326, 0x0950), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 68.91906f, -189, 154, 324, 0x7C50), - CS_CAM_AT(CS_CMD_CONTINUE, 0x01, 30, 68.91906f, -194, 162, 331, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 68.91906f, -199, 172, 339, 0xFFFF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 68.91906f, -199, 172, 339, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 68.91906f, -199, 172, 339, 0xE6A0), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 68.91906f, -199, 172, 339, 0x7C53), - CS_CAM_AT_LIST(553, 1673), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -234, 123, 37, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -234, 123, 37, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.599945f, -234, 123, 37, 0x0950), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -234, 123, 37, 0x7C50), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.599945f, -233, 123, 37, 0x0000), - CS_CAM_AT_LIST(623, 848), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.599915f, -52, 17, 91, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.599915f, -52, 17, 91, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 70.599915f, -52, 17, 91, 0x0950), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 70.599915f, -52, 75, 91, 0x7C50), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 126.999054f, -5, 503, 9, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 126.999054f, -5, 503, 9, 0xFFFF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 126.999054f, -5, 503, 9, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 126.999054f, -5, 503, 9, 0xE6A0), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 126.999054f, -5, 503, 9, 0x7C53), - CS_CAM_AT_LIST(693, 1084), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0x0950), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x7C50), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0xFFFF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0xE6A0), - CS_CAM_AT(CS_CMD_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x7C53), - CS_CAM_AT_REL_TO_PLAYER_LIST(769, 1979), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x20BA), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0xD5E0), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0x0950), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x7C50), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0xFFFF), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0xE6A0), + CS_TEXT(0x5023, 1020, 1029, 0x0000, 0x0000, 0x0000), + CS_DESTINATION(CS_DEST_GRAVEYARD_FROM_CHAMBER_OF_SAGES, 1060, 1061), + CS_FADE_OUT_SEQ_LIST(1), + CS_FADE_OUT_SEQ(CS_FADE_OUT_BGM_MAIN, 673, 723, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC1, 0x00000058, 0x00000000, 0xFFFFFFC1, 0x00000058), + CS_CAM_EYE_SPLINE(0, 341), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 33, 225, -58, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 33, 225, -58, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 33, 225, -58, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 33, 106, -58, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 33, 23, -58, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 11, 10, -18, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 11, 10, -18, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 11, 10, -18, 0xE6A0), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.600002f, 11, 10, -18, 0x7C53), + CS_CAM_EYE_SPLINE(263, 504), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 22.626957f, -49, 13, 158, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 22.626957f, -49, 13, 158, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 22.626957f, -49, 13, 158, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 22.626957f, -21, 22, 150, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 33.226997f, -21, 22, 150, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 33.226997f, -21, 22, 150, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 33.226997f, -21, 22, 150, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 33.226997f, -21, 22, 150, 0xE6A0), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 33.226997f, -21, 22, 150, 0x7C53), + CS_CAM_EYE_SPLINE(363, 824), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -67, 8, 117, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.79991f, -67, 8, 117, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.79991f, -67, 8, 117, 0xE6A0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.79991f, -67, 8, 117, 0x7C53), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.79991f, -67, 8, 117, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 70.79991f, -67, 8, 117, 0x0000), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(413, 1504), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 19.99985f, -53, 28, 45, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 19.99985f, -53, 28, 45, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 19.99985f, -53, 28, 45, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 19.99985f, -53, 28, 45, 0x7C50), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 19.99985f, -53, 28, 45, 0x0000), + CS_CAM_EYE_SPLINE(483, 1684), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.91906f, -67, 8, 117, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.91906f, -67, 8, 117, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.91906f, -67, 8, 117, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.91906f, -71, 15, 124, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.91906f, -73, 29, 131, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.91906f, -78, 40, 140, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.91906f, -78, 40, 140, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.91906f, -78, 40, 140, 0xE6A0), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 68.91906f, -78, 40, 140, 0x7C53), + CS_CAM_EYE_SPLINE(553, 1644), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -39, 34, 201, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -39, 34, 201, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -39, 34, 201, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -39, 34, 201, 0x7C50), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.599945f, -39, 34, 201, 0x0000), + CS_CAM_EYE_SPLINE(623, 819), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 9, 13, -17, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 9, 13, -17, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 9, 13, -17, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 9, 71, -17, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 126.999054f, 9, 385, -17, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 126.999054f, 9, 385, -17, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 126.999054f, 9, 385, -17, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 126.999054f, 9, 385, -17, 0xE6A0), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 126.999054f, 9, 385, -17, 0x7C53), + CS_CAM_EYE_SPLINE(693, 1035), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0xE6A0), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x7C53), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(769, 1950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0xE6A0), + CS_CAM_AT_SPLINE(0, 370), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -21, 21, 42, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.600002f, -21, 21, 42, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.600002f, -21, 21, 42, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.600002f, -78, 86, 144, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.600002f, -80, 21, 142, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.600002f, -99, 31, 177, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -99, 31, 177, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -99, 31, 177, 0xE6A0), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.600002f, -99, 31, 177, 0x7C53), + CS_CAM_AT_SPLINE(263, 533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 22.626957f, -309, 11, 229, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 22.626957f, -309, 11, 229, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 22.626957f, -309, 11, 229, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 33.226997f, -258, 133, 191, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 33.226997f, -258, 133, 191, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 33.226997f, -258, 133, 191, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 33.226997f, -258, 133, 191, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 33.226997f, -258, 133, 191, 0xE6A0), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 33.226997f, -258, 133, 191, 0x7C53), + CS_CAM_AT_SPLINE(363, 853), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 68.79994f, 68, 109, -103, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 68.99994f, 68, 109, -103, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 68.79994f, 67, 109, -103, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 68.599945f, 189, 109, 92, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 68.599945f, 57, 108, 341, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 70.79991f, -186, 107, 341, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 70.79991f, -186, 107, 341, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 70.79991f, -186, 107, 341, 0xE6A0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.79991f, -186, 107, 341, 0x7C53), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.79991f, -186, 107, 341, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 70.79991f, -186, 107, 341, 0x0000), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(413, 1533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 19.99985f, 171, 122, -106, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 19.99985f, 171, 122, -106, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 19.99985f, 171, 122, -106, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 19.99985f, 170, 122, -106, 0x7C50), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 19.99985f, 170, 122, -106, 0x0000), + CS_CAM_AT_SPLINE(483, 1713), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x01, 20, 68.91906f, -191, 132, 327, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 68.91906f, -191, 132, 327, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0xFF, 30, 68.91906f, -190, 131, 326, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 68.91906f, -189, 154, 324, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x01, 30, 68.91906f, -194, 162, 331, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.91906f, -199, 172, 339, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 68.91906f, -199, 172, 339, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.91906f, -199, 172, 339, 0xE6A0), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 68.91906f, -199, 172, 339, 0x7C53), + CS_CAM_AT_SPLINE(553, 1673), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -234, 123, 37, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -234, 123, 37, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.599945f, -234, 123, 37, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -234, 123, 37, 0x7C50), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.599945f, -233, 123, 37, 0x0000), + CS_CAM_AT_SPLINE(623, 848), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.599915f, -52, 17, 91, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.599915f, -52, 17, 91, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 70.599915f, -52, 17, 91, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 70.599915f, -52, 75, 91, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 126.999054f, -5, 503, 9, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 126.999054f, -5, 503, 9, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 126.999054f, -5, 503, 9, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 126.999054f, -5, 503, 9, 0xE6A0), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 126.999054f, -5, 503, 9, 0x7C53), + CS_CAM_AT_SPLINE(693, 1084), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0xE6A0), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x7C53), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(769, 1979), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0x0950), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x7C50), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0xE6A0), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c index 43969fd84d..9c6677b08e 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c @@ -75,37 +75,37 @@ static Color_RGB8 sWarpSparkleEnvColors[] = { }; static CutsceneCameraPoint sWarpOutCameraPoints[] = { - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0000, 0xFFE5 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0000, 0xFFE5 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0xFFE6, 0x0000, 0x0000 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0017, 0x0024 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x001C, 0x0032, 0xFFFF } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x0001, 0x0018, 0xFFD9 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0xFFE6, 0xFFFA, 0x0003 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0025, 0x0037 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x004F, 0x0066, 0x0029 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x00A6, 0x00AD, 0x0006 } }, - { CS_CMD_CONTINUE, 0, 5, 45.0f, { 0x010D, 0x015A, 0xFF4C } }, - { CS_CMD_CONTINUE, 0, 5, 45.0f, { 0x019F, 0x0245, 0xFE35 } }, - { CS_CMD_STOP, 0, 5, 45.0f, { 0x01CE, 0x036F, 0xFCC2 } }, - { CS_CMD_STOP, 0, 5, 45.0f, { 0x01CE, 0x036F, 0xFCC2 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0000, 0xFFE5 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0000, 0xFFE5 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0xFFE6, 0x0000, 0x0000 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0017, 0x0024 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x001C, 0x0032, 0xFFFF } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x0001, 0x0018, 0xFFD9 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0xFFE6, 0xFFFA, 0x0003 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0025, 0x0037 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x004F, 0x0066, 0x0029 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x00A6, 0x00AD, 0x0006 } }, + { CS_CAM_CONTINUE, 0, 5, 45.0f, { 0x010D, 0x015A, 0xFF4C } }, + { CS_CAM_CONTINUE, 0, 5, 45.0f, { 0x019F, 0x0245, 0xFE35 } }, + { CS_CAM_STOP, 0, 5, 45.0f, { 0x01CE, 0x036F, 0xFCC2 } }, + { CS_CAM_STOP, 0, 5, 45.0f, { 0x01CE, 0x036F, 0xFCC2 } }, }; static CutsceneCameraPoint sWarpInCameraPoints[] = { - { CS_CMD_CONTINUE, 0, 5, 45.0f, { 0x019F, 0x0245, 0xFE35 } }, - { CS_CMD_CONTINUE, 0, 5, 45.0f, { 0x010D, 0x015A, 0xFF4C } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x00A6, 0x00AD, 0x0006 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x004F, 0x0066, 0x0029 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0025, 0x0037 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0xFFE6, 0xFFFA, 0x0003 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x0001, 0x0018, 0xFFD9 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x001C, 0x0032, 0xFFFF } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0017, 0x0024 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0xFFE6, 0x0000, 0x0000 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0000, 0xFFE5 } }, - { CS_CMD_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0000, 0xFFE5 } }, - { CS_CMD_STOP, 0, 5, 45.0f, { 0x01CE, 0x036F, 0xFCC2 } }, - { CS_CMD_STOP, 0, 5, 45.0f, { 0x01CE, 0x036F, 0xFCC2 } }, + { CS_CAM_CONTINUE, 0, 5, 45.0f, { 0x019F, 0x0245, 0xFE35 } }, + { CS_CAM_CONTINUE, 0, 5, 45.0f, { 0x010D, 0x015A, 0xFF4C } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x00A6, 0x00AD, 0x0006 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x004F, 0x0066, 0x0029 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0025, 0x0037 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0xFFE6, 0xFFFA, 0x0003 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x0001, 0x0018, 0xFFD9 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x001C, 0x0032, 0xFFFF } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0017, 0x0024 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0xFFE6, 0x0000, 0x0000 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0000, 0xFFE5 } }, + { CS_CAM_CONTINUE, 0, 8, 45.0f, { 0x0000, 0x0000, 0xFFE5 } }, + { CS_CAM_STOP, 0, 5, 45.0f, { 0x01CE, 0x036F, 0xFCC2 } }, + { CS_CAM_STOP, 0, 5, 45.0f, { 0x01CE, 0x036F, 0xFCC2 } }, }; static Color_RGB8 sSparkleEnvColors[] = { @@ -114,60 +114,60 @@ static Color_RGB8 sSparkleEnvColors[] = { }; static CutsceneCameraPoint sSparklesCameraPoints[] = { - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFF7, 0x0000, 0xFFD0 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFF7, 0x0000, 0xFFD0 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFF7, 0x0000, 0xFFD0 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFF7, 0x0000, 0xFFD0 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFD7, 0x0000, 0xFFE9 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFD3, 0x0000, 0x000A } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFE8, 0x0001, 0x0027 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x0015, 0x0000, 0x002B } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x002F, 0x0005, 0x000E } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x0031, 0x0005, 0xFFF5 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x0020, 0x0005, 0xFFDA } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFF5, 0x0005, 0xFFD1 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFD7, 0x0006, 0xFFEA } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFD5, 0x0009, 0x000D } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFE9, 0x0009, 0x0027 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x0014, 0x000B, 0x0029 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x002D, 0x000B, 0x000F } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x002E, 0x000B, 0xFFF0 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x001E, 0x000B, 0xFFDA } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFFA, 0x000E, 0xFFD3 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFDA, 0x000E, 0xFFEB } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFD7, 0x0010, 0x0008 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFE9, 0x0010, 0x0024 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x0011, 0x0010, 0x0028 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x002C, 0x0010, 0x000D } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x002C, 0x0012, 0xFFF5 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x001F, 0x0011, 0xFFDE } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFFB, 0x0014, 0xFFD5 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFDD, 0x0014, 0xFFEC } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFDA, 0x0017, 0x0008 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFE8, 0x0014, 0x001F } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x000C, 0x0018, 0x0026 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x0027, 0x0018, 0x000D } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x0027, 0x001B, 0xFFF6 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x001C, 0x001A, 0xFFE2 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFFA, 0x000E, 0xFFD4 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFD9, 0x001B, 0xFFEF } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFD7, 0x001B, 0x000A } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFE6, 0x001B, 0x0022 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x000F, 0x001F, 0x002C } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x0032, 0x0020, 0x0009 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x0030, 0x0021, 0xFFF0 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x001C, 0x0025, 0xFFD9 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFFA, 0x0028, 0xFFD4 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFD8, 0x002B, 0xFFF5 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFD7, 0x002B, 0x0006 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFDF, 0x002B, 0x0019 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x000E, 0x002E, 0x002C } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x0032, 0x002E, 0x0003 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0x002A, 0x0030, 0xFFE7 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFF6, 0x002B, 0xFFD4 } }, - { CS_CMD_CONTINUE, 0, 2, 45.0f, { 0xFFF6, 0x002B, 0xFFD4 } }, - { CS_CMD_STOP, 0, 2, 45.0f, { 0xFFF6, 0x002B, 0xFFD4 } }, - { CS_CMD_STOP, 0, 2, 45.0f, { 0xFFF6, 0x002B, 0xFFD4 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFF7, 0x0000, 0xFFD0 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFF7, 0x0000, 0xFFD0 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFF7, 0x0000, 0xFFD0 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFF7, 0x0000, 0xFFD0 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFD7, 0x0000, 0xFFE9 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFD3, 0x0000, 0x000A } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFE8, 0x0001, 0x0027 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x0015, 0x0000, 0x002B } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x002F, 0x0005, 0x000E } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x0031, 0x0005, 0xFFF5 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x0020, 0x0005, 0xFFDA } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFF5, 0x0005, 0xFFD1 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFD7, 0x0006, 0xFFEA } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFD5, 0x0009, 0x000D } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFE9, 0x0009, 0x0027 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x0014, 0x000B, 0x0029 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x002D, 0x000B, 0x000F } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x002E, 0x000B, 0xFFF0 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x001E, 0x000B, 0xFFDA } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFFA, 0x000E, 0xFFD3 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFDA, 0x000E, 0xFFEB } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFD7, 0x0010, 0x0008 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFE9, 0x0010, 0x0024 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x0011, 0x0010, 0x0028 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x002C, 0x0010, 0x000D } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x002C, 0x0012, 0xFFF5 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x001F, 0x0011, 0xFFDE } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFFB, 0x0014, 0xFFD5 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFDD, 0x0014, 0xFFEC } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFDA, 0x0017, 0x0008 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFE8, 0x0014, 0x001F } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x000C, 0x0018, 0x0026 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x0027, 0x0018, 0x000D } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x0027, 0x001B, 0xFFF6 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x001C, 0x001A, 0xFFE2 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFFA, 0x000E, 0xFFD4 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFD9, 0x001B, 0xFFEF } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFD7, 0x001B, 0x000A } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFE6, 0x001B, 0x0022 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x000F, 0x001F, 0x002C } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x0032, 0x0020, 0x0009 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x0030, 0x0021, 0xFFF0 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x001C, 0x0025, 0xFFD9 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFFA, 0x0028, 0xFFD4 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFD8, 0x002B, 0xFFF5 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFD7, 0x002B, 0x0006 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFDF, 0x002B, 0x0019 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x000E, 0x002E, 0x002C } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x0032, 0x002E, 0x0003 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0x002A, 0x0030, 0xFFE7 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFF6, 0x002B, 0xFFD4 } }, + { CS_CAM_CONTINUE, 0, 2, 45.0f, { 0xFFF6, 0x002B, 0xFFD4 } }, + { CS_CAM_STOP, 0, 2, 45.0f, { 0xFFF6, 0x002B, 0xFFD4 } }, + { CS_CAM_STOP, 0, 2, 45.0f, { 0xFFF6, 0x002B, 0xFFD4 } }, }; static s16 D_8098CF80; @@ -292,7 +292,7 @@ void DemoKankyo_SetupType(DemoKankyo* this, PlayState* play) { DemoKankyo_SetupAction(this, DemoKankyo_UpdateClouds); break; case DEMOKANKYO_DOOR_OF_TIME: - if (Flags_GetEnv(play, 2)) { + if (CutsceneFlags_Get(play, 2)) { DemoKankyo_SetupAction(this, DemoKankyo_UpdateDoorOfTime); } break; @@ -321,16 +321,16 @@ void DemoKankyo_SetupType(DemoKankyo* this, PlayState* play) { if (play->sceneId == SCENE_TEMPLE_OF_TIME) { D_8098CF84 = 25; if (!LINK_IS_ADULT) { - play->csCtx.segment = gChildWarpInToTCS; + play->csCtx.script = gChildWarpInToTCS; } else { - play->csCtx.segment = gAdultWarpInToTCS; + play->csCtx.script = gAdultWarpInToTCS; } } else { D_8098CF84 = 32; if (!LINK_IS_ADULT) { - play->csCtx.segment = gChildWarpInCS; + play->csCtx.script = gChildWarpInCS; } else { - play->csCtx.segment = gAdultWarpInCS; + play->csCtx.script = gAdultWarpInCS; } } if (Play_CamIsNotFixed(play)) { @@ -342,15 +342,15 @@ void DemoKankyo_SetupType(DemoKankyo* this, PlayState* play) { case DEMOKANKYO_WARP_IN: if (play->sceneId == SCENE_TEMPLE_OF_TIME) { if (!LINK_IS_ADULT) { - play->csCtx.segment = gChildWarpOutToTCS; + play->csCtx.script = gChildWarpOutToTCS; } else { - play->csCtx.segment = gAdultWarpOutToTCS; + play->csCtx.script = gAdultWarpOutToTCS; } } else { if (!LINK_IS_ADULT) { - play->csCtx.segment = gChildWarpOutCS; + play->csCtx.script = gChildWarpOutCS; } else { - play->csCtx.segment = gAdultWarpOutCS; + play->csCtx.script = gAdultWarpOutCS; } } gSaveContext.cutsceneTrigger = 1; @@ -370,28 +370,32 @@ void DemoKankyo_DoNothing2(DemoKankyo* this, PlayState* play) { DemoKankyo_SetupAction(this, DemoKankyo_DoNothing); } -void DemoKankyo_SetRockPos(DemoKankyo* this, PlayState* play, s32 npcActionIndex) { +void DemoKankyo_SetPosFromCue(DemoKankyo* this, PlayState* play, s32 cueChannel) { Vec3f startPos; Vec3f endPos; - CsCmdActorAction* csAction = play->csCtx.npcActions[npcActionIndex]; - f32 temp_f0; + CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel]; + f32 lerp; - startPos.x = csAction->startPos.x; - startPos.y = csAction->startPos.y; - startPos.z = csAction->startPos.z; - endPos.x = csAction->endPos.x; - endPos.y = csAction->endPos.y; - endPos.z = csAction->endPos.z; - temp_f0 = Environment_LerpWeight(csAction->endFrame, csAction->startFrame, play->csCtx.frames); - this->actor.world.pos.x = ((endPos.x - startPos.x) * temp_f0) + startPos.x; - this->actor.world.pos.y = ((endPos.y - startPos.y) * temp_f0) + startPos.y; - this->actor.world.pos.z = ((endPos.z - startPos.z) * temp_f0) + startPos.z; + startPos.x = cue->startPos.x; + startPos.y = cue->startPos.y; + startPos.z = cue->startPos.z; + + endPos.x = cue->endPos.x; + endPos.y = cue->endPos.y; + endPos.z = cue->endPos.z; + + lerp = Environment_LerpWeight(cue->endFrame, cue->startFrame, play->csCtx.curFrame); + + this->actor.world.pos.x = ((endPos.x - startPos.x) * lerp) + startPos.x; + this->actor.world.pos.y = ((endPos.y - startPos.y) * lerp) + startPos.y; + this->actor.world.pos.z = ((endPos.z - startPos.z) * lerp) + startPos.z; } void DemoKankyo_UpdateRock(DemoKankyo* this, PlayState* play) { - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[this->actor.params - DEMOKANKYO_ROCK_1] != NULL) { - DemoKankyo_SetRockPos(this, play, this->actor.params - DEMOKANKYO_ROCK_1); + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[this->actor.params - DEMOKANKYO_ROCK_1] != NULL) { + DemoKankyo_SetPosFromCue(this, play, this->actor.params - DEMOKANKYO_ROCK_1); } + this->unk_150[0].unk_C.x += this->unk_150[0].unk_0.x; this->unk_150[0].unk_C.y += this->unk_150[0].unk_0.y; this->unk_150[0].unk_C.z += this->unk_150[0].unk_0.z; @@ -433,17 +437,17 @@ void DemoKankyo_Draw(Actor* thisx, PlayState* play) { case DEMOKANKYO_BLUE_RAIN: case DEMOKANKYO_BLUE_RAIN_2: if (play->sceneId == SCENE_TEMPLE_OF_TIME) { - if (!Flags_GetEnv(play, 1)) { + if (!CutsceneFlags_Get(play, 1)) { break; } else if (!Actor_IsFacingAndNearPlayer(&this->actor, 300.0f, 0x7530)) { break; } else { if (!LINK_IS_ADULT) { - if (play->csCtx.frames < 170 || play->csCtx.state == CS_STATE_IDLE) { + if (play->csCtx.curFrame < 170 || play->csCtx.state == CS_STATE_IDLE) { break; } } else { - if (play->csCtx.frames < 120 || play->csCtx.state == CS_STATE_IDLE) { + if (play->csCtx.curFrame < 120 || play->csCtx.state == CS_STATE_IDLE) { break; } } @@ -799,7 +803,7 @@ void DemoKankyo_DrawWarpSparkles(Actor* thisx, PlayState* play) { &this->unk_150[i].unk_1C) != 0) { this->unk_150[i].unk_22++; } - if (play->sceneId == SCENE_TEMPLE_OF_TIME && play->csCtx.frames == 25) { + if (play->sceneId == SCENE_TEMPLE_OF_TIME && play->csCtx.curFrame == 25) { this->unk_150[i].unk_22++; } } else { @@ -809,7 +813,7 @@ void DemoKankyo_DrawWarpSparkles(Actor* thisx, PlayState* play) { &this->unk_150[i].unk_1C) != 0) { this->unk_150[i].unk_22++; } - if (D_8098CF84 < play->csCtx.frames && this->actor.params == DEMOKANKYO_WARP_OUT) { + if (D_8098CF84 < play->csCtx.curFrame && this->actor.params == DEMOKANKYO_WARP_OUT) { this->unk_150[i].unk_22++; } } diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data1.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data1.c index b0a4138a75..f50afa536c 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data1.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data1.c @@ -4,22 +4,22 @@ // clang-format off CutsceneData gAdultWarpInCS[] = { CS_BEGIN_CUTSCENE(2, 164), - CS_CAM_EYE_REL_TO_PLAYER_LIST(0, 135), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 31, 79, 59, 0x010F), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 31, 78, 60, 0x0120), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 32, 78, 60, 0x0131), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 30, 79, 59, 0x01F4), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 30, 78, 60, 0x01F6), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 30, 78, 60, 0x0207), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 60.324856f, 30, 78, 60, 0x0000), - CS_CAM_AT_REL_TO_PLAYER_LIST(0, 164), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324856f, 11, 50, 23, 0x010F), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324856f, 11, 48, 22, 0x0120), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 60.324856f, 11, 48, 22, 0x0131), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 60.324856f, 57, 101, 21, 0x01F4), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324856f, 57, 101, 21, 0x01F6), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324856f, 57, 101, 21, 0x0207), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 60.324856f, 57, 101, 21, 0x0000), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(0, 135), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 31, 79, 59, 0x010F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 31, 78, 60, 0x0120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 32, 78, 60, 0x0131), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 30, 79, 59, 0x01F4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 30, 78, 60, 0x01F6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 30, 78, 60, 0x0207), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.324856f, 30, 78, 60, 0x0000), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(0, 164), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324856f, 11, 50, 23, 0x010F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324856f, 11, 48, 22, 0x0120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 60.324856f, 11, 48, 22, 0x0131), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 60.324856f, 57, 101, 21, 0x01F4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324856f, 57, 101, 21, 0x01F6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324856f, 57, 101, 21, 0x0207), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.324856f, 57, 101, 21, 0x0000), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data2.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data2.c index 3e41c6d68d..2e320e1992 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data2.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data2.c @@ -4,28 +4,28 @@ // clang-format off CutsceneData gAdultWarpOutCS[] = { CS_BEGIN_CUTSCENE(5, 1167), - CS_CAM_EYE_REL_TO_PLAYER_LIST(0, 1138), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0x20BA), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0xA1BC), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0xA5E1), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0xA5CB), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0xA5EB), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0x20BA), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0xA1BC), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 60.32486f, 31, 82, 61, 0xA5E1), - CS_CAM_AT_REL_TO_PLAYER_LIST(0, 1167), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.32486f, 55, 99, 31, 0x20BA), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.32486f, 55, 99, 31, 0xA1BC), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 10, 60.32486f, 55, 99, 31, 0xA5E1), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 60.32486f, 17, 59, 31, 0xA5CB), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.32486f, 17, 59, 31, 0xA5EB), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 60.32486f, 17, 59, 31, 0x20BA), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.32486f, 17, 59, 31, 0xA1BC), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 60.32486f, 17, 59, 31, 0xA5E1), - CS_SCENE_TRANS_FX(0x0005, 36, 46), - CS_SCENE_TRANS_FX(0x0001, 30, 35), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(0, 1138), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0xA1BC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0xA5E1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0xA5CB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0xA5EB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 31, 82, 61, 0xA1BC), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.32486f, 31, 82, 61, 0xA5E1), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(0, 1167), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.32486f, 55, 99, 31, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.32486f, 55, 99, 31, 0xA1BC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.32486f, 55, 99, 31, 0xA5E1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 60.32486f, 17, 59, 31, 0xA5CB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.32486f, 17, 59, 31, 0xA5EB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.32486f, 17, 59, 31, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.32486f, 17, 59, 31, 0xA1BC), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.32486f, 17, 59, 31, 0xA5E1), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 36, 46), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 30, 35), CS_MISC_LIST(1), - CS_MISC(0x000C, 95, 97, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFE3, 0xFFFFFFF9, 0x00000000, 0xFFFFFFE3, 0xFFFFFFF9, 0x00000000, 0x00000000, 0x00000000), + CS_MISC(CS_MISC_STOP_CUTSCENE, 95, 97, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFE3, 0xFFFFFFF9, 0x00000000, 0xFFFFFFE3, 0xFFFFFFF9, 0x00000000, 0x00000000, 0x00000000), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data3.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data3.c index 24771268f7..f846a28e3d 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data3.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data3.c @@ -4,22 +4,22 @@ // clang-format off CutsceneData gAdultWarpInToTCS[] = { CS_BEGIN_CUTSCENE(2, 118), - CS_CAM_EYE_REL_TO_PLAYER_LIST(0, 89), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 71.32476f, 53, 53, 40, 0x010F), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 53, 53, 40, 0x0120), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 53, 53, 40, 0x0131), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 58, 102, 48, 0x01F4), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 58, 102, 48, 0x01F6), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 58, 102, 48, 0x0207), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 70.599915f, 58, 102, 48, 0x0047), - CS_CAM_AT_REL_TO_PLAYER_LIST(0, 118), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 70.52477f, 11, 29, 10, 0x010F), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 70.39992f, 11, 29, 10, 0x0120), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 70.599915f, 11, 29, 10, 0x0131), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 70.599915f, 29, 71, 25, 0x01F4), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 70.599915f, 29, 71, 25, 0x01F6), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 70.599915f, 29, 71, 25, 0x0207), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 70.599915f, 29, 71, 25, 0x0047), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(0, 89), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 71.32476f, 53, 53, 40, 0x010F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 53, 53, 40, 0x0120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 53, 53, 40, 0x0131), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 58, 102, 48, 0x01F4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 58, 102, 48, 0x01F6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 58, 102, 48, 0x0207), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 70.599915f, 58, 102, 48, 0x0047), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(0, 118), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 70.52477f, 11, 29, 10, 0x010F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 70.39992f, 11, 29, 10, 0x0120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 70.599915f, 11, 29, 10, 0x0131), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 70.599915f, 29, 71, 25, 0x01F4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.599915f, 29, 71, 25, 0x01F6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.599915f, 29, 71, 25, 0x0207), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 70.599915f, 29, 71, 25, 0x0047), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data4.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data4.c index e54f6eeb28..32db920cd0 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data4.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data4.c @@ -4,22 +4,22 @@ // clang-format off CutsceneData gAdultWarpOutToTCS[] = { CS_BEGIN_CUTSCENE(5, 1120), - CS_SCENE_TRANS_FX(0x0005, 36, 46), - CS_SCENE_TRANS_FX(0x0001, 30, 35), - CS_CAM_EYE_REL_TO_PLAYER_LIST(0, 1091), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 42, 89, 50, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 42, 89, 50, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 42, 89, 50, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 42, 89, 50, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 60.32486f, 42, 89, 50, 0x29D0), - CS_CAM_AT_REL_TO_PLAYER_LIST(0, 1120), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.32486f, 24, 66, 29, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.32486f, 24, 66, 29, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 60.32486f, 24, 66, 29, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.32486f, 24, 66, 29, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 60.32486f, 24, 66, 29, 0x29D0), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 36, 46), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 30, 35), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(0, 1091), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 42, 89, 50, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 42, 89, 50, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 42, 89, 50, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 42, 89, 50, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.32486f, 42, 89, 50, 0x29D0), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(0, 1120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.32486f, 24, 66, 29, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.32486f, 24, 66, 29, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.32486f, 24, 66, 29, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.32486f, 24, 66, 29, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.32486f, 24, 66, 29, 0x29D0), CS_MISC_LIST(1), - CS_MISC(0x000C, 95, 96, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFEE, 0xFFFFFFF3, 0x00000000, 0xFFFFFFEE, 0xFFFFFFF3, 0x00000000, 0x00000000, 0x00000000), + CS_MISC(CS_MISC_STOP_CUTSCENE, 95, 96, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFEE, 0xFFFFFFF3, 0x00000000, 0xFFFFFFEE, 0xFFFFFFF3, 0x00000000, 0x00000000, 0x00000000), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data5.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data5.c index 73fbdd5839..68617f1d41 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data5.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data5.c @@ -4,24 +4,24 @@ // clang-format off CutsceneData gChildWarpInCS[] = { CS_BEGIN_CUTSCENE(2, 1164), - CS_CAM_EYE_REL_TO_PLAYER_LIST(0, 1135), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 31, 68, 59, 0x010F), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 32, 68, 60, 0x0120), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 31, 69, 59, 0x0131), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 31, 64, 59, 0x01F4), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 31, 64, 59, 0x01F6), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 31, 64, 59, 0x0207), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324856f, 31, 64, 59, 0xB46C), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 60.324856f, 31, 64, 59, 0x05BC), - CS_CAM_AT_REL_TO_PLAYER_LIST(0, 1164), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324856f, 12, 40, 22, 0x010F), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324856f, 11, 38, 22, 0x0120), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 60.324856f, 11, 39, 22, 0x0131), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 60.324856f, 57, 86, 21, 0x01F4), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324856f, 57, 86, 21, 0x01F6), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 60.324856f, 57, 86, 21, 0x0207), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324856f, 57, 86, 21, 0xB46C), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 60.324856f, 57, 86, 21, 0x05BC), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(0, 1135), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 31, 68, 59, 0x010F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 32, 68, 60, 0x0120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 31, 69, 59, 0x0131), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 31, 64, 59, 0x01F4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 31, 64, 59, 0x01F6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 31, 64, 59, 0x0207), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324856f, 31, 64, 59, 0xB46C), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.324856f, 31, 64, 59, 0x05BC), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(0, 1164), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324856f, 12, 40, 22, 0x010F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324856f, 11, 38, 22, 0x0120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 60.324856f, 11, 39, 22, 0x0131), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 60.324856f, 57, 86, 21, 0x01F4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324856f, 57, 86, 21, 0x01F6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.324856f, 57, 86, 21, 0x0207), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324856f, 57, 86, 21, 0xB46C), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.324856f, 57, 86, 21, 0x05BC), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data6.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data6.c index 356de57e97..14af0d2b1a 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data6.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data6.c @@ -4,28 +4,28 @@ // clang-format off CutsceneData gChildWarpOutCS[] = { CS_BEGIN_CUTSCENE(5, 1167), - CS_SCENE_TRANS_FX(0x0005, 36, 46), - CS_SCENE_TRANS_FX(0x0001, 30, 35), - CS_CAM_EYE_REL_TO_PLAYER_LIST(0, 1138), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 30, 63, 61, 0xA8A5), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 30, 63, 61, 0xA3D9), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.32486f, 30, 63, 61, 0xF3A5), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324863f, 29, 61, 59, 0xA5D5), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324863f, 29, 61, 59, 0xA5E7), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324863f, 29, 61, 59, 0xA5EC), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324863f, 29, 61, 59, 0xBCA5), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 60.324863f, 29, 61, 59, 0xEEC0), - CS_CAM_AT_REL_TO_PLAYER_LIST(0, 1167), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.32486f, 54, 79, 31, 0xA8A5), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.32486f, 54, 80, 31, 0xA3D9), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 10, 60.32486f, 54, 79, 31, 0xF3A5), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 60.324863f, 15, 42, 30, 0xA5D5), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324863f, 15, 42, 30, 0xA5E7), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 60.324863f, 15, 42, 30, 0xA5EC), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324863f, 15, 42, 30, 0xBCA5), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 60.324863f, 15, 42, 30, 0xEEC0), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 36, 46), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 30, 35), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(0, 1138), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 30, 63, 61, 0xA8A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 30, 63, 61, 0xA3D9), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.32486f, 30, 63, 61, 0xF3A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324863f, 29, 61, 59, 0xA5D5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324863f, 29, 61, 59, 0xA5E7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324863f, 29, 61, 59, 0xA5EC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324863f, 29, 61, 59, 0xBCA5), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.324863f, 29, 61, 59, 0xEEC0), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(0, 1167), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.32486f, 54, 79, 31, 0xA8A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.32486f, 54, 80, 31, 0xA3D9), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.32486f, 54, 79, 31, 0xF3A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 60.324863f, 15, 42, 30, 0xA5D5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324863f, 15, 42, 30, 0xA5E7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.324863f, 15, 42, 30, 0xA5EC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324863f, 15, 42, 30, 0xBCA5), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.324863f, 15, 42, 30, 0xEEC0), CS_MISC_LIST(1), - CS_MISC(0x000C, 95, 96, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFEF, 0xFFFFFFCD, 0x00000000, 0xFFFFFFEF, 0xFFFFFFCD, 0x00000000, 0x00000000, 0x00000000), + CS_MISC(CS_MISC_STOP_CUTSCENE, 95, 96, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFEF, 0xFFFFFFCD, 0x00000000, 0xFFFFFFEF, 0xFFFFFFCD, 0x00000000, 0x00000000, 0x00000000), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data7.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data7.c index 26cbef970c..ecb2b57bd5 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data7.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data7.c @@ -4,24 +4,24 @@ // clang-format off CutsceneData gChildWarpInToTCS[] = { CS_BEGIN_CUTSCENE(2, 1118), - CS_CAM_EYE_REL_TO_PLAYER_LIST(0, 1089), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 71.32476f, 53, 53, 40, 0x010F), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 53, 53, 40, 0x0120), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 53, 53, 40, 0x0131), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 58, 89, 47, 0x01F4), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 58, 89, 47, 0x01F6), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 58, 89, 47, 0x0207), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 70.599915f, 58, 89, 47, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 70.599915f, 58, 89, 47, 0x0000), - CS_CAM_AT_REL_TO_PLAYER_LIST(0, 1118), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 70.52477f, 11, 29, 10, 0x010F), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 70.39992f, 11, 29, 10, 0x0120), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 70.599915f, 11, 29, 10, 0x0131), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 7, 70.599915f, 29, 58, 25, 0x01F4), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 70.599915f, 29, 58, 25, 0x01F6), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 70.599915f, 29, 58, 25, 0x0207), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 70.599915f, 29, 58, 25, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 70.599915f, 29, 58, 25, 0x0000), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(0, 1089), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 71.32476f, 53, 53, 40, 0x010F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 53, 53, 40, 0x0120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 53, 53, 40, 0x0131), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 58, 89, 47, 0x01F4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 58, 89, 47, 0x01F6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 58, 89, 47, 0x0207), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.599915f, 58, 89, 47, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 70.599915f, 58, 89, 47, 0x0000), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(0, 1118), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 70.52477f, 11, 29, 10, 0x010F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 70.39992f, 11, 29, 10, 0x0120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 70.599915f, 11, 29, 10, 0x0131), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 70.599915f, 29, 58, 25, 0x01F4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.599915f, 29, 58, 25, 0x01F6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 70.599915f, 29, 58, 25, 0x0207), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.599915f, 29, 58, 25, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 70.599915f, 29, 58, 25, 0x0000), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data8.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data8.c index a8f1228254..a087ed7e94 100644 --- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data8.c +++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data8.c @@ -4,22 +4,22 @@ // clang-format off CutsceneData gChildWarpOutToTCS[] = { CS_BEGIN_CUTSCENE(5, 1120), - CS_SCENE_TRANS_FX(0x0005, 36, 46), - CS_SCENE_TRANS_FX(0x0001, 30, 35), - CS_CAM_EYE_REL_TO_PLAYER_LIST(0, 1091), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324867f, 41, 75, 49, 0x1F1C), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324867f, 41, 75, 49, 0x1F8C), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324867f, 41, 75, 49, 0x1FFC), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 60.324867f, 41, 75, 49, 0x206C), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 60.324867f, 41, 75, 49, 0x20DC), - CS_CAM_AT_REL_TO_PLAYER_LIST(0, 1120), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324867f, 24, 52, 29, 0x1F1C), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324867f, 24, 52, 29, 0x1F8C), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 60.324867f, 24, 52, 29, 0x1FFC), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 60.324867f, 24, 52, 29, 0x206C), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 60.324867f, 24, 52, 29, 0x20DC), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 36, 46), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 30, 35), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(0, 1091), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324867f, 41, 75, 49, 0x1F1C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324867f, 41, 75, 49, 0x1F8C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324867f, 41, 75, 49, 0x1FFC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.324867f, 41, 75, 49, 0x206C), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.324867f, 41, 75, 49, 0x20DC), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(0, 1120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324867f, 24, 52, 29, 0x1F1C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324867f, 24, 52, 29, 0x1F8C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.324867f, 24, 52, 29, 0x1FFC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.324867f, 24, 52, 29, 0x206C), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.324867f, 24, 52, 29, 0x20DC), CS_MISC_LIST(1), - CS_MISC(0x000C, 95, 96, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFDF, 0x00000019, 0x00000000, 0xFFFFFFDF, 0x00000019, 0x00000000, 0x00000000, 0x00000000), + CS_MISC(CS_MISC_STOP_CUTSCENE, 95, 96, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFDF, 0x00000019, 0x00000000, 0xFFFFFFDF, 0x00000019, 0x00000000, 0x00000000, 0x00000000), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c index bad9e1d198..f23485143e 100644 --- a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c +++ b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c @@ -158,8 +158,8 @@ void DemoKekkai_SpawnParticles(DemoKekkai* this, PlayState* play) { } void DemoKekkai_TowerBarrier(DemoKekkai* this, PlayState* play) { - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[0] != NULL) && - (play->csCtx.npcActions[0]->action != 1) && (play->csCtx.npcActions[0]->action == 2)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[0] != NULL) && + (play->csCtx.actorCues[0]->id != 1) && (play->csCtx.actorCues[0]->id == 2)) { if (!(this->sfxFlag & 1)) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_DISPEL_BARRIER); this->sfxFlag |= 1; @@ -207,7 +207,7 @@ void DemoKekkai_TrialBarrierDispel(Actor* thisx, PlayState* play) { s32 pad; DemoKekkai* this = (DemoKekkai*)thisx; - if (play->csCtx.frames == csFrames[this->actor.params]) { + if (play->csCtx.curFrame == csFrames[this->actor.params]) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_TRIAL_WARP); } if (this->energyAlpha >= 0.05f) { @@ -256,7 +256,7 @@ void DemoKekkai_TrialBarrierIdle(Actor* thisx, PlayState* play) { LOG_STRING("当ったよ", "../z_demo_kekkai.c", 572); this->actor.update = DemoKekkai_TrialBarrierDispel; this->timer = 0; - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(sSageCutscenes[this->actor.params]); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(sSageCutscenes[this->actor.params]); gSaveContext.cutsceneTrigger = 1; } CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider2.base); diff --git a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c index b6d716bdce..d9ecd19811 100644 --- a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c +++ b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c @@ -159,39 +159,43 @@ s32 DemoSa_UpdateSkelAnime(DemoSa* this) { return SkelAnime_Update(&this->skelAnime); } -CsCmdActorAction* DemoSa_GetNpcAction(PlayState* play, s32 idx) { +CsCmdActorCue* DemoSa_GetCue(PlayState* play, s32 cueChannel) { if (play->csCtx.state != CS_STATE_IDLE) { - return play->csCtx.npcActions[idx]; + return play->csCtx.actorCues[cueChannel]; } + return NULL; } -s32 func_8098E654(DemoSa* this, PlayState* play, u16 arg2, s32 arg3) { - CsCmdActorAction* npcAction = DemoSa_GetNpcAction(play, arg3); +s32 func_8098E654(DemoSa* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = DemoSa_GetCue(play, cueChannel); - if ((npcAction != NULL) && (npcAction->action == arg2)) { - return 1; + if ((cue != NULL) && (cue->id == cueId)) { + return true; } - return 0; + + return false; } -s32 func_8098E6A0(DemoSa* this, PlayState* play, u16 arg2, s32 arg3) { - CsCmdActorAction* npcAction = DemoSa_GetNpcAction(play, arg3); +s32 func_8098E6A0(DemoSa* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = DemoSa_GetCue(play, cueChannel); - if ((npcAction != NULL) && (npcAction->action != arg2)) { - return 1; + if ((cue != NULL) && (cue->id != cueId)) { + return true; } - return 0; + + return false; } -void func_8098E6EC(DemoSa* this, PlayState* play, s32 actionIdx) { - CsCmdActorAction* npcAction = DemoSa_GetNpcAction(play, actionIdx); +void func_8098E6EC(DemoSa* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = DemoSa_GetCue(play, cueChannel); - if (npcAction != NULL) { - this->actor.world.pos.x = npcAction->startPos.x; - this->actor.world.pos.y = npcAction->startPos.y; - this->actor.world.pos.z = npcAction->startPos.z; - this->actor.world.rot.y = this->actor.shape.rot.y = npcAction->rot.y; + if (cue != NULL) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + + this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y; } } @@ -252,7 +256,7 @@ void func_8098E960(DemoSa* this, PlayState* play) { if ((gSaveContext.chamberCutsceneNum == 0) && !IS_CUTSCENE_LAYER) { player = GET_PLAYER(play); this->action = 1; - play->csCtx.segment = D_8099010C; + play->csCtx.script = D_8099010C; gSaveContext.cutsceneTrigger = 2; Item_Give(play, ITEM_MEDALLION_FOREST); player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y + 0x8000; @@ -260,11 +264,11 @@ void func_8098E960(DemoSa* this, PlayState* play) { } void func_8098E9EC(DemoSa* this, PlayState* play) { - CsCmdActorAction* npcAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - npcAction = play->csCtx.npcActions[4]; - if ((npcAction != NULL) && (npcAction->action == 2)) { + cue = play->csCtx.actorCues[4]; + if ((cue != NULL) && (cue->id == 2)) { this->action = 2; this->drawConfig = 1; func_8098E86C(this, play); @@ -280,11 +284,11 @@ void func_8098EA3C(DemoSa* this) { } void func_8098EA68(DemoSa* this, PlayState* play) { - CsCmdActorAction* npcAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - npcAction = play->csCtx.npcActions[4]; - if ((npcAction != NULL) && (npcAction->action == 3)) { + cue = play->csCtx.actorCues[4]; + if ((cue != NULL) && (cue->id == 3)) { Animation_Change(&this->skelAnime, &gSariaGiveForestMedallionAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gSariaGiveForestMedallionAnim), ANIMMODE_ONCE, -4.0f); this->action = 4; @@ -301,11 +305,12 @@ void func_8098EB00(DemoSa* this, s32 arg1) { } void func_8098EB6C(DemoSa* this, PlayState* play) { - CsCmdActorAction* npcAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - npcAction = play->csCtx.npcActions[6]; - if ((npcAction != NULL) && (npcAction->action == 2)) { + cue = play->csCtx.actorCues[6]; + + if ((cue != NULL) && (cue->id == 2)) { this->action = 6; func_8098E8C8(this, play); } @@ -543,15 +548,16 @@ void func_8098F610(DemoSa* this, s32 arg1) { } void func_8098F654(DemoSa* this, PlayState* play) { - s32 unk_1AC; - s32 action; - CsCmdActorAction* npcAction = DemoSa_GetNpcAction(play, 4); + s32 currentCueId; + s32 nextCueId; + CsCmdActorCue* cue = DemoSa_GetCue(play, 4); - if (npcAction != NULL) { - action = npcAction->action; - unk_1AC = this->unk_1AC; - if (action != unk_1AC) { - switch (action) { + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { case 7: func_8098F50C(this, play); break; @@ -564,7 +570,7 @@ void func_8098F654(DemoSa* this, PlayState* play) { default: osSyncPrintf("Demo_Sa_inEnding_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->unk_1AC = action; + this->cueId = nextCueId; } } } @@ -639,7 +645,7 @@ void func_8098F984(DemoSa* this) { } void func_8098F998(DemoSa* this, PlayState* play) { - if (this->unk_1AC == 4) { + if (this->cueId == 4) { func_8098E6EC(this, play, 1); this->action = 17; this->drawConfig = 2; @@ -688,15 +694,16 @@ void func_8098FB34(DemoSa* this, s32 arg1) { } void func_8098FB68(DemoSa* this, PlayState* play) { - s32 unk_1AC; - s32 action; - CsCmdActorAction* npcAction = DemoSa_GetNpcAction(play, 1); + s32 currentCueId; + s32 nextCueId; + CsCmdActorCue* cue = DemoSa_GetCue(play, 1); - if (npcAction != NULL) { - action = npcAction->action; - unk_1AC = this->unk_1AC; - if (action != unk_1AC) { - switch (action) { + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { case 4: func_8098F984(this); break; @@ -712,7 +719,7 @@ void func_8098FB68(DemoSa* this, PlayState* play) { default: osSyncPrintf("Demo_Sa_inPresent_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->unk_1AC = action; + this->cueId = nextCueId; } } } diff --git a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.h b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.h index 7801aca27a..1f66c4fec3 100644 --- a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.h +++ b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.h @@ -20,7 +20,7 @@ typedef struct DemoSa { /* 0x01A0 */ f32 unk_1A0; /* 0x01A4 */ s32 alpha; /* 0x01A8 */ s32 unk_1A8; - /* 0x01AC */ s32 unk_1AC; + /* 0x01AC */ s32 cueId; /* 0x01B0 */ s32 unk_1B0; } DemoSa; // size = 0x01B4 diff --git a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa_cutscene_data.inc.c b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa_cutscene_data.inc.c index 9527c4681c..f5d025ff26 100644 --- a/src/overlays/actors/ovl_Demo_Sa/z_demo_sa_cutscene_data.inc.c +++ b/src/overlays/actors/ovl_Demo_Sa/z_demo_sa_cutscene_data.inc.c @@ -6,179 +6,179 @@ static CutsceneData D_8099010C[] = { CS_BEGIN_CUTSCENE(29, 3001), CS_UNK_DATA_LIST(0x00000020, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(31, 5), - CS_NPC_ACTION(0x0001, 0, 612, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 612, 613, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0004, 613, 684, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 684, 732, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 82, 0, 0.0f, -2.7916667f, 0.0f), - CS_NPC_ACTION(0x0003, 732, 2912, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION_LIST(3), - CS_PLAYER_ACTION(0x000D, 0, 261, 0x0000, 0x0000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION(0x0005, 261, 600, 0x0000, 0x9555, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION(0x0013, 600, 1243, 0x0000, 0x1555, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(43, 3), - CS_NPC_ACTION(0x0001, 0, 165, 0x0000, 0x0000, 0x0000, -98, 6, -169, -98, 6, -169, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 165, 466, 0x0000, 0x0000, 0x0000, -98, 6, -169, -98, 6, -169, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0003, 466, 3001, 0x0000, 0x0000, 0x0000, -98, 6, -169, -98, 6, -169, 0.0f, 0.0f, 0.0f), - CS_SCENE_TRANS_FX(0x0001, 590, 607), - CS_SCENE_TRANS_FX(0x0005, 617, 647), - CS_SCENE_TRANS_FX(0x0001, 875, 905), - CS_NPC_ACTION_LIST(49, 1), - CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, -98, 0, 98, -98, 0, 98, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(62, 1), - CS_NPC_ACTION(0x0004, 0, 3000, 0x0000, 0x0000, 0x0000, -35, 97, -60, -35, 97, -60, 0.0f, 0.0f, 0.0f), - CS_TERMINATOR(KOKIRI_FOREST_AFTER_FOREST_BLUE_WARP, 974, 1050), + CS_ACTOR_CUE_LIST(31, 5), + CS_ACTOR_CUE(0x0001, 0, 612, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 612, 613, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0004, 613, 684, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 684, 732, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 82, 0, 0.0f, -2.7916667f, 0.0f), + CS_ACTOR_CUE(0x0003, 732, 2912, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE_LIST(3), + CS_PLAYER_CUE(0x000D, 0, 261, 0x0000, 0x0000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE(0x0005, 261, 600, 0x0000, 0x9555, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE(0x0013, 600, 1243, 0x0000, 0x1555, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(43, 3), + CS_ACTOR_CUE(0x0001, 0, 165, 0x0000, 0x0000, 0x0000, -98, 6, -169, -98, 6, -169, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 165, 466, 0x0000, 0x0000, 0x0000, -98, 6, -169, -98, 6, -169, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0003, 466, 3001, 0x0000, 0x0000, 0x0000, -98, 6, -169, -98, 6, -169, 0.0f, 0.0f, 0.0f), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 590, 607), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 617, 647), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 875, 905), + CS_ACTOR_CUE_LIST(49, 1), + CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, -98, 0, 98, -98, 0, 98, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(62, 1), + CS_ACTOR_CUE(0x0004, 0, 3000, 0x0000, 0x0000, 0x0000, -35, 97, -60, -35, 97, -60, 0.0f, 0.0f, 0.0f), + CS_DESTINATION(CS_DEST_KOKIRI_FOREST_FROM_CHAMBER_OF_SAGES, 974, 1050), CS_TEXT_LIST(10), CS_TEXT_NONE(0, 303), - CS_TEXT_DISPLAY_TEXTBOX(0x106A, 303, 323, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x106A, 303, 323, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(323, 344), - CS_TEXT_DISPLAY_TEXTBOX(0x108F, 344, 394, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x108F, 344, 394, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(394, 415), - CS_TEXT_DISPLAY_TEXTBOX(0x1090, 415, 465, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x1090, 415, 465, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(465, 871), - CS_TEXT_DISPLAY_TEXTBOX(0x003E, 871, 875, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x003E, 871, 875, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(875, 936), - CS_TEXT_DISPLAY_TEXTBOX(0x106B, 936, 946, 0x0000, 0x0000, 0x0000), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x0044, 686, 687, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC5, 0x00000057, 0x00000000, 0xFFFFFFC5, 0x00000057), - CS_FADE_BGM_LIST(1), - CS_FADE_BGM(0x0004, 550, 600, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC4, 0x00000066, 0x00000000, 0xFFFFFFC4, 0x00000066), - CS_CAM_EYE_LIST(0, 1241), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 170.1984f, 159, 2758, 43, 0x0072), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 170.1984f, 159, 2758, 43, 0x006F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 170.1984f, 159, 2409, 43, 0x002F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 170.1984f, 159, 202, 43, 0x0073), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 158, 222, 42, 0x0061), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 158, 149, 42, 0x006F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 158, 111, 42, 0x006D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 158, 111, 42, 0x0065), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 158, 111, 42, 0x0061), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.399944f, 158, 111, 42, 0x0061), - CS_CAM_EYE_LIST(190, 391), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.99993f, -91, 18, -158, 0x0072), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.99993f, -90, 17, -157, 0x006F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.99993f, -90, 31, -157, 0x002F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.99993f, -90, 37, -157, 0x0073), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.99993f, -90, 37, -157, 0x0061), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.99993f, -90, 37, -157, 0x006F), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 40.99993f, -90, 37, -157, 0x006D), - CS_CAM_EYE_LIST(263, 1354), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 24.399864f, 7, 97, 127, 0x0072), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 24.399864f, 7, 97, 127, 0x006F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 24.399864f, 7, 97, 127, 0x002F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 24.399864f, 7, 97, 127, 0x0073), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 24.399864f, 7, 97, 127, 0x0061), - CS_CAM_EYE_LIST(333, 1424), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -279, 103, 68, 0x0072), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -279, 103, 68, 0x006F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -279, 103, 68, 0x002F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -279, 103, 68, 0x0073), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.399944f, -279, 103, 68, 0x0061), - CS_CAM_EYE_LIST(403, 1494), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, -52, 35, -83, 0x0072), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, -52, 35, -83, 0x006F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, -52, 35, -83, 0x002F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, -52, 35, -83, 0x0073), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.39995f, -52, 35, -83, 0x0061), - CS_CAM_EYE_LIST(473, 1716), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, -65, 61, -111, 0x0072), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, -65, 61, -111, 0x006F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, -51, 74, -86, 0x002F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, 0, 136, 11, 0x0073), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, 386, 514, 736, 0x0061), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 80.399765f, 579, 156, 1099, 0x006F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 80.399765f, 579, 156, 1099, 0x006D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 50.599964f, 579, 156, 1099, 0x0065), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 50.599964f, 579, 156, 1099, 0x0061), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 50.599964f, 579, 156, 1099, 0x0061), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 50.599964f, 579, 156, 1099, 0x0072), - CS_CAM_EYE_LIST(609, 951), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x0072), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x006F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0x002F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x0073), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x0061), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x006F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x006D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x0065), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x0061), - CS_CAM_EYE_REL_TO_PLAYER_LIST(685, 1866), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x0072), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x006F), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0x002F), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0073), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0061), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x006F), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x006D), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x0065), - CS_CAM_AT_LIST(0, 1270), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 170.1984f, 154, 2596, 41, 0x0072), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 170.1984f, 154, 2596, 41, 0x006F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 170.1984f, 154, 2248, 41, 0x002F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 170.1984f, 154, 42, 41, 0x0073), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.2f, 82, 94, 23, 0x0061), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 50.999966f, 33, 79, 0, 0x006F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 30, 62, -14, 0x006D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.399944f, 30, 62, -14, 0x0065), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 30, 62, -14, 0x0061), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.399944f, 31, 62, -14, 0x0061), - CS_CAM_AT_LIST(190, 420), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 40.99993f, 13, 42, 20, 0x0072), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.99993f, 12, 47, 18, 0x006F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.99993f, 11, 50, 20, 0x002F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.99993f, 11, 53, 20, 0x0073), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.99993f, 11, 53, 20, 0x0061), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.99993f, 11, 53, 20, 0x006F), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 40.99993f, 11, 53, 20, 0x006D), - CS_CAM_AT_LIST(263, 1383), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 24.399864f, -42, 17, -150, 0x0072), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 24.399864f, -42, 17, -150, 0x006F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 24.399864f, -42, 17, -150, 0x002F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 24.399864f, -42, 17, -150, 0x0073), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 24.399864f, -42, 17, -150, 0x0061), - CS_CAM_AT_LIST(333, 1453), - CS_CAM_AT(CS_CMD_CONTINUE, 0x01, 30, 45.199944f, -26, 13, -85, 0x0072), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -26, 13, -85, 0x006F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.399944f, -26, 13, -85, 0x002F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -26, 13, -85, 0x0073), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.399944f, -26, 13, -85, 0x0061), - CS_CAM_AT_LIST(403, 1523), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 30.799892f, -226, 10, -419, 0x0072), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 30.999893f, -226, 10, -419, 0x006F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 35.59991f, -226, 10, -419, 0x002F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.39993f, -226, 10, -418, 0x0073), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.39995f, -226, 10, -418, 0x0061), - CS_CAM_AT_LIST(473, 1745), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39995f, -218, -88, -396, 0x0072), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39995f, -218, -88, -396, 0x006F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39995f, -204, -75, -370, 0x002F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 65.399994f, -149, -10, -269, 0x0073), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 25, 70.79991f, 287, 239, 551, 0x0061), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 80.399765f, 570, 493, 1083, 0x006F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 50.399963f, 578, 492, 1097, 0x006D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 50.599964f, 578, 492, 1097, 0x0065), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 50.599964f, 578, 491, 1097, 0x0061), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 27, 50.599964f, 578, 491, 1097, 0x0061), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 50.599964f, 578, 491, 1097, 0x0072), - CS_CAM_AT_LIST(609, 1000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x0072), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x006F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0x002F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x0073), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x0061), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x006F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x006D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x0065), - CS_CAM_AT(CS_CMD_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x0061), - CS_CAM_AT_REL_TO_PLAYER_LIST(685, 1895), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x0072), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x006F), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0x002F), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0073), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0061), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x006F), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x006D), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x0065), + CS_TEXT(0x106B, 936, 946, 0x0000, 0x0000, 0x0000), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_MEDALLION_GET, 686, 687, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC5, 0x00000057, 0x00000000, 0xFFFFFFC5, 0x00000057), + CS_FADE_OUT_SEQ_LIST(1), + CS_FADE_OUT_SEQ(CS_FADE_OUT_BGM_MAIN, 550, 600, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC4, 0x00000066, 0x00000000, 0xFFFFFFC4, 0x00000066), + CS_CAM_EYE_SPLINE(0, 1241), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 170.1984f, 159, 2758, 43, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 170.1984f, 159, 2758, 43, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 170.1984f, 159, 2409, 43, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 170.1984f, 159, 202, 43, 0x0073), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 158, 222, 42, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 158, 149, 42, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 158, 111, 42, 0x006D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 158, 111, 42, 0x0065), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 158, 111, 42, 0x0061), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.399944f, 158, 111, 42, 0x0061), + CS_CAM_EYE_SPLINE(190, 391), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.99993f, -91, 18, -158, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.99993f, -90, 17, -157, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.99993f, -90, 31, -157, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.99993f, -90, 37, -157, 0x0073), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.99993f, -90, 37, -157, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.99993f, -90, 37, -157, 0x006F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 40.99993f, -90, 37, -157, 0x006D), + CS_CAM_EYE_SPLINE(263, 1354), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 24.399864f, 7, 97, 127, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 24.399864f, 7, 97, 127, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 24.399864f, 7, 97, 127, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 24.399864f, 7, 97, 127, 0x0073), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 24.399864f, 7, 97, 127, 0x0061), + CS_CAM_EYE_SPLINE(333, 1424), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -279, 103, 68, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -279, 103, 68, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -279, 103, 68, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -279, 103, 68, 0x0073), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.399944f, -279, 103, 68, 0x0061), + CS_CAM_EYE_SPLINE(403, 1494), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, -52, 35, -83, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, -52, 35, -83, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, -52, 35, -83, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, -52, 35, -83, 0x0073), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.39995f, -52, 35, -83, 0x0061), + CS_CAM_EYE_SPLINE(473, 1716), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, -65, 61, -111, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, -65, 61, -111, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, -51, 74, -86, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, 0, 136, 11, 0x0073), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, 386, 514, 736, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 80.399765f, 579, 156, 1099, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 80.399765f, 579, 156, 1099, 0x006D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 50.599964f, 579, 156, 1099, 0x0065), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 50.599964f, 579, 156, 1099, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 50.599964f, 579, 156, 1099, 0x0061), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 50.599964f, 579, 156, 1099, 0x0072), + CS_CAM_EYE_SPLINE(609, 951), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x0073), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x006D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x0065), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x0061), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(685, 1866), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0073), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x006D), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x0065), + CS_CAM_AT_SPLINE(0, 1270), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 170.1984f, 154, 2596, 41, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 170.1984f, 154, 2596, 41, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 170.1984f, 154, 2248, 41, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 170.1984f, 154, 42, 41, 0x0073), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.2f, 82, 94, 23, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.999966f, 33, 79, 0, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 30, 62, -14, 0x006D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.399944f, 30, 62, -14, 0x0065), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 30, 62, -14, 0x0061), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.399944f, 31, 62, -14, 0x0061), + CS_CAM_AT_SPLINE(190, 420), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 40.99993f, 13, 42, 20, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.99993f, 12, 47, 18, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.99993f, 11, 50, 20, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.99993f, 11, 53, 20, 0x0073), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.99993f, 11, 53, 20, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.99993f, 11, 53, 20, 0x006F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 40.99993f, 11, 53, 20, 0x006D), + CS_CAM_AT_SPLINE(263, 1383), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 24.399864f, -42, 17, -150, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 24.399864f, -42, 17, -150, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 24.399864f, -42, 17, -150, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 24.399864f, -42, 17, -150, 0x0073), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 24.399864f, -42, 17, -150, 0x0061), + CS_CAM_AT_SPLINE(333, 1453), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x01, 30, 45.199944f, -26, 13, -85, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -26, 13, -85, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.399944f, -26, 13, -85, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -26, 13, -85, 0x0073), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.399944f, -26, 13, -85, 0x0061), + CS_CAM_AT_SPLINE(403, 1523), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 30.799892f, -226, 10, -419, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 30.999893f, -226, 10, -419, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 35.59991f, -226, 10, -419, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.39993f, -226, 10, -418, 0x0073), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.39995f, -226, 10, -418, 0x0061), + CS_CAM_AT_SPLINE(473, 1745), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39995f, -218, -88, -396, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39995f, -218, -88, -396, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39995f, -204, -75, -370, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 65.399994f, -149, -10, -269, 0x0073), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 25, 70.79991f, 287, 239, 551, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 80.399765f, 570, 493, 1083, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 50.399963f, 578, 492, 1097, 0x006D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.599964f, 578, 492, 1097, 0x0065), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 50.599964f, 578, 491, 1097, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 27, 50.599964f, 578, 491, 1097, 0x0061), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 50.599964f, 578, 491, 1097, 0x0072), + CS_CAM_AT_SPLINE(609, 1000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x0073), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x006D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x0065), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x0061), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(685, 1895), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x0072), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0x002F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0073), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0061), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x006F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x006D), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x0065), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c b/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c index 34d63216cc..703ae8dfdd 100644 --- a/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c +++ b/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c @@ -47,23 +47,23 @@ void DemoShd_Destroy(Actor* thisx, PlayState* play) { } void func_80991298(DemoShd* this, PlayState* play) { - if ((play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[0] != NULL) || - (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[1] != NULL)) { - if (play->csCtx.frames == 800) { + if ((play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[0] != NULL) || + (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[1] != NULL)) { + if (play->csCtx.curFrame == 800) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_BONGO_EMERGES); } - if (play->csCtx.frames == 1069) { + if (play->csCtx.curFrame == 1069) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_BONGO_HOVER); } } if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction0 = play->csCtx.npcActions[0]; + CsCmdActorCue* cue = play->csCtx.actorCues[0]; - if (npcAction0 != NULL) { - if (npcAction0->action == 2) { + if (cue != NULL) { + if (cue->id == 2) { if (!(this->unk_14C & 1)) { - this->unk_14E = npcAction0->startPos.x; + this->unk_14E = cue->startPos.x; } this->unk_14C |= 1; } else { @@ -73,12 +73,12 @@ void func_80991298(DemoShd* this, PlayState* play) { } if (play->csCtx.state != CS_STATE_IDLE) { - CsCmdActorAction* npcAction1 = play->csCtx.npcActions[1]; + CsCmdActorCue* cue = play->csCtx.actorCues[1]; - if (npcAction1 != NULL) { - if (npcAction1->action == 2) { + if (cue != NULL) { + if (cue->id == 2) { if (!(this->unk_14C & 2)) { - this->unk_14E = npcAction1->startPos.x; + this->unk_14E = cue->startPos.x; } this->unk_14C |= 2; } else { diff --git a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c index a9bbc0fae9..b917f7f97a 100644 --- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c +++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c @@ -97,7 +97,7 @@ void DoorAna_WaitClosed(DoorAna* this, PlayState* play) { if (!(this->actor.params & 0x200)) { // opening with song of storms - if (this->actor.xyzDistToPlayerSq < SQ(200.0f) && Flags_GetEnv(play, 5)) { + if (this->actor.xyzDistToPlayerSq < SQ(200.0f) && CutsceneFlags_Get(play, 5)) { openGrotto = true; this->actor.flags &= ~ACTOR_FLAG_4; } diff --git a/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c b/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c index cc2459fb7b..c8eeeae28a 100644 --- a/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c +++ b/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c @@ -51,8 +51,8 @@ void EfcErupc_UpdateAction(EfcErupc* this, PlayState* play) { s32 i; if (play->csCtx.state != 0) { - if (play->csCtx.npcActions[1] != NULL) { - if (play->csCtx.npcActions[1]->action == 2) { + if (play->csCtx.actorCues[1] != NULL) { + if (play->csCtx.actorCues[1]->id == 2) { if (this->unk_150 == 30) { func_800788CC(NA_SE_IT_EARTHQUAKE); } @@ -74,8 +74,8 @@ void EfcErupc_UpdateAction(EfcErupc* this, PlayState* play) { } } if (play->csCtx.state != 0) { - if (play->csCtx.npcActions[2] != NULL) { - switch (play->csCtx.npcActions[2]->action) { + if (play->csCtx.actorCues[2] != NULL) { + switch (play->csCtx.actorCues[2]->id) { case 2: if (this->unk_14E == 0) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_LAVA_ERUPT); @@ -112,7 +112,7 @@ void EfcErupc_Update(Actor* thisx, PlayState* play) { void EfcErupc_Draw(Actor* thisx, PlayState* play) { EfcErupc* this = (EfcErupc*)thisx; - u16 csAction; + u16 cueId; OPEN_DISPS(play->state.gfxCtx, "../z_efc_erupc.c", 282); @@ -136,7 +136,7 @@ void EfcErupc_Draw(Actor* thisx, PlayState* play) { G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); if (play->csCtx.state != 0) { - if ((play->csCtx.npcActions[1] != NULL) && (play->csCtx.npcActions[1]->action == 2)) { + if ((play->csCtx.actorCues[1] != NULL) && (play->csCtx.actorCues[1]->id == 2)) { gSPDisplayList(POLY_XLU_DISP++, object_efc_erupc_DL_002570); } } @@ -145,10 +145,12 @@ void EfcErupc_Draw(Actor* thisx, PlayState* play) { gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_efc_erupc.c", 333), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); if (play->csCtx.state != 0) { - CsCmdActorAction* csActorAction = play->csCtx.npcActions[2]; - if (csActorAction != NULL) { - csAction = csActorAction->action; - if ((csAction == 2) || (csAction == 3)) { + CsCmdActorCue* cue = play->csCtx.actorCues[2]; + + if (cue != NULL) { + cueId = cue->id; + + if ((cueId == 2) || (cueId == 3)) { gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 255, 200, 255); gDPSetEnvColor(POLY_XLU_DISP++, 100, 0, 0, 255); gSPDisplayList(POLY_XLU_DISP++, object_efc_erupc_DL_001720); diff --git a/src/overlays/actors/ovl_En_Am/z_en_am.c b/src/overlays/actors/ovl_En_Am/z_en_am.c index 9d90021948..16e87eac37 100644 --- a/src/overlays/actors/ovl_En_Am/z_en_am.c +++ b/src/overlays/actors/ovl_En_Am/z_en_am.c @@ -275,7 +275,7 @@ void EnAm_SetupSleep(EnAm* this) { Animation_Change(&this->skelAnime, &gArmosRicochetAnim, 0.0f, lastFrame, lastFrame, ANIMMODE_LOOP, 0.0f); this->behavior = AM_BEHAVIOR_DO_NOTHING; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->unk_258 = (this->textureBlend == 255) ? 0 : 1; EnAm_SetupAction(this, EnAm_Sleep); } @@ -286,7 +286,7 @@ void EnAm_SetupStatue(EnAm* this) { Animation_Change(&this->skelAnime, &gArmosRicochetAnim, 0.0f, lastFrame, lastFrame, ANIMMODE_LOOP, 0.0f); this->dyna.actor.flags &= ~ACTOR_FLAG_0; this->behavior = AM_BEHAVIOR_DO_NOTHING; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; EnAm_SetupAction(this, EnAm_Statue); } @@ -294,7 +294,7 @@ void EnAm_SetupLunge(EnAm* this) { Animation_PlayLoopSetSpeed(&this->skelAnime, &gArmosHopAnim, 4.0f); this->unk_258 = 3; this->behavior = AM_BEHAVIOR_AGGRO; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->dyna.actor.world.rot.y = this->dyna.actor.shape.rot.y; EnAm_SetupAction(this, EnAm_Lunge); } @@ -304,7 +304,7 @@ void EnAm_SetupCooldown(EnAm* this) { this->unk_258 = 3; this->cooldownTimer = 40; this->behavior = AM_BEHAVIOR_AGGRO; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->dyna.actor.world.rot.y = this->dyna.actor.shape.rot.y; EnAm_SetupAction(this, EnAm_Cooldown); } @@ -313,7 +313,7 @@ void EnAm_SetupMoveToHome(EnAm* this) { Animation_PlayLoopSetSpeed(&this->skelAnime, &gArmosHopAnim, 4.0f); this->behavior = AM_BEHAVIOR_GO_HOME; this->unk_258 = 1; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; EnAm_SetupAction(this, EnAm_MoveToHome); } @@ -321,14 +321,14 @@ void EnAm_SetupRotateToInit(EnAm* this) { Animation_PlayLoopSetSpeed(&this->skelAnime, &gArmosHopAnim, 4.0f); this->behavior = AM_BEHAVIOR_GO_HOME; this->unk_258 = 1; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; EnAm_SetupAction(this, EnAm_RotateToInit); } void EnAm_SetupRotateToHome(EnAm* this) { Animation_PlayLoopSetSpeed(&this->skelAnime, &gArmosHopAnim, 4.0f); this->behavior = AM_BEHAVIOR_GO_HOME; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->dyna.actor.world.rot.y = this->dyna.actor.shape.rot.y; EnAm_SetupAction(this, EnAm_RotateToHome); } @@ -341,7 +341,7 @@ void EnAm_SetupRecoilFromDamage(EnAm* this, PlayState* play) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EN_AMOS_DAMAGE); if (EnAm_CanMove(this, play, -6.0f, this->dyna.actor.world.rot.y)) { - this->dyna.actor.speedXZ = -6.0f; + this->dyna.actor.speed = -6.0f; } this->dyna.actor.colorFilterTimer = 0; @@ -354,7 +354,7 @@ void EnAm_SetupRicochet(EnAm* this, PlayState* play) { this->dyna.actor.world.rot.y = this->dyna.actor.yawTowardsPlayer; if (EnAm_CanMove(this, play, -6.0f, this->dyna.actor.world.rot.y)) { - this->dyna.actor.speedXZ = -6.0f; + this->dyna.actor.speed = -6.0f; } this->unk_264 = 0; @@ -412,13 +412,13 @@ void EnAm_Sleep(EnAm* this, PlayState* play) { this->unk_264 = 0; } - this->dyna.actor.speedXZ += this->dyna.unk_150; + this->dyna.actor.speed += this->dyna.unk_150; this->shakeOrigin = this->dyna.actor.world.pos; this->dyna.actor.world.rot.y = this->dyna.unk_158; - this->dyna.actor.speedXZ = CLAMP(this->dyna.actor.speedXZ, -2.5f, 2.5f); - Math_SmoothStepToF(&this->dyna.actor.speedXZ, 0.0f, 1.0f, 1.0f, 0.0f); + this->dyna.actor.speed = CLAMP(this->dyna.actor.speed, -2.5f, 2.5f); + Math_SmoothStepToF(&this->dyna.actor.speed, 0.0f, 1.0f, 1.0f, 0.0f); - if (this->dyna.actor.speedXZ != 0.0f) { + if (this->dyna.actor.speed != 0.0f) { Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_ROCK_SLIDE - SFX_FLAG); } @@ -507,7 +507,7 @@ void EnAm_MoveToHome(EnAm* this, PlayState* play) { if (this->skelAnime.curFrame == 8.0f) { this->dyna.actor.velocity.y = 12.0f; - this->dyna.actor.speedXZ = 6.0f; + this->dyna.actor.speed = 6.0f; } else if (this->skelAnime.curFrame > 11.0f) { if (!(this->dyna.actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { this->skelAnime.curFrame = 11; @@ -519,7 +519,7 @@ void EnAm_MoveToHome(EnAm* this, PlayState* play) { } this->dyna.actor.velocity.y = 0.0f; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->dyna.actor.world.pos.y = this->dyna.actor.floorHeight; EnAm_SpawnEffects(this, play); @@ -530,7 +530,7 @@ void EnAm_MoveToHome(EnAm* this, PlayState* play) { } // turn away from a wall if touching one - if ((this->dyna.actor.speedXZ != 0.0f) && (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_WALL)) { + if ((this->dyna.actor.speed != 0.0f) && (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_WALL)) { this->dyna.actor.world.rot.y = this->dyna.actor.wallYaw; Actor_MoveForward(&this->dyna.actor); } @@ -541,12 +541,12 @@ void EnAm_MoveToHome(EnAm* this, PlayState* play) { } void EnAm_RecoilFromDamage(EnAm* this, PlayState* play) { - if (this->dyna.actor.speedXZ < 0.0f) { - this->dyna.actor.speedXZ += 0.5f; + if (this->dyna.actor.speed < 0.0f) { + this->dyna.actor.speed += 0.5f; } if ((this->dyna.actor.velocity.y <= 0.0f) && !EnAm_CanMove(this, play, -8.0f, this->dyna.actor.world.rot.y)) { - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; } if (SkelAnime_Update(&this->skelAnime)) { @@ -605,9 +605,9 @@ void EnAm_Lunge(EnAm* this, PlayState* play) { this->dyna.actor.velocity.y = 12.0f; if (EnAm_CanMove(this, play, 80.0f, this->dyna.actor.world.rot.y)) { - this->dyna.actor.speedXZ = 6.0f; + this->dyna.actor.speed = 6.0f; } else { - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; } this->unk_264 = 1; @@ -623,7 +623,7 @@ void EnAm_Lunge(EnAm* this, PlayState* play) { } this->dyna.actor.velocity.y = 0.0f; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->unk_264 = 0; this->dyna.actor.world.pos.y = this->dyna.actor.floorHeight; EnAm_SpawnEffects(this, play); @@ -637,7 +637,7 @@ void EnAm_Lunge(EnAm* this, PlayState* play) { } // turn and move away from a wall if contact is made with one - if ((this->dyna.actor.speedXZ != 0.0f) && (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_WALL)) { + if ((this->dyna.actor.speed != 0.0f) && (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_WALL)) { this->dyna.actor.world.rot.y = (this->dyna.actor.wallYaw - this->dyna.actor.world.rot.y) + this->dyna.actor.wallYaw; Actor_MoveForward(&this->dyna.actor); @@ -690,12 +690,12 @@ void EnAm_Statue(EnAm* this, PlayState* play) { this->unk_258 = 0; player->stateFlags2 &= ~(PLAYER_STATE2_0 | PLAYER_STATE2_4 | PLAYER_STATE2_6 | PLAYER_STATE2_8); - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; this->dyna.unk_150 = this->dyna.unk_154 = 0.0f; } this->dyna.actor.world.rot.y = this->dyna.unk_158; - this->dyna.actor.speedXZ = Math_SinS(this->unk_258) * (this->dyna.unk_150 * 0.5f); + this->dyna.actor.speed = Math_SinS(this->unk_258) * (this->dyna.unk_150 * 0.5f); } if (this->dyna.actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { @@ -714,7 +714,7 @@ void EnAm_SetupStunned(EnAm* this, PlayState* play) { this->dyna.actor.world.rot.y = this->dyna.actor.yawTowardsPlayer; if (EnAm_CanMove(this, play, -6.0f, this->dyna.actor.world.rot.y)) { - this->dyna.actor.speedXZ = -6.0f; + this->dyna.actor.speed = -6.0f; } Actor_SetColorFilter(&this->dyna.actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 100); @@ -731,12 +731,12 @@ void EnAm_SetupStunned(EnAm* this, PlayState* play) { void EnAm_Stunned(EnAm* this, PlayState* play) { Math_SmoothStepToS(&this->dyna.actor.shape.rot.y, this->dyna.actor.world.rot.y, 1, 0xFA0, 0); - if (this->dyna.actor.speedXZ < 0.0f) { - this->dyna.actor.speedXZ += 0.5f; + if (this->dyna.actor.speed < 0.0f) { + this->dyna.actor.speed += 0.5f; } if ((this->dyna.actor.velocity.y <= 0.0f) && !EnAm_CanMove(this, play, -9.0f, this->dyna.actor.world.rot.y)) { - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; } if (this->dyna.actor.colorFilterTimer == 0) { @@ -749,17 +749,17 @@ void EnAm_Stunned(EnAm* this, PlayState* play) { } void EnAm_Ricochet(EnAm* this, PlayState* play) { - if (this->dyna.actor.speedXZ < 0.0f) { - this->dyna.actor.speedXZ += 0.5f; + if (this->dyna.actor.speed < 0.0f) { + this->dyna.actor.speed += 0.5f; } if ((this->dyna.actor.velocity.y <= 0.0f) && - !EnAm_CanMove(this, play, this->dyna.actor.speedXZ * 1.5f, this->dyna.actor.world.rot.y)) { - this->dyna.actor.speedXZ = 0.0f; + !EnAm_CanMove(this, play, this->dyna.actor.speed * 1.5f, this->dyna.actor.world.rot.y)) { + this->dyna.actor.speed = 0.0f; } if (SkelAnime_Update(&this->skelAnime)) { - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; EnAm_SetupLunge(this); } } diff --git a/src/overlays/actors/ovl_En_Ani/z_en_ani.c b/src/overlays/actors/ovl_En_Ani/z_en_ani.c index 5feef35ccd..47f64792d3 100644 --- a/src/overlays/actors/ovl_En_Ani/z_en_ani.c +++ b/src/overlays/actors/ovl_En_Ani/z_en_ani.c @@ -206,7 +206,7 @@ void func_809B0988(EnAni* this, PlayState* play) { } void func_809B0994(EnAni* this, PlayState* play) { - if (play->csCtx.npcActions[0]->action == 4) { + if (play->csCtx.actorCues[0]->id == 4) { Animation_Change(&this->skelAnime, &gRoofManGettingUpAfterKnockbackAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gRoofManGettingUpAfterKnockbackAnim), ANIMMODE_ONCE, -4.0f); this->unk_2AA++; @@ -224,7 +224,7 @@ void func_809B0A6C(EnAni* this, PlayState* play) { if (SkelAnime_Update(&this->skelAnime)) { this->skelAnime.curFrame = 0.0f; } - if (play->csCtx.npcActions[0]->action == 2) { + if (play->csCtx.actorCues[0]->id == 2) { Animation_Change(&this->skelAnime, &gRoofManKnockbackAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gRoofManKnockbackAnim), ANIMMODE_ONCE, 0.0f); this->actor.shape.shadowDraw = NULL; @@ -240,7 +240,7 @@ void EnAni_Update(Actor* thisx, PlayState* play) { CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); Actor_MoveForward(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[0] != NULL)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[0] != NULL)) { switch (this->unk_2AA) { case 0: func_809B0A6C(this, play); @@ -259,7 +259,7 @@ void EnAni_Update(Actor* thisx, PlayState* play) { break; } - if (play->csCtx.frames == 100) { + if (play->csCtx.curFrame == 100) { func_800788CC(NA_SE_IT_EARTHQUAKE); } } else { diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index 6ad51489ca..5cdfd2731b 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -197,8 +197,8 @@ void func_809B3CEC(PlayState* play, EnArrow* this) { EnArrow_SetupAction(this, func_809B4640); Animation_PlayOnce(&this->skelAnime, &gArrow1Anim); this->actor.world.rot.y += (s32)(24576.0f * (Rand_ZeroOne() - 0.5f)) + 0x8000; - this->actor.velocity.y += (this->actor.speedXZ * (0.4f + (0.4f * Rand_ZeroOne()))); - this->actor.speedXZ *= (0.04f + 0.3f * Rand_ZeroOne()); + this->actor.velocity.y += (this->actor.speed * (0.4f + (0.4f * Rand_ZeroOne()))); + this->actor.speed *= (0.04f + 0.3f * Rand_ZeroOne()); this->timer = 50; this->actor.gravity = -1.5f; } @@ -270,7 +270,7 @@ void EnArrow_Fly(EnArrow* this, PlayState* play) { } if (this->actor.params == ARROW_NUT) { - iREG(50) = -1; + R_TRANS_FADE_FLASH_ALPHA_STEP = -1; Actor_Spawn(&play->actorCtx, play, ACTOR_EN_M_FIRE1, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 0); sfxId = NA_SE_IT_DEKU; @@ -294,7 +294,7 @@ void EnArrow_Fly(EnArrow* this, PlayState* play) { Math_Vec3f_Diff(&hitActor->world.pos, &this->actor.world.pos, &this->unk_250); hitActor->flags |= ACTOR_FLAG_15; this->collider.base.atFlags &= ~AT_HIT; - this->actor.speedXZ /= 2.0f; + this->actor.speed /= 2.0f; this->actor.velocity.y /= 2.0f; } else { this->hitFlags |= 1; @@ -336,7 +336,7 @@ void EnArrow_Fly(EnArrow* this, PlayState* play) { } if (this->actor.params <= ARROW_0E) { - this->actor.shape.rot.x = Math_Atan2S(this->actor.speedXZ, -this->actor.velocity.y); + this->actor.shape.rot.x = Math_Atan2S(this->actor.speed, -this->actor.velocity.y); } } @@ -458,7 +458,7 @@ void EnArrow_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); SkelAnime_DrawLod(play, this->skelAnime.skeleton, this->skelAnime.jointTable, NULL, NULL, this, (this->actor.projectedPos.z < MREG(95)) ? 0 : 1); - } else if (this->actor.speedXZ != 0.0f) { + } else if (this->actor.speed != 0.0f) { alpha = (Math_CosS(this->timer * 5000) * 127.5f) + 127.5f; OPEN_DISPS(play->state.gfxCtx, "../z_en_arrow.c", 1346); @@ -478,7 +478,7 @@ void EnArrow_Draw(Actor* thisx, PlayState* play) { Matrix_Push(); Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY); // redundant check because this is contained in an if block for non-zero speed - Matrix_RotateZ((this->actor.speedXZ == 0.0f) ? 0.0f : BINANG_TO_RAD((play->gameplayFrames & 0xFF) * 4000), + Matrix_RotateZ((this->actor.speed == 0.0f) ? 0.0f : BINANG_TO_RAD((play->gameplayFrames & 0xFF) * 4000), MTXMODE_APPLY); Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_arrow.c", 1374), diff --git a/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c b/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c index 3f6dd709c4..3e889445b0 100644 --- a/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c +++ b/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c @@ -185,7 +185,7 @@ void func_809B5670(EnAttackNiw* this, PlayState* play) { f32 tmpf3; Vec3f sp34; - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; tmpf1 = (this->unk_298.x + play->view.at.x) - play->view.eye.x; tmpf2 = (this->unk_298.y + play->view.at.y) - play->view.eye.y; @@ -266,7 +266,7 @@ void func_809B59B0(EnAttackNiw* this, PlayState* play) { Math_SmoothStepToS(&this->actor.world.rot.y, this->unk_2D4, 2, this->unk_2DC, 0); Math_SmoothStepToS(&this->actor.world.rot.x, this->unk_2D0, 2, this->unk_2DC, 0); Math_ApproachF(&this->unk_2DC, 10000.0f, 1.0f, 1000.0f); - Math_ApproachF(&this->actor.speedXZ, this->unk_2E0, 0.9f, 1.0f); + Math_ApproachF(&this->actor.speed, this->unk_2E0, 0.9f, 1.0f); if ((this->actor.gravity == -2.0f) && (this->unk_262 == 0) && ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || (this->unk_25C == 0))) { this->unk_2E0 = 0.0f; diff --git a/src/overlays/actors/ovl_En_Ba/z_en_ba.c b/src/overlays/actors/ovl_En_Ba/z_en_ba.c index 8a0a87ec8a..0ec920bab4 100644 --- a/src/overlays/actors/ovl_En_Ba/z_en_ba.c +++ b/src/overlays/actors/ovl_En_Ba/z_en_ba.c @@ -133,7 +133,7 @@ void EnBa_Destroy(Actor* thisx, PlayState* play) { void EnBa_SetupIdle(EnBa* this) { this->unk_14C = 2; this->unk_31C = 1500; - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; EnBa_SetupAction(this, EnBa_Idle); } @@ -159,7 +159,7 @@ void EnBa_Idle(EnBa* this, PlayState* play) { this->unk_2FC.y -= 448.0f; this->unk_2FC.x += this->unk_308.x; this->unk_2FC.z += this->unk_308.y; - func_80033AEC(&this->unk_2FC, &this->unk_158[13], 1.0f, this->actor.speedXZ, 0.0f, 0.0f); + func_80033AEC(&this->unk_2FC, &this->unk_158[13], 1.0f, this->actor.speed, 0.0f, 0.0f); for (i = 12; i >= 0; i--) { func_80035844(&this->unk_158[i + 1], &this->unk_158[i], &sp5C, 0); Matrix_Translate(this->unk_158[i + 1].x, this->unk_158[i + 1].y, this->unk_158[i + 1].z, MTXMODE_NEW); @@ -192,7 +192,7 @@ void EnBa_Idle(EnBa* this, PlayState* play) { void EnBa_SetupFallAsBlob(EnBa* this) { this->unk_14C = 0; - this->actor.speedXZ = Rand_CenteredFloat(8.0f); + this->actor.speed = Rand_CenteredFloat(8.0f); this->actor.world.rot.y = Rand_CenteredFloat(65535.0f); this->unk_318 = 20; this->actor.gravity = -2.0f; @@ -223,7 +223,7 @@ void EnBa_SetupSwingAtPlayer(EnBa* this) { this->unk_31A = 0; this->unk_31C = 1500; this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->actor.speedXZ = 20.0f; + this->actor.speed = 20.0f; EnBa_SetupAction(this, EnBa_SwingAtPlayer); } @@ -271,7 +271,7 @@ void EnBa_SwingAtPlayer(EnBa* this, PlayState* play) { } if (this->unk_31A != 0) { this->unk_31C = 8000; - this->actor.speedXZ = 30.0f; + this->actor.speed = 30.0f; phi_fp = Math_Vec3f_Yaw(&this->actor.world.pos, &this->unk_2FC); temp = Math_Vec3f_Pitch(&this->actor.world.pos, &this->unk_158[0]) + 0x8000; Math_SmoothStepToS(&this->actor.shape.rot.y, phi_fp, 1, this->unk_31C, 0); @@ -323,7 +323,7 @@ void func_809B7174(EnBa* this) { this->unk_31C = 1500; this->unk_318 = 20; this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_BALINADE_HAND_DAMAGE); Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 12); EnBa_SetupAction(this, EnBa_RecoilFromDamage); @@ -344,7 +344,7 @@ void EnBa_RecoilFromDamage(EnBa* this, PlayState* play) { this->unk_2FC.y -= 448.0f; this->unk_2FC.x += this->unk_308.x; this->unk_2FC.z += this->unk_308.y; - func_80033AEC(&this->unk_2FC, &this->unk_158[13], 1.0f, this->actor.speedXZ, 0.0f, 0.0f); + func_80033AEC(&this->unk_2FC, &this->unk_158[13], 1.0f, this->actor.speed, 0.0f, 0.0f); for (i = 12; i >= 0; i--) { func_80035844(&this->unk_158[i + 1], &this->unk_158[i], &sp6C, 0); Matrix_Translate(this->unk_158[i + 1].x, this->unk_158[i + 1].y, this->unk_158[i + 1].z, MTXMODE_NEW); @@ -413,7 +413,7 @@ void EnBa_Die(EnBa* this, PlayState* play) { s32 i; if (this->unk_31A != 0) { - this->actor.speedXZ = 30.0f; + this->actor.speed = 30.0f; this->unk_31C = 8000; this->actor.world.pos.y += 8.0f; temp = Math_Vec3f_Pitch(&this->actor.world.pos, &this->unk_158[0]) + 0x8000; diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c index 66ffb63c5d..c44ff5e978 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c @@ -411,7 +411,7 @@ void EnBb_SetupFlameTrail(EnBb* this) { this->actor.flags &= ~ACTOR_FLAG_0; this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnBb_SetupAction(this, EnBb_FlameTrail); } @@ -455,7 +455,7 @@ void EnBb_FlameTrail(EnBb* this, PlayState* play) { void EnBb_SetupDeath(EnBb* this, PlayState* play) { if (this->actor.params <= ENBB_BLUE) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; - this->actor.speedXZ = -7.0f; + this->actor.speed = -7.0f; this->timer = 5; this->actor.shape.rot.x += 0x4E20; EffectSsDeadSound_SpawnStationary(play, &this->actor.projectedPos, NA_SE_EN_BUBLE_DEAD, 1, 1, 0x28); @@ -509,7 +509,7 @@ void EnBb_SetupDamage(EnBb* this) { if (this->actor.params > ENBB_GREEN) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; if (!(this->actor.bgCheckFlags & BGCHECKFLAG_WALL)) { - this->actor.speedXZ = -7.0f; + this->actor.speed = -7.0f; } this->actor.shape.yOffset = 1500.0f; } @@ -522,8 +522,8 @@ void EnBb_SetupDamage(EnBb* this) { } void EnBb_Damage(EnBb* this, PlayState* play) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); - if (this->actor.speedXZ == 0.0f) { + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); + if (this->actor.speed == 0.0f) { this->actor.shape.yOffset = 200.0f; EnBb_SetupDown(this); } @@ -531,7 +531,7 @@ void EnBb_Damage(EnBb* this, PlayState* play) { void EnBb_SetupBlue(EnBb* this) { Animation_PlayLoop(&this->skelAnime, &object_Bb_Anim_000444); - this->actor.speedXZ = (Rand_ZeroOne() * 0.5f) + 0.5f; + this->actor.speed = (Rand_ZeroOne() * 0.5f) + 0.5f; this->timer = (Rand_ZeroOne() * 20.0f) + 40.0f; this->unk_264 = (Rand_ZeroOne() * 30.0f) + 180.0f; this->targetActor = NULL; @@ -561,7 +561,7 @@ void EnBb_Blue(EnBb* this, PlayState* play) { } this->actor.world.pos.y += Math_CosF(this->bobPhase) * (1.0f + this->bobSpeedMod); this->bobPhase += 0.2f; - Math_SmoothStepToF(&this->actor.speedXZ, this->maxSpeed, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, this->maxSpeedXZ, 1.0f, 0.5f, 0.0f); if (Math_Vec3f_DistXZ(&this->actor.world.pos, &this->actor.home.pos) > 300.0f) { this->vMoveAngleY = Math_Vec3f_Yaw(&this->actor.world.pos, &this->actor.home.pos); @@ -571,19 +571,19 @@ void EnBb_Blue(EnBb* this, PlayState* play) { if (this->timer <= 0) { this->charge ^= true; this->flyHeightMod = (s16)(Math_CosF(this->bobPhase) * 10.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->charge && (this->targetActor == NULL)) { this->vMoveAngleY = this->actor.world.rot.y; if (this->actor.xzDistToPlayer < 200.0f) { Animation_PlayLoop(&this->skelAnime, &object_Bb_Anim_000184); this->vMoveAngleY = this->actor.yawTowardsPlayer; } - this->maxSpeed = (Rand_ZeroOne() * 1.5f) + 6.0f; + this->maxSpeedXZ = (Rand_ZeroOne() * 1.5f) + 6.0f; this->timer = (Rand_ZeroOne() * 5.0f) + 20.0f; this->actionState = BBBLUE_NORMAL; } else { Animation_PlayLoop(&this->skelAnime, &object_Bb_Anim_000444); - this->maxSpeed = (Rand_ZeroOne() * 1.5f) + 1.0f; + this->maxSpeedXZ = (Rand_ZeroOne() * 1.5f) + 1.0f; this->timer = (Rand_ZeroOne() * 20.0f) + 40.0f; this->vMoveAngleY = Math_SinF(this->bobPhase) * 65535.0f; } @@ -591,7 +591,7 @@ void EnBb_Blue(EnBb* this, PlayState* play) { if ((this->actor.xzDistToPlayer < 150.0f) && (this->actionState != BBBLUE_NORMAL)) { if (!this->charge) { Animation_PlayLoop(&this->skelAnime, &object_Bb_Anim_000184); - this->maxSpeed = (Rand_ZeroOne() * 1.5f) + 6.0f; + this->maxSpeedXZ = (Rand_ZeroOne() * 1.5f) + 6.0f; this->timer = (Rand_ZeroOne() * 5.0f) + 20.0f; this->vMoveAngleY = this->actor.yawTowardsPlayer; this->actionState = this->charge = true; // Sets actionState to BBBLUE_AGGRO @@ -611,7 +611,7 @@ void EnBb_Blue(EnBb* this, PlayState* play) { if ((this->vBombHopPhase == 0) && (explosive != this->targetActor)) { this->vBombHopPhase = -0x8000; this->targetActor = explosive; - this->actor.speedXZ *= 0.5f; + this->actor.speed *= 0.5f; } Math_SmoothStepToS(&this->actor.world.rot.y, this->vMoveAngleY, 1, 0x1388, 0); Math_SmoothStepToF(&this->actor.world.pos.x, explosive->world.pos.x, 1.0f, 1.5f, 0.0f); @@ -650,7 +650,7 @@ void EnBb_Blue(EnBb* this, PlayState* play) { this->collider.base.atFlags &= ~AT_HIT; } - if (this->maxSpeed >= 6.0f) { + if (this->maxSpeedXZ >= 6.0f) { if ((s32)this->skelAnime.curFrame == 0 || (s32)this->skelAnime.curFrame == 5) { Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLE_MOUTH); } else if ((s32)this->skelAnime.curFrame == 2 || (s32)this->skelAnime.curFrame == 7) { @@ -673,7 +673,7 @@ void EnBb_SetupDown(EnBb* this) { this->timer = 200; this->actor.colorFilterTimer = 0; this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; this->flameScaleX = 0.0f; this->flameScaleY = 0.0f; this->actor.gravity = -2.0f; @@ -748,7 +748,7 @@ void EnBb_Down(EnBb* this, PlayState* play) { void EnBb_SetupRed(PlayState* play, EnBb* this) { Animation_PlayLoop(&this->skelAnime, &object_Bb_Anim_000184); if (this->action == BB_DOWN) { - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actor.gravity = -1.0f; this->actor.velocity.y = 16.0f; this->actionState = BBRED_ATTACK; @@ -762,7 +762,7 @@ void EnBb_SetupRed(PlayState* play, EnBb* this) { this->moveMode = BBMOVE_HIDDEN; this->actor.world.pos.y -= 80.0f; this->actor.home.pos = this->actor.world.pos; - this->actor.velocity.y = this->actor.gravity = this->actor.speedXZ = 0.0f; + this->actor.velocity.y = this->actor.gravity = this->actor.speed = 0.0f; this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; this->actor.flags &= ~ACTOR_FLAG_0; } @@ -785,7 +785,7 @@ void EnBb_Red(EnBb* this, PlayState* play) { case BBRED_WAIT: if ((Actor_WorldDistXYZToActor(&this->actor, &player->actor) <= 250.0f) && (ABS(yawDiff) <= 0x4000) && (this->timer == 0)) { - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actor.gravity = -1.0f; this->actor.velocity.y = 18.0f; this->moveMode = BBMOVE_NOCLIP; @@ -834,7 +834,7 @@ void EnBb_Red(EnBb* this, PlayState* play) { break; case BBRED_HIDE: if (this->timer == 0) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = 0.0f; this->actor.velocity.y = 0.0f; this->actionState = BBRED_WAIT; @@ -874,24 +874,24 @@ void EnBb_SetWaypoint(EnBb* this, PlayState* play) { void EnBb_SetupWhite(PlayState* play, EnBb* this) { Animation_PlayLoop(&this->skelAnime, &object_Bb_Anim_000444); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.pos.y += 60.0f; this->flameScaleX = 100.0f; this->action = BB_WHITE; this->waypoint = 0; this->timer = (Rand_ZeroOne() * 30.0f) + 40.0f; - this->maxSpeed = 7.0f; + this->maxSpeedXZ = 7.0f; EnBb_SetupAction(this, EnBb_White); } void EnBb_White(EnBb* this, PlayState* play) { - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { f32 distL1; f32 vx; f32 vz; s16 pitch = Math_Vec3f_Pitch(&this->actor.world.pos, &this->waypointPos); - f32 vy = Math_SinS(pitch) * this->maxSpeed; - f32 vxz = Math_CosS(pitch) * this->maxSpeed; + f32 vy = Math_SinS(pitch) * this->maxSpeedXZ; + f32 vxz = Math_CosS(pitch) * this->maxSpeedXZ; vx = Math_SinS(this->actor.shape.rot.y) * vxz; vz = Math_CosS(this->actor.shape.rot.y) * vxz; @@ -913,17 +913,17 @@ void EnBb_White(EnBb* this, PlayState* play) { this->actor.world.rot.y += 0x1F40; } this->moveMode = BBMOVE_NORMAL; - this->maxSpeed = 0.0f; + this->maxSpeedXZ = 0.0f; } else { this->moveMode = BBMOVE_NOCLIP; - this->maxSpeed = 10.0f; + this->maxSpeedXZ = 10.0f; } if (this->collider.base.atFlags & AT_HIT) { Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLE_BITE); this->collider.base.atFlags &= ~AT_HIT; } this->actor.shape.rot.y = this->actor.world.rot.y; - } else if (Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f) == 0.0f) { + } else if (Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f) == 0.0f) { EnBb_FaceWaypoint(this); } SkelAnime_Update(&this->skelAnime); @@ -931,7 +931,7 @@ void EnBb_White(EnBb* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLE_LAUGH); } - if ((this->maxSpeed != 0.0f) && (((s32)this->skelAnime.curFrame == 0) || ((s32)this->skelAnime.curFrame == 5))) { + if ((this->maxSpeedXZ != 0.0f) && (((s32)this->skelAnime.curFrame == 0) || ((s32)this->skelAnime.curFrame == 5))) { Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLE_MOUTH); } else if (((s32)this->skelAnime.curFrame == 2) || ((s32)this->skelAnime.curFrame == 7)) { Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLE_WING); @@ -958,7 +958,7 @@ void EnBb_InitGreen(EnBb* this, PlayState* play) { Matrix_MultVec3f(&bobOffset, &this->actor.world.pos); this->targetActor = NULL; this->action = BB_GREEN; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->vFlameTimer = (Rand_ZeroOne() * 30.0f) + 180.0f; EnBb_SetupAction(this, EnBb_Green); } @@ -969,7 +969,7 @@ void EnBb_SetupGreen(EnBb* this) { this->actionState = BBGREEN_FLAME_ON; this->targetActor = NULL; this->action = BB_GREEN; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->vFlameTimer = (Rand_ZeroOne() * 30.0f) + 180.0f; this->actor.shape.rot.z = 0; this->actor.shape.rot.y = this->actor.yawTowardsPlayer; @@ -983,11 +983,11 @@ void EnBb_Green(EnBb* this, PlayState* play) { nextPos.y += 30.0f; if (this->actor.params == ENBB_GREEN_BIG) { - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { s16 pitch = Math_Vec3f_Pitch(&this->actor.home.pos, &this->waypointPos); s16 yaw = Math_Vec3f_Yaw(&this->actor.home.pos, &this->waypointPos); - f32 vy = Math_SinS(pitch) * this->maxSpeed; - f32 vxz = Math_CosS(pitch) * this->maxSpeed; + f32 vy = Math_SinS(pitch) * this->maxSpeedXZ; + f32 vxz = Math_CosS(pitch) * this->maxSpeedXZ; f32 vz; f32 vx; f32 distL1; @@ -1003,7 +1003,7 @@ void EnBb_Green(EnBb* this, PlayState* play) { EnBb_SetWaypoint(this, play); } this->moveMode = BBMOVE_NOCLIP; - this->maxSpeed = 10.0f; + this->maxSpeedXZ = 10.0f; if (this->collider.base.atFlags & AT_HIT) { Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLE_BITE); this->collider.base.atFlags &= ~AT_HIT; @@ -1017,7 +1017,7 @@ void EnBb_Green(EnBb* this, PlayState* play) { } } this->actor.shape.rot.y = this->actor.world.rot.y; - } else if (Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f) == 0.0f) { + } else if (Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f) == 0.0f) { EnBb_FaceWaypoint(this); } } else { @@ -1074,7 +1074,7 @@ void EnBb_SetupStunned(EnBb* this) { this->actor.gravity = -2.0f; this->actor.shape.yOffset = 1500.0f; } - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->flameScaleX = 0.0f; this->flameScaleY = 0.0f; } else { @@ -1206,8 +1206,8 @@ void EnBb_CollisionCheck(EnBb* this, PlayState* play) { } else if ((this->actor.params == ENBB_WHITE) && ((this->action == BB_WHITE) || (this->action == BB_STUNNED))) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 12); - this->actor.speedXZ = -8.0f; - this->maxSpeed = 0.0f; + this->actor.speed = -8.0f; + this->maxSpeedXZ = 0.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer; Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLE_DAMAGE); } else if (((this->action == BB_DOWN) && (this->timer < 190)) || @@ -1235,7 +1235,7 @@ void EnBb_Update(Actor* thisx, PlayState* play2) { } if (this->actor.colChkInfo.damageEffect != 0xD) { this->actionFunc(this, play); - if ((this->actor.params <= ENBB_BLUE) && (this->actor.speedXZ >= -6.0f) && + if ((this->actor.params <= ENBB_BLUE) && (this->actor.speed >= -6.0f) && ((this->actor.flags & ACTOR_FLAG_15) == 0)) { Actor_MoveForward(&this->actor); } @@ -1252,7 +1252,7 @@ void EnBb_Update(Actor* thisx, PlayState* play2) { this->actor.world.pos.y + (this->actor.shape.yOffset * this->actor.scale.y); this->collider.elements->dim.worldSphere.center.z = this->actor.world.pos.z; - if ((this->action > BB_KILL) && ((this->actor.speedXZ != 0.0f) || (this->action == BB_GREEN))) { + if ((this->action > BB_KILL) && ((this->actor.speed != 0.0f) || (this->action == BB_GREEN))) { CollisionCheck_SetAT(play, &play->colChkCtx, &this->collider.base); } if ((this->action > BB_FLAME_TRAIL) && @@ -1286,8 +1286,8 @@ void EnBb_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_bb.c", 2044); - blureBase1.z = this->maxSpeed * 80.0f; - blureBase2.z = this->maxSpeed * 80.0f; + blureBase1.z = this->maxSpeedXZ * 80.0f; + blureBase2.z = this->maxSpeedXZ * 80.0f; if (this->moveMode != BBMOVE_HIDDEN) { if (this->actor.params <= ENBB_BLUE) { Gfx_SetupDL_25Opa(play->state.gfxCtx); @@ -1344,7 +1344,7 @@ void EnBb_Draw(Actor* thisx, PlayState* play) { } else { Matrix_MultVec3f(&blureBase1, &blureVtx1); Matrix_MultVec3f(&blureBase2, &blureVtx2); - if ((this->maxSpeed != 0.0f) && (this->action == BB_WHITE) && !(play->gameplayFrames & 1) && + if ((this->maxSpeedXZ != 0.0f) && (this->action == BB_WHITE) && !(play->gameplayFrames & 1) && (this->actor.colChkInfo.health != 0)) { EffectBlure_AddVertex(Effect_GetByIndex(this->blureIdx), &blureVtx1, &blureVtx2); } else if (this->action != BB_WHITE) { diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.h b/src/overlays/actors/ovl_En_Bb/z_en_bb.h index 242088a10b..3e3d9be467 100644 --- a/src/overlays/actors/ovl_En_Bb/z_en_bb.h +++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.h @@ -26,7 +26,7 @@ typedef struct EnBb { /* 0x0270 */ s16 flameScrollMod; /* 0x0274 */ f32 bobPhase; /* 0x0278 */ f32 bobSize; - /* 0x027C */ f32 maxSpeed; + /* 0x027C */ f32 maxSpeedXZ; /* 0x0280 */ f32 flyHeightMod; /* 0x027C */ f32 bobSpeedMod; // y speed for blue, phase speed for green /* 0x0288 */ f32 flameScaleY; diff --git a/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c b/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c index ea5d6d9d27..04f650d852 100644 --- a/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c +++ b/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c @@ -54,7 +54,7 @@ void EnBdfire_Init(Actor* thisx, PlayState* play) { } else { EnBdfire_SetupAction(this, func_809BC598); ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 0.0f); - this->actor.speedXZ = 30.0f; + this->actor.speed = 30.0f; this->unk_154 = (25 - (s32)(this->actor.params * 0.8f)); if (this->unk_154 < 0) { this->unk_154 = 0; diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c index 8cb008fa66..81b4fa2638 100644 --- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c +++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c @@ -582,7 +582,7 @@ void func_809BE058(EnBigokuta* this, PlayState* play) { if ((this->collider.base.ocFlags1 & OC1_HIT) || (this->cylinder[0].base.ocFlags1 & OC1_HIT) || (this->cylinder[1].base.ocFlags1 & OC1_HIT)) { - speedXZ = CLAMP_MIN(player->actor.speedXZ, 1.0f); + speedXZ = CLAMP_MIN(player->actor.speed, 1.0f); if (!(this->collider.base.ocFlags1 & OC1_HIT)) { this->cylinder[0].base.ocFlags1 &= ~OC1_HIT; this->cylinder[1].base.ocFlags1 &= ~OC1_HIT; diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.c b/src/overlays/actors/ovl_En_Bili/z_en_bili.c index d403c1daec..3d6cf0dc05 100644 --- a/src/overlays/actors/ovl_En_Bili/z_en_bili.c +++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.c @@ -140,7 +140,7 @@ void EnBili_Destroy(Actor* thisx, PlayState* play) { // Setup Action Functions void EnBili_SetupFloatIdle(EnBili* this) { - this->actor.speedXZ = 0.7f; + this->actor.speed = 0.7f; this->collider.info.bumper.effect = 1; // Shock? this->timer = 32; this->collider.base.atFlags |= AT_ON; @@ -161,7 +161,7 @@ void EnBili_SetupSpawnedFlyApart(EnBili* this) { this->actor.gravity = -0.3f; this->collider.base.atFlags &= ~AT_ON; this->actionFunc = EnBili_SpawnedFlyApart; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; } /** @@ -171,7 +171,7 @@ void EnBili_SetupDischargeLightning(EnBili* this) { Animation_PlayLoop(&this->skelAnime, &gBiriDischargeLightningAnim); this->timer = 10; this->actionFunc = EnBili_DischargeLightning; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = -1.0f; } @@ -179,19 +179,19 @@ void EnBili_SetupClimb(EnBili* this) { Animation_PlayOnce(&this->skelAnime, &gBiriClimbAnim); this->collider.base.atFlags &= ~AT_ON; this->actionFunc = EnBili_Climb; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; } void EnBili_SetupApproachPlayer(EnBili* this) { - this->actor.speedXZ = 1.2f; + this->actor.speed = 1.2f; this->actionFunc = EnBili_ApproachPlayer; } void EnBili_SetupSetNewHomeHeight(EnBili* this) { Animation_PlayLoop(&this->skelAnime, &gBiriDefaultAnim); this->timer = 96; - this->actor.speedXZ = 0.9f; + this->actor.speed = 0.9f; this->collider.base.atFlags |= AT_ON; this->actionFunc = EnBili_SetNewHomeHeight; this->actor.home.pos.y = this->actor.world.pos.y; @@ -205,7 +205,7 @@ void EnBili_SetupRecoil(EnBili* this) { this->actor.world.rot.y = Actor_WorldYawTowardPoint(&this->actor, &this->collider.base.ac->prevPos) + 0x8000; this->actor.world.rot.x = Actor_WorldPitchTowardPoint(&this->actor, &this->collider.base.ac->prevPos); this->actionFunc = EnBili_Recoil; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; } /** @@ -220,7 +220,7 @@ void EnBili_SetupBurnt(EnBili* this) { this->collider.base.atFlags &= ~AT_ON; this->collider.base.acFlags &= ~AC_ON; this->actor.flags |= ACTOR_FLAG_4; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_XLU, 20); this->actionFunc = EnBili_Burnt; } @@ -229,7 +229,7 @@ void EnBili_SetupDie(EnBili* this) { this->timer = 18; this->actor.flags &= ~ACTOR_FLAG_0; this->actionFunc = EnBili_Die; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } /** @@ -239,7 +239,7 @@ void EnBili_SetupStunned(EnBili* this) { this->timer = 80; this->collider.info.bumper.effect = 0; this->actor.gravity = -1.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 150, COLORFILTER_BUFFLAG_XLU, 80); Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_JR_FREEZE); this->collider.base.atFlags &= ~AT_ON; @@ -267,7 +267,7 @@ void EnBili_SetupFrozen(EnBili* this, PlayState* play) { (Rand_ZeroOne() * 0.2f) + 0.7f); } - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 150, COLORFILTER_BUFFLAG_XLU, 10); this->collider.base.atFlags &= ~AT_ON; this->collider.base.acFlags &= ~AC_ON; @@ -446,7 +446,7 @@ void EnBili_SetNewHomeHeight(EnBili* this, PlayState* play) { void EnBili_Recoil(EnBili* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); - if (Math_StepToF(&this->actor.speedXZ, 0.0f, 0.3f)) { + if (Math_StepToF(&this->actor.speed, 0.0f, 0.3f)) { this->actor.world.rot.y += 0x8000; EnBili_SetupFloatIdle(this); } diff --git a/src/overlays/actors/ovl_En_Bird/z_en_bird.c b/src/overlays/actors/ovl_En_Bird/z_en_bird.c index a526cea4d8..709c934176 100644 --- a/src/overlays/actors/ovl_En_Bird/z_en_bird.c +++ b/src/overlays/actors/ovl_En_Bird/z_en_bird.c @@ -50,8 +50,8 @@ void EnBird_Init(Actor* thisx, PlayState* play) { this->timer = 0; this->rotYStep = 2500; this->actor.colChkInfo.mass = 0; - this->speedXZTarget = 1.5f; - this->speedXZStep = 0.5f; + this->speedTarget = 1.5f; + this->speedStep = 0.5f; this->posYMag = 0.0f; this->rotYMag = 0.0f; this->posYPhaseStep = 0.0f; @@ -74,10 +74,10 @@ void EnBird_SetupIdle(EnBird* this, s16 params) { void EnBird_Idle(EnBird* this, PlayState* play) { this->actor.shape.yOffset += sinf(this->posYPhase) * this->posYMag; - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.1f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.1f, 0.5f, 0.0f); if (this->scaleAnimSpeed) { - this->skelAnime.playSpeed = this->actor.speedXZ * 2.0f; + this->skelAnime.playSpeed = this->actor.speed * 2.0f; } SkelAnime_Update(&this->skelAnime); @@ -95,7 +95,7 @@ void EnBird_SetupMove(EnBird* this, s16 params) { void EnBird_Move(EnBird* this, PlayState* play) { this->actor.shape.yOffset += sinf(this->posYPhase) * this->posYMag; - Math_SmoothStepToF(&this->actor.speedXZ, this->speedXZTarget, 0.1f, this->speedXZStep, 0.0f); + Math_SmoothStepToF(&this->actor.speed, this->speedTarget, 0.1f, this->speedStep, 0.0f); if (this->flightDistance < Math_Vec3f_DistXZ(&this->actor.world.pos, &this->actor.home.pos) || this->timer < 4) { Math_StepToAngleS(&this->actor.world.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &this->actor.home.pos), diff --git a/src/overlays/actors/ovl_En_Bird/z_en_bird.h b/src/overlays/actors/ovl_En_Bird/z_en_bird.h index 589b72b01f..b255ee39b7 100644 --- a/src/overlays/actors/ovl_En_Bird/z_en_bird.h +++ b/src/overlays/actors/ovl_En_Bird/z_en_bird.h @@ -17,8 +17,8 @@ typedef struct EnBird { /* 0x019C */ s16 scaleAnimSpeed; // when true, anim speed scales with XZ speed while slowing down. otherwise anim plays full speed /* 0x01A0 */ f32 posYMag; /* 0x01A4 */ f32 rotYMag; - /* 0x01A8 */ f32 speedXZTarget; - /* 0x01AC */ f32 speedXZStep; + /* 0x01A8 */ f32 speedTarget; + /* 0x01AC */ f32 speedStep; /* 0x01B0 */ f32 flightDistance; // radius of "home" area /* 0x01B4 */ f32 posYPhase; /* 0x01B8 */ f32 posYPhaseStep; diff --git a/src/overlays/actors/ovl_En_Bom/z_en_bom.c b/src/overlays/actors/ovl_En_Bom/z_en_bom.c index a9bdd813c5..508c9f233e 100644 --- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c +++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c @@ -131,20 +131,20 @@ void EnBom_Move(EnBom* this, PlayState* play) { } // rebound bomb off the wall it hits - if ((this->actor.speedXZ != 0.0f) && (this->actor.bgCheckFlags & BGCHECKFLAG_WALL)) { + if ((this->actor.speed != 0.0f) && (this->actor.bgCheckFlags & BGCHECKFLAG_WALL)) { if (ABS((s16)(this->actor.wallYaw - this->actor.world.rot.y)) > 0x4000) { this->actor.world.rot.y = ((this->actor.wallYaw - this->actor.world.rot.y) + this->actor.wallYaw) - 0x8000; } Actor_PlaySfx(&this->actor, NA_SE_EV_BOMB_BOUND); Actor_MoveForward(&this->actor); - this->actor.speedXZ *= 0.7f; + this->actor.speed *= 0.7f; this->actor.bgCheckFlags &= ~BGCHECKFLAG_WALL; } if (!(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.08f); + Math_StepToF(&this->actor.speed, 0.0f, 0.08f); } else { - Math_StepToF(&this->actor.speedXZ, 0.0f, 1.0f); + Math_StepToF(&this->actor.speed, 0.0f, 1.0f); if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) && (this->actor.velocity.y < -3.0f)) { func_8002F850(play, &this->actor); this->actor.velocity.y *= -0.3f; diff --git a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c index cdfb215c5f..3ecb6151fe 100644 --- a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c +++ b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c @@ -112,7 +112,7 @@ void EnBomChu_Explode(EnBomChu* this, PlayState* play) { } this->timer = 1; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->actor.yDistToWater > 0.0f) { for (i = 0; i < 40; i++) { @@ -230,7 +230,7 @@ void EnBomChu_WaitForRelease(EnBomChu* this, PlayState* play) { this->axisLeft.y = 0; this->axisLeft.z = Math_CosS(this->actor.shape.rot.y + 0x4000); - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; //! @bug there is no NULL check on the floor poly. If the player is out of bounds the floor poly will be NULL //! and will cause a crash inside this function. EnBomChu_UpdateFloorPoly(this, this->actor.floorPoly, play); @@ -252,8 +252,8 @@ void EnBomChu_Move(EnBomChu* this, PlayState* play) { Vec3f posSide; Vec3f posUpDown; - this->actor.speedXZ = 8.0f; - lineLength = this->actor.speedXZ * 2.0f; + this->actor.speed = 8.0f; + lineLength = this->actor.speed * 2.0f; if (this->timer != 0) { this->timer--; @@ -289,7 +289,7 @@ void EnBomChu_Move(EnBomChu* this, PlayState* play) { EnBomChu_UpdateFloorPoly(this, polySide, play); this->actor.world.pos = posSide; this->actor.floorBgId = bgIdSide; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } else { if (this->actor.floorPoly != polyUpDown) { EnBomChu_UpdateFloorPoly(this, polyUpDown, play); @@ -299,7 +299,7 @@ void EnBomChu_Move(EnBomChu* this, PlayState* play) { this->actor.floorBgId = bgIdUpDown; } } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; lineLength *= 3.0f; posA = posB; diff --git a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c index 7838e32c65..f0469b7419 100644 --- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c +++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c @@ -234,9 +234,9 @@ void EnBombf_Move(EnBombf* this, PlayState* play) { this->flowerBombScale = 1.0f; if (!(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.025f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.025f, 0.0f); } else { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 1.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 1.5f, 0.0f); if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) && (this->actor.velocity.y < -6.0f)) { func_8002F850(play, &this->actor); this->actor.velocity.y *= -0.5f; @@ -350,7 +350,7 @@ void EnBombf_Update(Actor* thisx, PlayState* play) { } // rebound bomb off the wall it hits - if ((thisx->speedXZ != 0.0f) && (thisx->bgCheckFlags & BGCHECKFLAG_WALL)) { + if ((thisx->speed != 0.0f) && (thisx->bgCheckFlags & BGCHECKFLAG_WALL)) { if (ABS((s16)(thisx->wallYaw - thisx->world.rot.y)) > 0x4000) { if (1) {} @@ -363,7 +363,7 @@ void EnBombf_Update(Actor* thisx, PlayState* play) { UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_1 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 | UPDBGCHECKINFO_FLAG_4); DREG(6) = 0; - thisx->speedXZ *= 0.7f; + thisx->speed *= 0.7f; thisx->bgCheckFlags &= ~BGCHECKFLAG_WALL; } diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c index f1c5efcc32..0cfd270c63 100644 --- a/src/overlays/actors/ovl_En_Box/z_en_box.c +++ b/src/overlays/actors/ovl_En_Box/z_en_box.c @@ -302,7 +302,7 @@ void func_809C9700(EnBox* this, PlayState* play) { } if (this->unk_1FB == ENBOX_STATE_1) { - func_8010BD58(play, OCARINA_ACTION_FREE_PLAY); + Message_StartOcarina(play, OCARINA_ACTION_FREE_PLAY); this->unk_1FB = ENBOX_STATE_2; } else if (this->unk_1FB == ENBOX_STATE_2 && play->msgCtx.ocarinaMode == OCARINA_MODE_04) { if ((play->msgCtx.lastPlayedSong == OCARINA_SONG_LULLABY && this->type == ENBOX_TYPE_9) || diff --git a/src/overlays/actors/ovl_En_Butte/z_en_butte.c b/src/overlays/actors/ovl_En_Butte/z_en_butte.c index 13c6c63925..c26640f094 100644 --- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c +++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c @@ -224,7 +224,7 @@ void EnButte_FlyAround(EnButte* this, PlayState* play) { distSqFromHome = Math3D_Dist2DSq(this->actor.world.pos.x, this->actor.world.pos.z, this->actor.home.pos.x, this->actor.home.pos.z); func_809CD56C(this); - Math_SmoothStepToF(&this->actor.speedXZ, flightParams->speedXZTarget, flightParams->speedXZScale, + Math_SmoothStepToF(&this->actor.speed, flightParams->speedXZTarget, flightParams->speedXZScale, flightParams->speedXZStep, 0.0f); if (this->unk_257 == 1) { @@ -259,7 +259,7 @@ void EnButte_FlyAround(EnButte* this, PlayState* play) { EnButte_Turn(this); - animSpeed = this->actor.speedXZ / 2.0f + Rand_ZeroOne() * 0.2f + (1.0f - Math_SinS(this->unk_260)) * 0.15f + + animSpeed = this->actor.speed / 2.0f + Rand_ZeroOne() * 0.2f + (1.0f - Math_SinS(this->unk_260)) * 0.15f + (1.0f - Math_SinS(this->unk_25E)) * 0.3f + minAnimSpeed; this->skelAnime.playSpeed = CLAMP(animSpeed, 0.2f, 1.5f); SkelAnime_Update(&this->skelAnime); @@ -299,7 +299,7 @@ void EnButte_FollowLink(EnButte* this, PlayState* play) { s16 yaw; func_809CD634(this); - Math_SmoothStepToF(&this->actor.speedXZ, flightParams->speedXZTarget, flightParams->speedXZScale, + Math_SmoothStepToF(&this->actor.speed, flightParams->speedXZTarget, flightParams->speedXZScale, flightParams->speedXZStep, 0.0f); minAnimSpeed = 0.0f; @@ -322,7 +322,7 @@ void EnButte_FollowLink(EnButte* this, PlayState* play) { EnButte_Turn(this); - animSpeed = this->actor.speedXZ / 2.0f + Rand_ZeroOne() * 0.2f + (1.0f - Math_SinS(this->unk_260)) * 0.15f + + animSpeed = this->actor.speed / 2.0f + Rand_ZeroOne() * 0.2f + (1.0f - Math_SinS(this->unk_260)) * 0.15f + (1.0f - Math_SinS(this->unk_25E)) * 0.3f + minAnimSpeed; this->skelAnime.playSpeed = CLAMP(animSpeed, 0.2f, 1.5f); SkelAnime_Update(&this->skelAnime); @@ -334,7 +334,7 @@ void EnButte_FollowLink(EnButte* this, PlayState* play) { distSqFromHome = Math3D_Dist2DSq(this->actor.world.pos.x, this->actor.world.pos.z, this->actor.home.pos.x, this->actor.home.pos.z); - if (!((player->heldItemAction == PLAYER_IA_DEKU_STICK) && (fabsf(player->actor.speedXZ) < 1.8f) && + if (!((player->heldItemAction == PLAYER_IA_DEKU_STICK) && (fabsf(player->actor.speed) < 1.8f) && (this->swordDownTimer <= 0) && (distSqFromHome < SQ(320.0f)))) { EnButte_SetupFlyAround(this); } else if (distSqFromHome > SQ(240.0f)) { diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.c b/src/overlays/actors/ovl_En_Bw/z_en_bw.c index f9400bc441..299915e86a 100644 --- a/src/overlays/actors/ovl_En_Bw/z_en_bw.c +++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.c @@ -162,7 +162,7 @@ void EnBw_Destroy(Actor* thisx, PlayState* play) { } void func_809CE884(EnBw* this, PlayState* play) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); this->unk_222 -= 250; this->actor.scale.x = 0.013f + Math_SinF(this->unk_222 * 0.001f) * 0.0069999998f; this->actor.scale.y = 0.013f - Math_SinF(this->unk_222 * 0.001f) * 0.0069999998f; @@ -178,7 +178,7 @@ void func_809CE9A8(EnBw* this) { this->unk_220 = 2; this->unk_222 = Rand_ZeroOne() * 200.0f + 200.0f; this->unk_232 = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnBw_SetupAction(this, func_809CEA24); } @@ -215,13 +215,13 @@ void func_809CEA24(EnBw* this, PlayState* play) { } } sp5C *= this->unk_24C * (10.0f * this->unk_244); - this->actor.speedXZ = ABS(sp5C); + this->actor.speed = ABS(sp5C); if (this->unk_221 != 1) { sp58 = Math_SinF(this->unk_240); sp60 = ABS(sp58) * 85.0f; this->color1.g = sp60; } - if ((((play->gameplayFrames % 4) == (u32)this->actor.params) && (this->actor.speedXZ != 0.0f) && + if ((((play->gameplayFrames % 4) == (u32)this->actor.params) && (this->actor.speed != 0.0f) && (sp64 = BgCheck_AnyLineTest2(&play->colCtx, &this->actor.world.pos, &this->unk_264, &sp68, &sp74, 1, 0, 0, 1))) || (this->unk_222 == 0)) { @@ -281,7 +281,7 @@ void func_809CEA24(EnBw* this, PlayState* play) { } this->unk_222 = (Rand_ZeroOne() * 200.0f) + 200.0f; } - } else if ((this->actor.speedXZ != 0.0f) && (this->actor.bgCheckFlags & BGCHECKFLAG_WALL)) { + } else if ((this->actor.speed != 0.0f) && (this->actor.bgCheckFlags & BGCHECKFLAG_WALL)) { if (this->unk_236 != this->actor.wallYaw) { sp64 = 1; this->unk_236 = this->actor.wallYaw; @@ -339,14 +339,14 @@ void func_809CEA24(EnBw* this, PlayState* play) { func_809CF72C(this); } else { Math_SmoothStepToS(&this->actor.world.rot.y, this->unk_236 + this->unk_238, 1, - this->actor.speedXZ * 1000.0f, 0); + this->actor.speed * 1000.0f, 0); } break; case 0: Math_SmoothStepToF(&this->unk_248, 0.6f, 1.0f, 0.05f, 0.0f); if (sp64 == 0) { Math_SmoothStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 1, - this->actor.speedXZ * 1000.0f, 0); + this->actor.speed * 1000.0f, 0); if ((this->actor.xzDistToPlayer < 90.0f) && (this->actor.yDistToPlayer < 50.0f) && Actor_IsFacingPlayer(&this->actor, 0x1554) && Actor_TestFloorInDirection(&this->actor, play, 71.24802f, this->actor.yawTowardsPlayer)) { @@ -354,7 +354,7 @@ void func_809CEA24(EnBw* this, PlayState* play) { } } else { Math_SmoothStepToS(&this->actor.world.rot.y, this->unk_236 + this->unk_238, 1, - this->actor.speedXZ * 1000.0f, 0); + this->actor.speed * 1000.0f, 0); } if ((this->unk_224 == 0) || (ABS(this->actor.yDistToPlayer) > 60.0f) || (player2->stateFlags1 & (PLAYER_STATE1_13 | PLAYER_STATE1_14))) { @@ -370,10 +370,10 @@ void func_809CEA24(EnBw* this, PlayState* play) { this->unk_238 = -this->unk_238; } Math_SmoothStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer - 0x8000, 1, - this->actor.speedXZ * 1000.0f, 0); + this->actor.speed * 1000.0f, 0); } else { Math_SmoothStepToS(&this->actor.world.rot.y, this->unk_236 + this->unk_238, 1, - this->actor.speedXZ * 1000.0f, 0); + this->actor.speed * 1000.0f, 0); } if (this->unk_224 <= 200) { sp60 = Math_SinS(this->unk_224 * (0x960 - this->unk_224)) * 55.0f; @@ -399,7 +399,7 @@ void func_809CF72C(EnBw* this) { this->unk_250 = 0.6f; this->unk_222 = 20; this->unk_224 = 0xBB8; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLEWALK_AIM); EnBw_SetupAction(this, func_809CF7AC); } @@ -426,7 +426,7 @@ void func_809CF7AC(EnBw* this, PlayState* play) { void func_809CF8F0(EnBw* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gTorchSlugEyestalkFlailAnim, -1.0f); - this->actor.speedXZ = 7.0f; + this->actor.speed = 7.0f; this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; this->unk_220 = 4; this->unk_222 = 1000; @@ -440,14 +440,14 @@ void func_809CF984(EnBw* this, PlayState* play) { Player* player = GET_PLAYER(play); s32 floorPolyType; - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); this->unk_222 += 250; this->actor.scale.x = 0.013f - Math_SinF(this->unk_222 * 0.001f) * 0.0034999999f; this->actor.scale.y = 0.013f + Math_SinF(this->unk_222 * 0.001f) * 0.0245f; this->actor.scale.z = 0.013f - Math_SinF(this->unk_222 * 0.001f) * 0.0034999999f; if (this->collider1.base.atFlags & AT_HIT) { this->collider1.base.atFlags &= ~AT_HIT; - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer; if ((&player->actor == this->collider1.base.at) && !(this->collider1.base.atFlags & AT_BOUNCED)) { Actor_PlaySfx(&player->actor, NA_SE_PL_BODY_HIT); @@ -463,7 +463,7 @@ void func_809CF984(EnBw* this, PlayState* play) { Actor_SpawnFloorDustRing(play, &this->actor, &this->actor.world.pos, 30.0f, 11, 4.0f, 0, 0, false); this->unk_222 = 3000; this->actor.flags &= ~ACTOR_FLAG_24; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); EnBw_SetupAction(this, func_809CE884); } @@ -474,7 +474,7 @@ void func_809CFBA8(EnBw* this) { this->unk_220 = 5; this->unk_222 = 1000; this->unk_260 = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 11.0f; this->unk_25C = Rand_ZeroOne() * 0.25f + 1.0f; this->unk_224 = 0xBB8; @@ -532,7 +532,7 @@ void func_809CFF10(EnBw* this) { this->unk_220 = 6; this->unk_222 = 1000; this->unk_221 = 3; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 11.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLEWALK_REVERSE); this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; @@ -574,7 +574,7 @@ void func_809D00F4(EnBw* this) { this->unk_220 = 0; this->unk_222 = 40; this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_BUBLEWALK_DEAD); EnBw_SetupAction(this, func_809D014C); } @@ -594,7 +594,7 @@ void func_809D014C(EnBw* this, PlayState* play) { void func_809D01CC(EnBw* this) { this->unk_220 = 1; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_25C = (Rand_ZeroOne() * 0.25f) + 1.0f; this->unk_260 = 0.0f; if (this->damageEffect == 0xE) { @@ -637,7 +637,7 @@ void func_809D0268(EnBw* this, PlayState* play) { } void func_809D03CC(EnBw* this) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->damageEffect == 0xE) { this->iceTimer = 32; } diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c index c44aad13d5..ba323790ce 100644 --- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c +++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c @@ -235,7 +235,7 @@ void EnClearTag_Init(Actor* thisx, PlayState* play) { if (this->actor.params == CLEAR_TAG_LASER) { this->state = CLEAR_TAG_STATE_LASER; this->timers[CLEAR_TAG_TIMER_LASER_DEATH] = 70; - this->actor.speedXZ = 35.0f; + this->actor.speed = 35.0f; func_8002D908(&this->actor); for (j = 0; j <= 0; j++) { func_8002D7EC(&this->actor); @@ -243,7 +243,7 @@ void EnClearTag_Init(Actor* thisx, PlayState* play) { this->actor.scale.x = 0.4f; this->actor.scale.y = 0.4f; this->actor.scale.z = 2.0f; - this->actor.speedXZ = 70.0f; + this->actor.speed = 70.0f; this->actor.shape.rot.x = -this->actor.shape.rot.x; func_8002D908(&this->actor); @@ -362,7 +362,7 @@ void EnClearTag_Update(Actor* thisx, PlayState* play2) { } } Actor_SetScale(&this->actor, 0.2f); - this->actor.speedXZ = 7.0f; + this->actor.speed = 7.0f; if (this->timers[CLEAR_TAG_TIMER_ARWING_UPDATE_STATE] == 0) { if (this->timers[CLEAR_TAG_TIMER_ARWING_ENTER_LOCKED_ON] == 0) { @@ -587,7 +587,7 @@ void EnClearTag_Update(Actor* thisx, PlayState* play2) { case CLEAR_TAG_CUTSCENE_MODE_SETUP: // Initializes Arwing cutscene camera data. this->cutsceneMode = CLEAR_TAG_CUTSCENE_MODE_PLAY; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, this->subCamId, CAM_STAT_ACTIVE); @@ -620,7 +620,7 @@ void EnClearTag_Update(Actor* thisx, PlayState* play2) { Play_ReturnToMainCam(play, this->subCamId, 0); // CLEAR_TAG_CUTSCENE_MODE_NONE / SUB_CAM_ID_DONE this->cutsceneMode = this->subCamId = 0; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); } } } diff --git a/src/overlays/actors/ovl_En_Crow/z_en_crow.c b/src/overlays/actors/ovl_En_Crow/z_en_crow.c index 7778d4badb..77b51ec62b 100644 --- a/src/overlays/actors/ovl_En_Crow/z_en_crow.c +++ b/src/overlays/actors/ovl_En_Crow/z_en_crow.c @@ -136,7 +136,7 @@ void EnCrow_SetupFlyIdle(EnCrow* this) { void EnCrow_SetupDiveAttack(EnCrow* this) { this->timer = 300; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; this->skelAnime.playSpeed = 2.0f; this->actionFunc = EnCrow_DiveAttack; } @@ -146,7 +146,7 @@ void EnCrow_SetupDamaged(EnCrow* this, PlayState* play) { f32 scale; Vec3f iceParticlePos; - this->actor.speedXZ *= Math_CosS(this->actor.world.rot.x); + this->actor.speed *= Math_CosS(this->actor.world.rot.x); this->actor.velocity.y = 0.0f; Animation_Change(&this->skelAnime, &gGuayFlyAnim, 0.4f, 0.0f, 0.0f, ANIMMODE_LOOP_INTERP, -3.0f); scale = this->actor.scale.x * 100.0f; @@ -176,7 +176,7 @@ void EnCrow_SetupDamaged(EnCrow* this, PlayState* play) { } if (this->actor.flags & ACTOR_FLAG_15) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } this->collider.base.acFlags &= ~AC_ON; @@ -192,7 +192,7 @@ void EnCrow_SetupDie(EnCrow* this) { void EnCrow_SetupTurnAway(EnCrow* this) { this->timer = 100; - this->actor.speedXZ = 3.5f; + this->actor.speed = 3.5f; this->aimRotX = -0x1000; this->aimRotY = this->actor.yawTowardsPlayer + 0x8000; this->skelAnime.playSpeed = 2.0f; @@ -232,7 +232,7 @@ void EnCrow_FlyIdle(EnCrow* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); skelanimeUpdated = Animation_OnFrame(&this->skelAnime, 0.0f); - this->actor.speedXZ = (Rand_ZeroOne() * 1.5f) + 3.0f; + this->actor.speed = (Rand_ZeroOne() * 1.5f) + 3.0f; if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { this->aimRotY = this->actor.wallYaw; @@ -325,7 +325,7 @@ void EnCrow_DiveAttack(EnCrow* this, PlayState* play) { } void EnCrow_Damaged(EnCrow* this, PlayState* play) { - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.5f); + Math_StepToF(&this->actor.speed, 0.0f, 0.5f); this->actor.colorFilterTimer = 40; if (!(this->actor.flags & ACTOR_FLAG_15)) { diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c index 1534e95c58..aecba25927 100644 --- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c +++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c @@ -312,7 +312,7 @@ s32 EnCs_HandleWalking(EnCs* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->walkAngle, 1, 2500, 0); this->actor.world.rot.y = this->actor.shape.rot.y; - this->actor.speedXZ = this->walkSpeed; + this->actor.speed = this->walkSpeed; Actor_MoveForward(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c index 7aa6d2e115..80005d1f0a 100644 --- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c +++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c @@ -541,7 +541,7 @@ void EnDaiku_EscapeRun(EnDaiku* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, ry, 1, 0xFA0, 0); this->actor.world.rot.y = this->actor.shape.rot.y; - Math_SmoothStepToF(&this->actor.speedXZ, this->runSpeed, 0.6f, dxz, 0.0f); + Math_SmoothStepToF(&this->actor.speed, this->runSpeed, 0.6f, dxz, 0.0f); Actor_MoveForward(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c index 0fba0c7804..2a65b25589 100644 --- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c +++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c @@ -420,12 +420,12 @@ void EnDaikuKakariko_Run(EnDaikuKakariko* this, PlayState* play) { if (angleStepDiff == 0) { this->run = true; } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } if (this->run == true) { - Math_SmoothStepToF(&this->actor.speedXZ, this->runSpeed, 0.8f, runDist, 0.0f); + Math_SmoothStepToF(&this->actor.speed, this->runSpeed, 0.8f, runDist, 0.0f); } Actor_MoveForward(&this->actor); diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c index 3da1bf5ab4..3f30706b99 100644 --- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c +++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c @@ -401,7 +401,7 @@ void EnDekubaba_SetupPrunedSomersault(EnDekubaba* this) { this->actor.velocity.y = 4.0f; this->actor.world.rot.y = this->actor.shape.rot.y + 0x8000; this->collider.base.acFlags &= ~AC_ON; - this->actor.speedXZ = this->size * 3.0f; + this->actor.speed = this->size * 3.0f; this->actor.flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5; this->actionFunc = EnDekubaba_PrunedSomersault; } @@ -941,7 +941,7 @@ void EnDekubaba_PrunedSomersault(EnDekubaba* this, PlayState* play) { f32 deltaZ; f32 deltaY; - Math_StepToF(&this->actor.speedXZ, 0.0f, this->size * 0.1f); + Math_StepToF(&this->actor.speed, 0.0f, this->size * 0.1f); if (this->timer == 0) { Math_ScaledStepToS(&this->actor.shape.rot.x, 0x4800, 0x71C); @@ -954,7 +954,7 @@ void EnDekubaba_PrunedSomersault(EnDekubaba* this, PlayState* play) { if ((this->actor.scale.x > 0.005f) && ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) || (this->actor.bgCheckFlags & BGCHECKFLAG_WALL))) { this->actor.scale.x = this->actor.scale.y = this->actor.scale.z = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); EffectSsHahen_SpawnBurst(play, &this->actor.world.pos, this->size * 3.0f, 0, this->size * 12.0f, this->size * 5.0f, 15, HAHEN_OBJECT_DEFAULT, 10, NULL); diff --git a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c index 9df925450b..5151ef6995 100644 --- a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c +++ b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c @@ -195,7 +195,7 @@ void EnDekunuts_SetupRun(EnDekunuts* this) { void EnDekunuts_SetupGasp(EnDekunuts* this) { Animation_PlayLoop(&this->skelAnime, &gDekuNutsGaspAnim); this->animFlagAndTimer = 3; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->runAwayCount != 0) { this->runAwayCount--; } @@ -211,7 +211,7 @@ void EnDekunuts_SetupBeDamaged(EnDekunuts* this) { } this->collider.base.acFlags &= ~AC_ON; this->actionFunc = EnDekunuts_BeDamaged; - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_NUTS_DAMAGE); Actor_PlaySfx(&this->actor, NA_SE_EN_NUTS_CUTBODY); Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, @@ -222,7 +222,7 @@ void EnDekunuts_SetupBeStunned(EnDekunuts* this) { Animation_MorphToLoop(&this->skelAnime, &gDekuNutsDamageAnim, -3.0f); this->animFlagAndTimer = 5; this->actionFunc = EnDekunuts_BeStunned; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_JR_FREEZE); Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, Animation_GetLastFrame(&gDekuNutsDamageAnim) * this->animFlagAndTimer); @@ -231,7 +231,7 @@ void EnDekunuts_SetupBeStunned(EnDekunuts* this) { void EnDekunuts_SetupDie(EnDekunuts* this) { Animation_PlayOnce(&this->skelAnime, &gDekuNutsDieAnim); this->actionFunc = EnDekunuts_Die; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_NUTS_DEAD); } @@ -358,7 +358,7 @@ void EnDekunuts_Run(EnDekunuts* this, PlayState* play) { this->playWalkSfx = true; } - Math_StepToF(&this->actor.speedXZ, 7.5f, 1.0f); + Math_StepToF(&this->actor.speed, 7.5f, 1.0f); if (Math_SmoothStepToS(&this->actor.world.rot.y, this->runDirection, 1, 0xE38, 0xB6) == 0) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { this->runDirection = Actor_WorldYawTowardPoint(&this->actor, &this->actor.home.pos); @@ -382,7 +382,7 @@ void EnDekunuts_Run(EnDekunuts* this, PlayState* play) { if ((this->runAwayCount == 0) && Actor_WorldDistXZToPoint(&this->actor, &this->actor.home.pos) < 20.0f && fabsf(this->actor.world.pos.y - this->actor.home.pos.y) < 2.0f) { this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnDekunuts_SetupBurrow(this); } else if (this->animFlagAndTimer == 0) { EnDekunuts_SetupGasp(this); @@ -400,7 +400,7 @@ void EnDekunuts_Gasp(EnDekunuts* this, PlayState* play) { } void EnDekunuts_BeDamaged(EnDekunuts* this, PlayState* play) { - Math_StepToF(&this->actor.speedXZ, 0.0f, 1.0f); + Math_StepToF(&this->actor.speed, 0.0f, 1.0f); if (SkelAnime_Update(&this->skelAnime)) { EnDekunuts_SetupDie(this); } diff --git a/src/overlays/actors/ovl_En_Dh/z_en_dh.c b/src/overlays/actors/ovl_En_Dh/z_en_dh.c index 1d7fea769a..4704269577 100644 --- a/src/overlays/actors/ovl_En_Dh/z_en_dh.c +++ b/src/overlays/actors/ovl_En_Dh/z_en_dh.c @@ -189,7 +189,7 @@ void EnDh_SetupWait(EnDh* this) { this->actor.world.pos.x = Rand_CenteredFloat(600.0f) + this->actor.home.pos.x; this->actor.world.pos.z = Rand_CenteredFloat(600.0f) + this->actor.home.pos.z; this->actor.shape.yOffset = -15000.0f; - this->dirtWaveSpread = this->actor.speedXZ = 0.0f; + this->dirtWaveSpread = this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; this->actor.flags |= ACTOR_FLAG_7; this->dirtWavePhase = this->actionState = this->actor.params = ENDH_WAIT_UNDERGROUND; @@ -243,7 +243,7 @@ void EnDh_SetupWalk(EnDh* this) { Animation_GetLastFrame(&object_dh_Anim_003A8C) - 3.0f, ANIMMODE_LOOP, -6.0f); this->curAction = DH_WALK; this->timer = 300; - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; EnDh_SetupAction(this, EnDh_Walk); } @@ -258,7 +258,7 @@ void EnDh_Walk(EnDh* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_DEADHAND_LAUGH); } if (this->actor.xzDistToPlayer <= 100.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (Actor_IsFacingPlayer(&this->actor, 60 * 0x10000 / 360)) { EnDh_SetupAttack(this); } @@ -271,7 +271,7 @@ void EnDh_SetupRetreat(EnDh* this, PlayState* play) { Animation_MorphToLoop(&this->skelAnime, &object_dh_Anim_005880, -4.0f); this->curAction = DH_RETREAT; this->timer = 70; - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; EnDh_SetupAction(this, EnDh_Retreat); } @@ -291,7 +291,7 @@ void EnDh_SetupAttack(EnDh* this) { Animation_MorphToPlayOnce(&this->skelAnime, &object_dh_Anim_004658, -6.0f); this->timer = this->actionState = 0; this->curAction = DH_ATTACK; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnDh_SetupAction(this, EnDh_Attack); } @@ -360,7 +360,7 @@ void EnDh_Attack(EnDh* this, PlayState* play) { void EnDh_SetupBurrow(EnDh* this) { Animation_MorphToPlayOnce(&this->skelAnime, &object_dh_Anim_002148, -6.0f); this->curAction = DH_BURROW; - this->dirtWaveSpread = this->actor.speedXZ = 0.0f; + this->dirtWaveSpread = this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; this->dirtWavePhase = 0; this->actionState = 0; @@ -403,7 +403,7 @@ void EnDh_Burrow(EnDh* this, PlayState* play) { void EnDh_SetupDamage(EnDh* this) { Animation_MorphToPlayOnce(&this->skelAnime, &object_dh_Anim_003D6C, -6.0f); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->actor.speedXZ = -1.0f; + this->actor.speed = -1.0f; } Actor_PlaySfx(&this->actor, NA_SE_EN_DEADHAND_DAMAGE); this->curAction = DH_DAMAGE; @@ -411,8 +411,8 @@ void EnDh_SetupDamage(EnDh* this) { } void EnDh_Damage(EnDh* this, PlayState* play) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 0.15f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 0.15f; } this->actor.world.rot.y = this->actor.yawTowardsPlayer; if (SkelAnime_Update(&this->skelAnime)) { @@ -436,7 +436,7 @@ void EnDh_SetupDeath(EnDh* this) { this->curAction = DH_DEATH; this->timer = 300; this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; func_800F5B58(); this->actor.params = ENDH_DEATH; Actor_PlaySfx(&this->actor, NA_SE_EN_DEADHAND_DEAD); diff --git a/src/overlays/actors/ovl_En_Dha/z_en_dha.c b/src/overlays/actors/ovl_En_Dha/z_en_dha.c index 95c8701993..7406f29cf9 100644 --- a/src/overlays/actors/ovl_En_Dha/z_en_dha.c +++ b/src/overlays/actors/ovl_En_Dha/z_en_dha.c @@ -182,7 +182,7 @@ void EnDha_SetupWait(EnDha* this) { Animation_PlayLoop(&this->skelAnime, &object_dh_Anim_0015B0); this->unk_1C0 = 0; this->actionTimer = ((Rand_ZeroOne() * 10.0f) + 5.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; this->actor.home.rot.z = 1; EnDha_SetupAction(this, EnDha_Wait); diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c index dda38cb599..4371f40da5 100644 --- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c +++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c @@ -119,7 +119,7 @@ void EnDivingGame_SpawnRuppy(EnDivingGame* this, PlayState* play) { rupeePos.y, rupeePos.z, 0, (s16)Rand_CenteredFloat(3500.0f) - 1000, this->rupeesLeftToThrow, 0); if (rupee != NULL) { - rupee->actor.speedXZ = 12.0f; + rupee->actor.speed = 12.0f; rupee->actor.velocity.y = 6.0f; } } diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c index 0033251a00..0047d50faa 100644 --- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c +++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c @@ -160,7 +160,7 @@ void EnDns_Init(Actor* thisx, PlayState* play) { this->maintainCollider = 1; this->standOnGround = 1; this->dropCollectible = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = -1.0f; this->dnsItemEntry = sItemEntries[this->actor.params]; diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c index 31ac2f4bb3..b567242a95 100644 --- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c +++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c @@ -164,7 +164,7 @@ void EnDntJiji_Unburrow(EnDntJiji* this, PlayState* play) { void EnDntJiji_SetupWalk(EnDntJiji* this, PlayState* play) { this->endFrame = (f32)Animation_GetLastFrame(&gDntJijiWalkAnim); Animation_Change(&this->skelAnime, &gDntJijiWalkAnim, 1.0f, 0.0f, this->endFrame, ANIMMODE_LOOP, -10.0f); - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; this->isSolid = true; this->unburrow = true; this->actionFunc = EnDntJiji_Walk; @@ -174,14 +174,14 @@ void EnDntJiji_Walk(EnDntJiji* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 5, 0x3E8, 0); this->actor.world.rot.y = this->actor.shape.rot.y; - Math_ApproachF(&this->actor.speedXZ, 1.0f, 0.2f, 0.4f); + Math_ApproachF(&this->actor.speed, 1.0f, 0.2f, 0.4f); if (this->sfxTimer == 0) { this->sfxTimer = 5; Actor_PlaySfx(&this->actor, NA_SE_EN_NUTS_WALK); } if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { this->actor.velocity.y = 9.0f; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; } if (this->actor.xzDistToPlayer < 100.0f) { if (CUR_UPG_VALUE(UPG_DEKU_STICKS) == 1) { @@ -191,7 +191,7 @@ void EnDntJiji_Walk(EnDntJiji* this, PlayState* play) { } this->actor.textId = 0x104D; Message_StartTextbox(play, this->actor.textId, NULL); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unused = 5; this->actionFunc = EnDntJiji_Talk; } @@ -329,7 +329,7 @@ void EnDntJiji_Hide(EnDntJiji* this, PlayState* play) { void EnDntJiji_SetupReturn(EnDntJiji* this, PlayState* play) { this->endFrame = (f32)Animation_GetLastFrame(&gDntJijiWalkAnim); Animation_Change(&this->skelAnime, &gDntJijiWalkAnim, 1.0f, 0.0f, this->endFrame, ANIMMODE_LOOP, -10.0f); - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; this->isSolid = this->unburrow = true; this->actionFunc = EnDntJiji_Return; } @@ -345,7 +345,7 @@ void EnDntJiji_Return(EnDntJiji* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { this->actor.velocity.y = 9.0f; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; } if (this->sfxTimer == 0) { this->sfxTimer = 3; @@ -361,7 +361,7 @@ void EnDntJiji_Return(EnDntJiji* this, PlayState* play) { SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 8, NA_BGM_ENEMY); } } - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->isSolid = 0; this->actionFunc = EnDntJiji_SetupBurrow; } diff --git a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c index a354ec39ad..ff5c6b23bd 100644 --- a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c +++ b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c @@ -291,7 +291,7 @@ void EnDntNomal_TargetUnburrow(EnDntNomal* this, PlayState* play) { void EnDntNomal_SetupTargetWalk(EnDntNomal* this, PlayState* play) { this->endFrame = (f32)Animation_GetLastFrame(&gHintNutsRunAnim); Animation_Change(&this->skelAnime, &gHintNutsRunAnim, 1.0f, 0.0f, this->endFrame, ANIMMODE_LOOP, -10.0f); - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; this->actor.colChkInfo.mass = 0; this->actionFunc = EnDntNomal_TargetWalk; } @@ -309,7 +309,7 @@ void EnDntNomal_TargetWalk(EnDntNomal* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_NUTS_WALK); } if (this->actor.world.pos.z > -30.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionFunc = EnDntNomal_TargetFacePlayer; } } @@ -384,7 +384,7 @@ void EnDntNomal_TargetReturn(EnDntNomal* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, RAD_TO_BINANG(Math_FAtan2F(dx, dz)), 3, 0x1388, 0); if (fabsf(this->actor.shape.rot.y - RAD_TO_BINANG(Math_FAtan2F(dx, dz))) < 20.0f) { - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; } if (Animation_OnFrame(&this->skelAnime, 0.0f) || Animation_OnFrame(&this->skelAnime, 6.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EN_NUTS_WALK); @@ -394,7 +394,7 @@ void EnDntNomal_TargetReturn(EnDntNomal* this, PlayState* play) { this->endFrame = (f32)Animation_GetLastFrame(&gHintNutsBurrowAnim); Animation_Change(&this->skelAnime, &gHintNutsBurrowAnim, 1.0f, 0.0f, this->endFrame, ANIMMODE_ONCE, -10.0f); this->actor.world.pos.z = -173.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionFunc = EnDntNomal_TargetBurrow; } } @@ -508,7 +508,7 @@ void EnDntNomal_StageUnburrow(EnDntNomal* this, PlayState* play) { void EnDntNomal_SetupStageCelebrate(EnDntNomal* this, PlayState* play) { this->endFrame = (f32)Animation_GetLastFrame(&gDntStageWalkAnim); Animation_Change(&this->skelAnime, &gDntStageWalkAnim, 1.0f, 0.0f, this->endFrame, ANIMMODE_LOOP, -10.0f); - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; this->isSolid = true; this->actionFunc = EnDntNomal_StageCelebrate; } @@ -522,7 +522,7 @@ void EnDntNomal_StageCelebrate(EnDntNomal* this, PlayState* play) { if ((fabsf(dx) < 10.0f) && (fabsf(dz) < 10.0f) && (Message_GetState(&play->msgCtx) != TEXT_STATE_NONE)) { this->action = DNT_ACTION_PRIZE; this->actionFunc = EnDntNomal_SetupStageDance; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; return; } Math_SmoothStepToS(&this->actor.shape.rot.y, RAD_TO_BINANG(Math_FAtan2F(dx, dz)), 1, 0xBB8, 0); @@ -708,7 +708,7 @@ void EnDntNomal_StageAttack(EnDntNomal* this, PlayState* play) { void EnDntNomal_StageSetupReturn(EnDntNomal* this, PlayState* play) { this->endFrame = (f32)Animation_GetLastFrame(&gDntStageWalkAnim); Animation_Change(&this->skelAnime, &gDntStageWalkAnim, 1.5f, 0.0f, this->endFrame, ANIMMODE_LOOP, -10.0f); - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; this->isSolid = false; this->actionFunc = EnDntNomal_StageReturn; } @@ -729,7 +729,7 @@ void EnDntNomal_StageReturn(EnDntNomal* this, PlayState* play) { if ((fabsf(sp2C) < 7.0f) && (fabsf(sp28) < 7.0f)) { this->actor.world.pos.x = this->flowerPos.x; this->actor.world.pos.z = this->flowerPos.z; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionFunc = EnDntNomal_SetupStageHide; } } diff --git a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c index 47b5d39aea..d41f67c1dc 100644 --- a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c +++ b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c @@ -165,7 +165,7 @@ void EnDodojr_SetupCrawlTowardsTarget(EnDodojr* this) { Animation_Change(&this->skelAnime, &object_dodojr_Anim_000860, 1.8f, 0.0f, lastFrame, ANIMMODE_LOOP_INTERP, -10.0f); this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 2.6f; + this->actor.speed = 2.6f; this->actor.gravity = -0.8f; } @@ -173,7 +173,7 @@ void EnDodojr_SetupFlipBounce(EnDodojr* this) { f32 lastFrame = Animation_GetLastFrame(&object_dodojr_Anim_0004A0); Animation_Change(&this->skelAnime, &object_dodojr_Anim_0004A0, 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, -10.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.x = 0.0f; this->actor.velocity.z = 0.0f; this->actor.gravity = -0.8f; @@ -205,7 +205,7 @@ void EnDodojr_SetupDespawn(EnDodojr* this) { this->actor.shape.shadowDraw = NULL; this->actor.flags &= ~ACTOR_FLAG_0; this->actor.home.pos = this->actor.world.pos; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = -0.8f; this->timer = 30; this->dustPos = this->actor.world.pos; @@ -214,7 +214,7 @@ void EnDodojr_SetupDespawn(EnDodojr* this) { void EnDodojr_SetupEatBomb(EnDodojr* this) { Animation_Change(&this->skelAnime, &object_dodojr_Anim_000724, 1.0f, 8.0f, 12.0f, ANIMMODE_ONCE, 0.0f); Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_EAT); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.x = 0.0f; this->actor.velocity.z = 0.0f; this->actor.gravity = -0.8f; @@ -423,7 +423,7 @@ void EnDodojr_EmergeFromGround(EnDodojr* this, PlayState* play) { if (sp2C == 0.0f) { this->actor.shape.shadowDraw = ActorShadow_DrawCircle; this->actor.world.rot.x = this->actor.shape.rot.x; - this->actor.speedXZ = 2.6f; + this->actor.speed = 2.6f; this->actionFunc = EnDodojr_CrawlTowardsTarget; } } diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c index 7cb2f7e189..42a2bb7f0a 100644 --- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c +++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c @@ -357,7 +357,7 @@ void EnDodongo_Destroy(Actor* thisx, PlayState* play) { void EnDodongo_SetupIdle(EnDodongo* this) { Animation_MorphToLoop(&this->skelAnime, &gDodongoWaitAnim, -4.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->timer = Rand_S16Offset(30, 50); this->actionState = DODONGO_IDLE; EnDodongo_SetupAction(this, EnDodongo_Idle); @@ -367,7 +367,7 @@ void EnDodongo_SetupWalk(EnDodongo* this) { f32 frames = Animation_GetLastFrame(&gDodongoWalkAnim); Animation_Change(&this->skelAnime, &gDodongoWalkAnim, 0.0f, 0.0f, frames, ANIMMODE_LOOP, -4.0f); - this->actor.speedXZ = 1.5f; + this->actor.speed = 1.5f; this->timer = Rand_S16Offset(50, 70); this->rightFootStep = true; this->actionState = DODONGO_WALK; @@ -377,14 +377,14 @@ void EnDodongo_SetupWalk(EnDodongo* this) { void EnDodongo_SetupBreatheFire(EnDodongo* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gDodongoBreatheFireAnim, -4.0f); this->actionState = DODONGO_BREATHE_FIRE; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnDodongo_SetupAction(this, EnDodongo_BreatheFire); } void EnDodongo_SetupEndBreatheFire(EnDodongo* this) { Animation_PlayOnce(&this->skelAnime, &gDodongoAfterBreatheFireAnim); this->actionState = DODONGO_END_BREATHE_FIRE; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnDodongo_SetupAction(this, EnDodongo_EndBreatheFire); } @@ -392,14 +392,14 @@ void EnDodongo_SetupSwallowBomb(EnDodongo* this) { Animation_Change(&this->skelAnime, &gDodongoBreatheFireAnim, -1.0f, 35.0f, 0.0f, ANIMMODE_ONCE, -4.0f); this->actionState = DODONGO_SWALLOW_BOMB; this->timer = 25; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnDodongo_SetupAction(this, EnDodongo_SwallowBomb); } void EnDodongo_SetupStunned(EnDodongo* this) { Animation_Change(&this->skelAnime, &gDodongoBreatheFireAnim, 0.0f, 25.0f, 0.0f, ANIMMODE_ONCE, -4.0f); this->actionState = DODONGO_STUNNED; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->damageEffect == 0xF) { this->iceTimer = 36; } @@ -532,10 +532,10 @@ void EnDodongo_Walk(EnDodongo* this, PlayState* play) { yawDiff = ABS(yawDiff); - Math_SmoothStepToF(&this->actor.speedXZ, 1.5f, 0.1f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 1.5f, 0.1f, 1.0f, 0.0f); - playbackSpeed = this->actor.speedXZ * 0.75f; - if (this->actor.speedXZ >= 0.0f) { + playbackSpeed = this->actor.speed * 0.75f; + if (this->actor.speed >= 0.0f) { if (playbackSpeed > 3.0f / 2) { playbackSpeed = 3.0f / 2; } @@ -596,7 +596,7 @@ void EnDodongo_SetupSweepTail(EnDodongo* this) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_J_DAMAGE); this->actionState = DODONGO_SWEEP_TAIL; this->timer = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnDodongo_SetupAction(this, EnDodongo_SweepTail); } @@ -664,7 +664,7 @@ void EnDodongo_SetupDeath(EnDodongo* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_J_DEAD); this->actionState = DODONGO_DEATH; this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnDodongo_SetupAction(this, EnDodongo_Death); } diff --git a/src/overlays/actors/ovl_En_Dog/z_en_dog.c b/src/overlays/actors/ovl_En_Dog/z_en_dog.c index eec7b3552f..56bc85c38e 100644 --- a/src/overlays/actors/ovl_En_Dog/z_en_dog.c +++ b/src/overlays/actors/ovl_En_Dog/z_en_dog.c @@ -277,7 +277,7 @@ void EnDog_Init(Actor* thisx, PlayState* play) { if (!gSaveContext.dogIsLost) { this->nextBehavior = DOG_SIT; this->actionFunc = EnDog_Wait; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; return; } else { Actor_Kill(&this->actor); @@ -304,7 +304,7 @@ void EnDog_Destroy(Actor* thisx, PlayState* play) { void EnDog_FollowPath(EnDog* this, PlayState* play) { s32 behaviors[] = { DOG_SIT, DOG_BOW, DOG_BARK }; s32 unused[] = { 40, 80, 20 }; - f32 speed; + f32 speedXZ; s32 frame; if (EnDog_CanFollow(this, play) == 1) { @@ -313,11 +313,11 @@ void EnDog_FollowPath(EnDog* this, PlayState* play) { if (DECR(this->behaviorTimer) != 0) { if (this->nextBehavior == DOG_WALK) { - speed = 1.0f; + speedXZ = 1.0f; } else { - speed = 4.0f; + speedXZ = 4.0f; } - Math_SmoothStepToF(&this->actor.speedXZ, speed, 0.4f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, speedXZ, 0.4f, 1.0f, 0.0f); EnDog_Orient(this, play); this->actor.shape.rot = this->actor.world.rot; @@ -357,16 +357,16 @@ void EnDog_ChooseMovement(EnDog* this, PlayState* play) { } this->actionFunc = EnDog_FollowPath; } - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.4f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.4f, 1.0f, 0.0f); } void EnDog_FollowPlayer(EnDog* this, PlayState* play) { - f32 speed; + f32 speedXZ; if (gSaveContext.dogParams == 0) { this->nextBehavior = DOG_SIT; this->actionFunc = EnDog_Wait; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; return; } @@ -375,21 +375,21 @@ void EnDog_FollowPlayer(EnDog* this, PlayState* play) { this->nextBehavior = DOG_BOW; } gSaveContext.dogParams = 0; - speed = 0.0f; + speedXZ = 0.0f; } else if (this->actor.xzDistToPlayer > 100.0f) { this->nextBehavior = DOG_RUN; - speed = 4.0f; + speedXZ = 4.0f; } else if (this->actor.xzDistToPlayer < 40.0f) { if (this->nextBehavior != DOG_BOW && this->nextBehavior != DOG_BOW_2) { this->nextBehavior = DOG_BOW; } - speed = 0.0f; + speedXZ = 0.0f; } else { this->nextBehavior = DOG_WALK; - speed = 1.0f; + speedXZ = 1.0f; } - Math_ApproachF(&this->actor.speedXZ, speed, 0.6f, 1.0f); + Math_ApproachF(&this->actor.speed, speedXZ, 0.6f, 1.0f); if (!(this->actor.xzDistToPlayer > 400.0f)) { Math_SmoothStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 10, 1000, 1); @@ -399,7 +399,7 @@ void EnDog_FollowPlayer(EnDog* this, PlayState* play) { void EnDog_RunAway(EnDog* this, PlayState* play) { if (this->actor.xzDistToPlayer < 200.0f) { - Math_ApproachF(&this->actor.speedXZ, 4.0f, 0.6f, 1.0f); + Math_ApproachF(&this->actor.speed, 4.0f, 0.6f, 1.0f); Math_SmoothStepToS(&this->actor.world.rot.y, (this->actor.yawTowardsPlayer ^ 0x8000), 10, 1000, 1); } else { this->actionFunc = EnDog_FaceLink; @@ -416,7 +416,7 @@ void EnDog_FaceLink(EnDog* this, PlayState* play) { if (200.0f <= this->actor.xzDistToPlayer) { this->nextBehavior = DOG_WALK; - Math_ApproachF(&this->actor.speedXZ, 1.0f, 0.6f, 1.0f); + Math_ApproachF(&this->actor.speed, 1.0f, 0.6f, 1.0f); rotTowardLink = this->actor.yawTowardsPlayer; prevRotY = this->actor.world.rot.y; @@ -428,7 +428,7 @@ void EnDog_FaceLink(EnDog* this, PlayState* play) { if (absAngleDiff < 200.0f) { this->nextBehavior = DOG_SIT; this->actionFunc = EnDog_Wait; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } else { this->nextBehavior = DOG_RUN; diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index a1164e11e0..5273e84dd9 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -232,16 +232,16 @@ void func_809FDE9C(EnDu* this) { } } -void func_809FDFC0(CsCmdActorAction* csAction, Vec3f* dst) { - dst->x = csAction->startPos.x; - dst->y = csAction->startPos.y; - dst->z = csAction->startPos.z; +void func_809FDFC0(CsCmdActorCue* cue, Vec3f* dst) { + dst->x = cue->startPos.x; + dst->y = cue->startPos.y; + dst->z = cue->startPos.z; } -void func_809FE000(CsCmdActorAction* csAction, Vec3f* dst) { - dst->x = csAction->endPos.x; - dst->y = csAction->endPos.y; - dst->z = csAction->endPos.z; +void func_809FE000(CsCmdActorCue* cue, Vec3f* dst) { + dst->x = cue->endPos.x; + dst->y = cue->endPos.y; + dst->z = cue->endPos.z; } void func_809FE040(EnDu* this) { @@ -295,7 +295,7 @@ void EnDu_Init(Actor* thisx, PlayState* play) { this->interactInfo.talkState = NPC_TALK_STATE_IDLE; if (gSaveContext.cutsceneIndex >= 0xFFF0) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGoronCityDarunia01Cs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGoronCityDarunia01Cs); gSaveContext.cutsceneTrigger = 1; EnDu_SetupAction(this, func_809FE890); } else if (play->sceneId == SCENE_FIRE_TEMPLE) { @@ -321,7 +321,7 @@ void func_809FE3C0(EnDu* this, PlayState* play) { Player* player = GET_PLAYER(play); if (player->stateFlags2 & PLAYER_STATE2_24) { - func_8010BD88(play, OCARINA_ACTION_CHECK_SARIA); + Message_StartOcarinaSunsSongDisabled(play, OCARINA_ACTION_CHECK_SARIA); player->stateFlags2 |= PLAYER_STATE2_25; player->unk_6A8 = &this->actor; EnDu_SetupAction(this, func_809FE4A4); @@ -343,7 +343,7 @@ void func_809FE4A4(EnDu* this, PlayState* play) { play->msgCtx.ocarinaMode = OCARINA_MODE_00; EnDu_SetupAction(this, func_809FE3C0); } else if (play->msgCtx.ocarinaMode >= OCARINA_MODE_06) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaWrongCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaWrongCs); gSaveContext.cutsceneTrigger = 1; this->unk_1E8 = 1; EnDu_SetupAction(this, func_809FE890); @@ -351,7 +351,7 @@ void func_809FE4A4(EnDu* this, PlayState* play) { } else if (play->msgCtx.ocarinaMode == OCARINA_MODE_03) { Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaCorrectCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaCorrectCs); gSaveContext.cutsceneTrigger = 1; this->unk_1E8 = 0; EnDu_SetupAction(this, func_809FE890); @@ -420,37 +420,44 @@ void func_809FE890(EnDu* this, PlayState* play) { Vec3f startPos; Vec3f endPos; Vec3f velocity = { 0.0f, 0.0f, 0.0f }; - CsCmdActorAction* csAction; + CsCmdActorCue* cue; if (play->csCtx.state == CS_STATE_IDLE) { func_8002DF54(play, &this->actor, PLAYER_CSMODE_1); EnDu_SetupAction(this, func_809FEB08); return; } - csAction = play->csCtx.npcActions[2]; - if (csAction != NULL) { - func_809FDFC0(csAction, &startPos); - func_809FE000(csAction, &endPos); + cue = play->csCtx.actorCues[2]; + + if (cue != NULL) { + func_809FDFC0(cue, &startPos); + func_809FE000(cue, &endPos); + if (this->unk_1EA == 0) { - func_809FDFC0(csAction, &startPos); + func_809FDFC0(cue, &startPos); this->actor.world.pos = startPos; } - if (this->unk_1EA != csAction->action) { - if (csAction->action == 1) { + + if (this->unk_1EA != cue->id) { + if (cue->id == 1) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENDU_ANIM_1); } - if (csAction->action == 7 || csAction->action == 8) { + + if (cue->id == 7 || cue->id == 8) { this->unk_1E6 = 0; Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENDU_ANIM_7); } - this->unk_1EA = csAction->action; + + this->unk_1EA = cue->id; + if (this->unk_1EA == 7) { this->blinkTimer = 11; this->unk_1EC = 2; this->unk_1ED = 2; this->unk_1EE = 1; } + if (this->unk_1EA == 8) { this->blinkTimer = 11; this->unk_1EC = 3; @@ -458,26 +465,32 @@ void func_809FE890(EnDu* this, PlayState* play) { this->unk_1EE = 0; } } + if (this->unk_1EA == 7) { func_809FE040(this); } + if (this->unk_1EA == 8) { func_809FE104(this); } - this->actor.shape.rot.x = csAction->urot.x; - this->actor.shape.rot.y = csAction->urot.y; - this->actor.shape.rot.z = csAction->urot.z; + + this->actor.shape.rot.x = cue->rot.x; + this->actor.shape.rot.y = cue->rot.y; + this->actor.shape.rot.z = cue->rot.z; + this->actor.velocity = velocity; - if (play->csCtx.frames < csAction->endFrame) { - frame = csAction->endFrame - csAction->startFrame; + if (play->csCtx.curFrame < cue->endFrame) { + frame = cue->endFrame - cue->startFrame; this->actor.velocity.x = (endPos.x - startPos.x) / frame; this->actor.velocity.y = (endPos.y - startPos.y) / frame; this->actor.velocity.y += this->actor.gravity; + if (this->actor.velocity.y < this->actor.minVelocityY) { this->actor.velocity.y = this->actor.minVelocityY; } + this->actor.velocity.z = (endPos.z - startPos.z) / frame; } } diff --git a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c index dd95bfcf36..3aa1dfbf0e 100644 --- a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c +++ b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c @@ -185,7 +185,7 @@ void EnEiyer_SetupAppearFromGround(EnEiyer* this) { this->actor.world.pos.y = this->actor.home.pos.y - 40.0f; this->actor.world.pos.z = this->actor.home.pos.z; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->actor.params != 0xA) { if (this->actor.params == 0) { @@ -208,7 +208,7 @@ void EnEiyer_SetupAppearFromGround(EnEiyer* this) { void EnEiyer_SetupUnderground(EnEiyer* this) { if (this->actor.params == 0xA) { - this->actor.speedXZ = -0.5f; + this->actor.speed = -0.5f; this->actionFunc = EnEiyer_WanderUnderground; } else { this->actionFunc = EnEiyer_CircleUnderground; @@ -226,7 +226,7 @@ void EnEiyer_SetupInactive(EnEiyer* this) { } void EnEiyer_SetupAmbush(EnEiyer* this, PlayState* play) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_PlayOnce(&this->skelanime, &gStingerBackflipAnim); this->collider.info.bumper.dmgFlags = DMG_DEFAULT; this->basePos = this->actor.world.pos; @@ -280,7 +280,7 @@ void EnEiyer_SetupHurt(EnEiyer* this) { this->timer = 40; this->actor.gravity = 0.0f; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA, 40); this->collider.base.acFlags &= ~AC_ON; this->actionFunc = EnEiyer_Hurt; @@ -291,10 +291,10 @@ void EnEiyer_SetupDie(EnEiyer* this) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA, 40); if (this->collider.info.bumper.dmgFlags != (DMG_BOOMERANG | DMG_EXPLOSIVE | DMG_DEKU_NUT)) { - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; Animation_MorphToLoop(&this->skelanime, &gStingerHitAnim, -3.0f); } else { - this->actor.speedXZ -= 6.0f; + this->actor.speed -= 6.0f; } this->collider.info.bumper.dmgFlags = DMG_DEFAULT; @@ -305,7 +305,7 @@ void EnEiyer_SetupDie(EnEiyer* this) { void EnEiyer_SetupDead(EnEiyer* this) { this->actor.colorFilterParams |= 0x2000; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actionFunc = EnEiyer_Dead; } @@ -313,7 +313,7 @@ void EnEiyer_SetupDead(EnEiyer* this) { void EnEiyer_SetupStunned(EnEiyer* this) { Animation_Change(&this->skelanime, &gStingerPopOutAnim, 2.0f, 0.0f, 0.0f, 0, -8.0f); this->timer = 80; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = -1.0f; this->collider.dim.height = sColCylInit.dim.height + 8; @@ -395,7 +395,7 @@ void EnEiyer_Ambush(EnEiyer* this, PlayState* play) { this->actor.world.pos.z = (Math_CosS(this->actor.shape.rot.y) * xzOffset) + this->basePos.z; } else { Math_StepToF(&this->actor.world.pos.y, this->actor.home.pos.y + 80.0f, 0.5f); - this->actor.speedXZ = 0.8f; + this->actor.speed = 0.8f; } if (animFinished) { @@ -419,13 +419,13 @@ void EnEiyer_Glide(EnEiyer* this, PlayState* play) { } curFrame = this->skelanime.curFrame; - Math_ApproachF(&this->basePos.y, this->actor.floorHeight + 80.0f + 5.0f, 0.3f, this->actor.speedXZ); + Math_ApproachF(&this->basePos.y, this->actor.floorHeight + 80.0f + 5.0f, 0.3f, this->actor.speed); this->actor.world.pos.y = this->basePos.y - cosf((curFrame - 5.0f) * (M_PI / 40)) * 5.0f; if (curFrame <= 45.0f) { - Math_StepToF(&this->actor.speedXZ, 1.0f, 0.03f); + Math_StepToF(&this->actor.speed, 1.0f, 0.03f); } else { - Math_StepToF(&this->actor.speedXZ, 1.5f, 0.03f); + Math_StepToF(&this->actor.speed, 1.5f, 0.03f); } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { @@ -467,14 +467,14 @@ void EnEiyer_StartAttack(EnEiyer* this, PlayState* play) { } this->actor.world.rot.x = -this->actor.shape.rot.x; - Math_StepToF(&this->actor.speedXZ, 5.0f, 0.3f); + Math_StepToF(&this->actor.speed, 5.0f, 0.3f); Math_ApproachS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 2, 0x71C); func_8002F974(&this->actor, NA_SE_EN_EIER_FLY - SFX_FLAG); } void EnEiyer_DiveAttack(EnEiyer* this, PlayState* play) { SkelAnime_Update(&this->skelanime); - this->actor.speedXZ *= 1.1f; + this->actor.speed *= 1.1f; if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { EnEiyer_SetupLand(this); @@ -490,7 +490,7 @@ void EnEiyer_DiveAttack(EnEiyer* this, PlayState* play) { void EnEiyer_Land(EnEiyer* this, PlayState* play) { SkelAnime_Update(&this->skelanime); Math_ScaledStepToS(&this->actor.world.rot.x, -0x4000, 0x450); - Math_StepToF(&this->actor.speedXZ, 7.0f, 1.0f); + Math_StepToF(&this->actor.speed, 7.0f, 1.0f); if (this->timer == -1) { if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { @@ -521,7 +521,7 @@ void EnEiyer_Hurt(EnEiyer* this, PlayState* play) { this->timer--; } - Math_ApproachF(&this->basePos.y, this->actor.floorHeight + 80.0f + 5.0f, 0.5f, this->actor.speedXZ); + Math_ApproachF(&this->basePos.y, this->actor.floorHeight + 80.0f + 5.0f, 0.5f, this->actor.speed); this->actor.world.pos.y = this->basePos.y - 5.0f; if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { @@ -546,7 +546,7 @@ void EnEiyer_Hurt(EnEiyer* this, PlayState* play) { void EnEiyer_Die(EnEiyer* this, PlayState* play) { SkelAnime_Update(&this->skelanime); - if (this->actor.speedXZ > 0.0f) { + if (this->actor.speed > 0.0f) { Math_ScaledStepToS(&this->actor.shape.rot.x, -0x4000, 0x400); } else { Math_ScaledStepToS(&this->actor.shape.rot.x, 0x4000, 0x400); diff --git a/src/overlays/actors/ovl_En_Elf/z_en_elf.c b/src/overlays/actors/ovl_En_Elf/z_en_elf.c index 5787d5d18d..72ed3cd8f6 100644 --- a/src/overlays/actors/ovl_En_Elf/z_en_elf.c +++ b/src/overlays/actors/ovl_En_Elf/z_en_elf.c @@ -52,7 +52,7 @@ void func_80A01FE0(EnElf* this, PlayState* play); void func_80A04414(EnElf* this, PlayState* play); void func_80A0461C(EnElf* this, PlayState* play); void EnElf_SpawnSparkles(EnElf* this, PlayState* play, s32 sparkleLife); -void EnElf_GetCutsceneNextPos(Vec3f* vec, PlayState* play, s32 action); +void EnElf_GetCuePos(Vec3f* dest, PlayState* play, s32 cueChannel); ActorInit En_Elf_InitVars = { ACTOR_EN_ELF, @@ -257,7 +257,7 @@ void func_80A0214C(EnElf* this, PlayState* play) { this->unk_2AC = 0x400; this->unk_2B8 = 2.0f; this->func_2C8 = func_80A020A4; - this->actor.speedXZ = 1.5f; + this->actor.speed = 1.5f; this->unk_2C0 = (s16)Rand_ZeroFloat(8.0f) + 4; } else { this->unk_2C0 = 10; @@ -542,7 +542,7 @@ void func_80A03018(EnElf* this, PlayState* play) { s16 targetYaw; Vec3f* unk_28C = &this->unk_28C; - Math_SmoothStepToF(&this->actor.speedXZ, this->unk_2B8, 0.2f, 0.5f, 0.01f); + Math_SmoothStepToF(&this->actor.speed, this->unk_2B8, 0.2f, 0.5f, 0.01f); switch (this->unk_2A8) { case 0: @@ -584,7 +584,7 @@ void func_80A03148(EnElf* this, Vec3f* arg1, f32 arg2, f32 arg3, f32 arg4) { xzVelocity = sqrtf(SQ(xVelTarget) + SQ(zVelTarget)); - this->actor.speedXZ = clampedXZ = CLAMP(xzVelocity, arg2, arg3); + this->actor.speed = clampedXZ = CLAMP(xzVelocity, arg2, arg3); if ((xzVelocity != clampedXZ) && (xzVelocity != 0.0f)) { xzVelocity = clampedXZ / xzVelocity; @@ -846,10 +846,10 @@ void func_80A03CF8(EnElf* this, PlayState* play) { xScale = 0.0f; - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[8] != NULL)) { - EnElf_GetCutsceneNextPos(&nextPos, play, 8); + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[8] != NULL)) { + EnElf_GetCuePos(&nextPos, play, 8); - if (play->csCtx.npcActions[8]->action == 5) { + if (play->csCtx.actorCues[8]->id == 5) { if (1) {} EnElf_SpawnSparkles(this, play, 16); } @@ -865,7 +865,7 @@ void func_80A03CF8(EnElf* this, PlayState* play) { if ((play->sceneId == SCENE_LINKS_HOUSE) && (gSaveContext.sceneLayer == 4)) { // play dash sound effect as Navi enters Links house in the intro if (1) {} - if (play->csCtx.frames == 55) { + if (play->csCtx.curFrame == 55) { Actor_PlaySfx(&this->actor, NA_SE_EV_FAIRY_DASH); } @@ -941,7 +941,7 @@ void func_80A03CF8(EnElf* this, PlayState* play) { if (arrowPointedActor != NULL) { func_80A03148(this, &nextPos, 0.0f, 20.0f, 0.2f); - if (this->actor.speedXZ >= 5.0f) { + if (this->actor.speed >= 5.0f) { EnElf_SpawnSparkles(this, play, 16); } } else { @@ -1059,8 +1059,8 @@ void func_80A0461C(EnElf* this, PlayState* play) { Player* player = GET_PLAYER(play); if (play->csCtx.state != CS_STATE_IDLE) { - if (play->csCtx.npcActions[8] != NULL) { - switch (play->csCtx.npcActions[8]->action) { + if (play->csCtx.actorCues[8] != NULL) { + switch (play->csCtx.actorCues[8]->id) { case 4: temp = 9; break; @@ -1240,7 +1240,7 @@ void func_80A04DE4(EnElf* this, PlayState* play) { func_80A03148(this, &headCopy, 0, 20.0f, 0.2f); - if (this->actor.speedXZ >= 5.0f) { + if (this->actor.speed >= 5.0f) { EnElf_SpawnSparkles(this, play, 16); } @@ -1544,23 +1544,23 @@ void EnElf_Draw(Actor* thisx, PlayState* play) { } } -void EnElf_GetCutsceneNextPos(Vec3f* vec, PlayState* play, s32 action) { +void EnElf_GetCuePos(Vec3f* dest, PlayState* play, s32 cueChannel) { Vec3f startPos; Vec3f endPos; - CsCmdActorAction* npcAction = play->csCtx.npcActions[action]; + CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel]; f32 lerp; - startPos.x = npcAction->startPos.x; - startPos.y = npcAction->startPos.y; - startPos.z = npcAction->startPos.z; + startPos.x = cue->startPos.x; + startPos.y = cue->startPos.y; + startPos.z = cue->startPos.z; - endPos.x = npcAction->endPos.x; - endPos.y = npcAction->endPos.y; - endPos.z = npcAction->endPos.z; + endPos.x = cue->endPos.x; + endPos.y = cue->endPos.y; + endPos.z = cue->endPos.z; - lerp = Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, play->csCtx.frames); + lerp = Environment_LerpWeight(cue->endFrame, cue->startFrame, play->csCtx.curFrame); - vec->x = ((endPos.x - startPos.x) * lerp) + startPos.x; - vec->y = ((endPos.y - startPos.y) * lerp) + startPos.y; - vec->z = ((endPos.z - startPos.z) * lerp) + startPos.z; + dest->x = ((endPos.x - startPos.x) * lerp) + startPos.x; + dest->y = ((endPos.y - startPos.y) * lerp) + startPos.y; + dest->z = ((endPos.z - startPos.z) * lerp) + startPos.z; } diff --git a/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c b/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c index 335d9590fd..7435dd4567 100644 --- a/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c +++ b/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c @@ -215,7 +215,7 @@ void EnExRuppy_DropIntoWater(EnExRuppy* this, PlayState* play) { if ((divingGame != NULL) && (divingGame->actor.update != NULL) && ((divingGame->unk_296 == 0) || (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) || (this->timer == 0))) { this->invisible = true; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.x = this->actor.velocity.y = this->actor.velocity.z = 0.0f; this->actor.gravity = 0.0f; func_80078914(&this->actor.projectedPos, NA_SE_EV_BOMB_DROP_WATER); diff --git a/src/overlays/actors/ovl_En_Fd/z_en_fd.c b/src/overlays/actors/ovl_En_Fd/z_en_fd.c index 0d6ca8020c..badc148135 100644 --- a/src/overlays/actors/ovl_En_Fd/z_en_fd.c +++ b/src/overlays/actors/ovl_En_Fd/z_en_fd.c @@ -306,7 +306,7 @@ s32 EnFd_ColliderCheck(EnFd* this, PlayState* play) { } this->attackTimer = 30; Actor_PlaySfx(&player->actor, NA_SE_PL_BODY_HIT); - func_8002F71C(play, &this->actor, this->actor.speedXZ + 2.0f, this->actor.yawTowardsPlayer, 6.0f); + func_8002F71C(play, &this->actor, this->actor.speed + 2.0f, this->actor.yawTowardsPlayer, 6.0f); } return false; } @@ -442,7 +442,7 @@ void EnFd_Fade(EnFd* this, PlayState* play) { this->invincibilityTimer = 0; this->spinTimer = 0; this->actionFunc = EnFd_WaitForCore; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } } @@ -489,7 +489,7 @@ void EnFd_SpinAndGrow(EnFd* this, PlayState* play) { this->actor.scale.y = 0.01f; this->actor.world.rot.y ^= 0x8000; this->actor.flags |= ACTOR_FLAG_0; - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENFD_ANIM_1); this->actionFunc = EnFd_JumpToGround; } else { @@ -502,7 +502,7 @@ void EnFd_SpinAndGrow(EnFd* this, PlayState* play) { void EnFd_JumpToGround(EnFd* this, PlayState* play) { if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && !(this->actor.velocity.y > 0.0f)) { this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENFD_ANIM_2); this->actionFunc = EnFd_Land; @@ -587,7 +587,7 @@ void EnFd_Run(EnFd* this, PlayState* play) { if (this->invincibilityTimer == 0) { this->actor.world.rot.y ^= 0x8000; this->actor.velocity.y = 6.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENFD_ANIM_1); this->actionFunc = EnFd_JumpToGround; return; @@ -624,7 +624,7 @@ void EnFd_Run(EnFd* this, PlayState* play) { if (this->skelAnime.curFrame == 6.0f || this->skelAnime.curFrame == 13.0f || this->skelAnime.curFrame == 28.0f) { Actor_PlaySfx(&this->actor, NA_SE_EN_FLAME_KICK); } - Math_SmoothStepToF(&this->actor.speedXZ, 8.0f, 0.1f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 8.0f, 0.1f, 1.0f, 0.0f); } /** diff --git a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c index e34a11500d..7b4da578d6 100644 --- a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c +++ b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c @@ -88,9 +88,9 @@ void EnFdFire_UpdatePos(EnFdFire* this, Vec3f* targetPos) { f32 zDiff = targetPos->z - this->actor.world.pos.z; dist = sqrtf(SQ(xDiff) + SQ(yDiff) + SQ(zDiff)); - if (fabsf(dist) > fabsf(this->actor.speedXZ)) { - this->actor.velocity.x = (xDiff / dist) * this->actor.speedXZ; - this->actor.velocity.z = (zDiff / dist) * this->actor.speedXZ; + if (fabsf(dist) > fabsf(this->actor.speed)) { + this->actor.velocity.x = (xDiff / dist) * this->actor.speed; + this->actor.velocity.z = (zDiff / dist) * this->actor.speed; } else { this->actor.velocity.x = 0.0f; this->actor.velocity.z = 0.0f; @@ -130,7 +130,7 @@ void EnFdFire_Init(Actor* thisx, PlayState* play) { CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInit); this->actor.flags &= ~ACTOR_FLAG_0; this->actor.gravity = -0.6f; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actor.velocity.y = 12.0f; this->spawnRadius = Math_Vec3f_DistXYZ(&this->actor.world.pos, &player->actor.world.pos); this->scale = 3.0f; @@ -153,7 +153,7 @@ void func_80A0E70C(EnFdFire* this, PlayState* play) { EnFdFire_UpdatePos(this, &targetPos); if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && (!(this->actor.velocity.y > 0.0f))) { this->actor.velocity = velocity; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; if (this->actor.params & 0x8000) { this->deathTimer = 200; @@ -188,16 +188,16 @@ void EnFdFire_DanceTowardsPlayer(EnFdFire* this, PlayState* play) { this->actionFunc = EnFdFire_Disappear; } else { Math_SmoothStepToS(&this->actor.world.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &pos), 8, 0xFA0, 1); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.4f, 1.0f, 0.0f); - if (this->actor.speedXZ < 0.1f) { - this->actor.speedXZ = 5.0f; + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.4f, 1.0f, 0.0f); + if (this->actor.speed < 0.1f) { + this->actor.speed = 5.0f; } func_8002D868(&this->actor); } } void EnFdFire_Disappear(EnFdFire* this, PlayState* play) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.6f, 9.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.6f, 9.0f, 0.0f); func_8002D868(&this->actor); Math_SmoothStepToF(&this->scale, 0.0f, 0.3f, 0.1f, 0.0f); this->actor.shape.shadowScale = 20.0f; diff --git a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c index 42f226f103..bac81e0b4d 100644 --- a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c +++ b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c @@ -104,7 +104,7 @@ void EnFhgFire_Init(Actor* thisx, PlayState* play) { if (this->actor.params == FHGFIRE_LIGHTNING_SHOCK) { this->actor.draw = NULL; EnFhgFire_SetUpdate(this, EnFhgFire_LightningShock); - this->actor.speedXZ = 30.0f; + this->actor.speed = 30.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_FANTOM_SPARK); } else if (this->actor.params == FHGFIRE_LIGHTNING_BURST) { EnFhgFire_SetUpdate(this, EnFhgFire_LightningBurst); @@ -141,7 +141,7 @@ void EnFhgFire_Init(Actor* thisx, PlayState* play) { f32 dzL; f32 dxzL; - this->actor.speedXZ = (this->actor.world.rot.x == 0) ? 8.0f : 3.0f; + this->actor.speed = (this->actor.world.rot.x == 0) ? 8.0f : 3.0f; EnFhgFire_SetUpdate(this, EnFhgFire_EnergyBall); this->work[FHGFIRE_TIMER] = 70; @@ -501,7 +501,7 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) { if (bossGnd->flyMode == GND_FLY_NEUTRAL) { angleModX = Rand_CenteredFloat(0x2000); angleModY = Rand_CenteredFloat(0x2000); - this->actor.speedXZ = 15.0f; + this->actor.speed = 15.0f; } else { angleModX = 0; angleModY = 0; @@ -511,10 +511,10 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) { } if (!canBottleReflect2 && (player->meleeWeaponAnimation >= PLAYER_MWA_SPIN_ATTACK_1H)) { - this->actor.speedXZ = 20.0f; + this->actor.speed = 20.0f; this->work[FHGFIRE_RETURN_COUNT] = 4; } else { - this->actor.speedXZ += 1.0f; + this->actor.speed += 1.0f; } } this->actor.world.rot.y = RAD_TO_BINANG(Math_FAtan2F(dxPG, dzPG)) + angleModY; @@ -539,7 +539,7 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) { case FHGFIRE_LIGHT_BLUE: if ((bossGnd->flyMode == GND_FLY_RETURN) && (this->work[FHGFIRE_RETURN_COUNT] < 100)) { this->actor.world.rot.y = RAD_TO_BINANG(Math_FAtan2F(dxPG, dzPG)); - if ((sqrtf(SQ(dxPG) + SQ(dzPG)) < (150.0f + (this->actor.speedXZ * 8.0f)))) { + if ((sqrtf(SQ(dxPG) + SQ(dzPG)) < (150.0f + (this->actor.speed * 8.0f)))) { this->work[FHGFIRE_FIRE_MODE] = FHGFIRE_LIGHT_REFLECT; bossGnd->returnSuccess = true; this->work[FHGFIRE_TIMER] = 8; @@ -582,7 +582,7 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) { this->actor.world.rot.x = RAD_TO_BINANG(Math_FAtan2F(dyL, dxzL)); this->work[FHGFIRE_FIRE_MODE] = FHGFIRE_LIGHT_GREEN; Actor_PlaySfx(&this->actor, NA_SE_IT_SWORD_REFLECT_MG); - this->actor.speedXZ += 2.0f; + this->actor.speed += 2.0f; } break; } @@ -631,8 +631,8 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) { } Lights_PointNoGlowSetInfo(&this->lightInfo, (s16)this->actor.world.pos.x, (s16)this->actor.world.pos.y, (s16)this->actor.world.pos.z, 255, 255, 255, 200); - if (this->actor.speedXZ > 20.0f) { - this->actor.speedXZ = 20.0f; + if (this->actor.speed > 20.0f) { + this->actor.speed = 20.0f; } Actor_PlaySfx(&this->actor, NA_SE_EN_FANTOM_FIRE - SFX_FLAG); // "Why ah ah ah ah" diff --git a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c index 411240a750..6a64528898 100644 --- a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c +++ b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c @@ -118,7 +118,7 @@ void EnFireRock_Init(Actor* thisx, PlayState* play) { break; case FIRE_ROCK_BROKEN_PIECE1: this->actor.velocity.y = Rand_ZeroFloat(3.0f) + 4.0f; - this->actor.speedXZ = Rand_ZeroFloat(3.0f) + 3.0f; + this->actor.speed = Rand_ZeroFloat(3.0f) + 3.0f; this->scale = (Rand_ZeroFloat(1.0f) / 100.0f) + 0.02f; Actor_SetScale(&this->actor, this->scale); this->actor.gravity = -1.5f; @@ -130,7 +130,7 @@ void EnFireRock_Init(Actor* thisx, PlayState* play) { break; case FIRE_ROCK_BROKEN_PIECE2: this->actor.velocity.y = Rand_ZeroFloat(3.0f) + 4.0f; - this->actor.speedXZ = Rand_ZeroFloat(3.0f) + 2.0f; + this->actor.speed = Rand_ZeroFloat(3.0f) + 2.0f; this->scale = (Rand_ZeroFloat(1.0f) / 500.0f) + 0.01f; Actor_SetScale(&this->actor, this->scale); this->actor.gravity = -1.2f; @@ -352,7 +352,7 @@ void EnFireRock_Update(Actor* thisx, PlayState* play) { this->collider.base.atFlags &= ~AT_BOUNCED; Actor_PlaySfx(thisx, NA_SE_EV_BRIDGE_OPEN_STOP); thisx->velocity.y = 0.0f; - thisx->speedXZ = 0.0f; + thisx->speed = 0.0f; this->actionFunc = EnFireRock_SpawnMoreBrokenPieces; // "☆☆☆☆☆ Shield Defense Lv1 ☆☆☆☆☆" osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ シールド防御 Lv1 ☆☆☆☆☆ \n" VT_RST); diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c index 629730fc09..546d563a25 100644 --- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c +++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c @@ -201,7 +201,7 @@ void EnFirefly_Destroy(Actor* thisx, PlayState* play) { void EnFirefly_SetupFlyIdle(EnFirefly* this) { this->timer = Rand_S16Offset(70, 100); - this->actor.speedXZ = (Rand_ZeroOne() * 1.5f) + 1.5f; + this->actor.speed = (Rand_ZeroOne() * 1.5f) + 1.5f; Math_ScaledStepToS(&this->actor.shape.rot.y, Actor_WorldYawTowardPoint(&this->actor, &this->actor.home.pos), 0x300); this->targetPitch = ((this->maxAltitude < this->actor.world.pos.y) ? 0xC00 : -0xC00) + 0x1554; this->skelAnime.playSpeed = 1.0f; @@ -220,7 +220,7 @@ void EnFirefly_SetupFall(EnFirefly* this) { void EnFirefly_SetupDie(EnFirefly* this) { this->timer = 15; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionFunc = EnFirefly_Die; } @@ -228,7 +228,7 @@ void EnFirefly_SetupRebound(EnFirefly* this) { this->actor.world.rot.x = 0x7000; this->timer = 18; this->skelAnime.playSpeed = 1.0f; - this->actor.speedXZ = 2.5f; + this->actor.speed = 2.5f; this->actionFunc = EnFirefly_Rebound; } @@ -262,7 +262,7 @@ void EnFirefly_SetupFrozenFall(EnFirefly* this, PlayState* play) { this->actor.flags |= ACTOR_FLAG_4; this->auraType = KEESE_AURA_NONE; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_OPA, 255); Actor_PlaySfx(&this->actor, NA_SE_EN_FFLY_DEAD); @@ -279,7 +279,7 @@ void EnFirefly_SetupFrozenFall(EnFirefly* this, PlayState* play) { void EnFirefly_SetupPerch(EnFirefly* this) { this->timer = 1; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionFunc = EnFirefly_Perch; } @@ -287,7 +287,7 @@ void EnFirefly_SetupDisturbDiveAttack(EnFirefly* this) { this->skelAnime.playSpeed = 3.0f; this->actor.shape.rot.x = 0x1554; this->actor.shape.rot.y = this->actor.yawTowardsPlayer; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; this->timer = 50; this->actionFunc = EnFirefly_DisturbDiveAttack; } @@ -311,7 +311,7 @@ s32 EnFirefly_ReturnToPerch(EnFirefly* this, PlayState* play) { distFromHome *= 0.05f; if (distFromHome < 1.0f) { - this->actor.speedXZ *= distFromHome; + this->actor.speed *= distFromHome; } Math_ScaledStepToS(&this->actor.shape.rot.y, Actor_WorldYawTowardPoint(&this->actor, &this->actor.home.pos), @@ -373,7 +373,7 @@ void EnFirefly_FlyIdle(EnFirefly* this, PlayState* play) { this->timer--; } skelanimeUpdated = Animation_OnFrame(&this->skelAnime, 0.0f); - this->actor.speedXZ = (Rand_ZeroOne() * 1.5f) + 1.5f; + this->actor.speed = (Rand_ZeroOne() * 1.5f) + 1.5f; if (this->onFire || (this->actor.params == KEESE_ICE_FLY) || ((EnFirefly_ReturnToPerch(this, play) == 0) && (EnFirefly_SeekTorch(this, play) == 0))) { if (skelanimeUpdated) { @@ -421,7 +421,7 @@ void EnFirefly_Fall(EnFirefly* this, PlayState* play) { } this->actor.colorFilterTimer = 40; SkelAnime_Update(&this->skelAnime); - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.5f); + Math_StepToF(&this->actor.speed, 0.0f, 0.5f); if (this->actor.flags & ACTOR_FLAG_15) { this->actor.colorFilterTimer = 40; } else { @@ -457,7 +457,7 @@ void EnFirefly_DiveAttack(EnFirefly* this, PlayState* play) { if (this->timer != 0) { this->timer--; } - Math_StepToF(&this->actor.speedXZ, 4.0f, 0.5f); + Math_StepToF(&this->actor.speed, 4.0f, 0.5f); if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.wallYaw, 2, 0xC00, 0x300); Math_ScaledStepToS(&this->actor.shape.rot.x, this->targetPitch, 0x100); @@ -497,7 +497,7 @@ void EnFirefly_Rebound(EnFirefly* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); Math_ScaledStepToS(&this->actor.shape.rot.x, 0, 0x100); Math_StepToF(&this->actor.velocity.y, 0.0f, 0.4f); - if (Math_StepToF(&this->actor.speedXZ, 0.0f, 0.15f)) { + if (Math_StepToF(&this->actor.speed, 0.0f, 0.15f)) { if (this->timer != 0) { this->timer--; } @@ -518,7 +518,7 @@ void EnFirefly_FlyAway(EnFirefly* this, PlayState* play) { EnFirefly_SetupFlyIdle(this); return; } - Math_StepToF(&this->actor.speedXZ, 3.0f, 0.3f); + Math_StepToF(&this->actor.speed, 3.0f, 0.3f); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->targetPitch = 0x954; } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_CEILING) || (this->maxAltitude < this->actor.world.pos.y)) { @@ -537,7 +537,7 @@ void EnFirefly_FlyAway(EnFirefly* this, PlayState* play) { void EnFirefly_Stunned(EnFirefly* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.5f); + Math_StepToF(&this->actor.speed, 0.0f, 0.5f); Math_ScaledStepToS(&this->actor.shape.rot.x, 0x1554, 0x100); if (this->timer != 0) { this->timer--; diff --git a/src/overlays/actors/ovl_En_Fish/z_en_fish.c b/src/overlays/actors/ovl_En_Fish/z_en_fish.c index f6267b58db..2e9da9ba75 100644 --- a/src/overlays/actors/ovl_En_Fish/z_en_fish.c +++ b/src/overlays/actors/ovl_En_Fish/z_en_fish.c @@ -200,8 +200,8 @@ void EnFish_Respawning_SetupSlowDown(EnFish* this) { void EnFish_Respawning_SlowDown(EnFish* this, PlayState* play) { EnFish_SetYOffset(this); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.05f, 0.3f, 0.0f); - this->skelAnime.playSpeed = CLAMP_MAX(this->actor.speedXZ * 1.4f + 0.8f, 2.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.05f, 0.3f, 0.0f); + this->skelAnime.playSpeed = CLAMP_MAX(this->actor.speed * 1.4f + 0.8f, 2.0f); SkelAnime_Update(&this->skelAnime); this->actor.shape.rot.y = this->actor.world.rot.y; @@ -229,7 +229,7 @@ void EnFish_Respawning_FollowChild(EnFish* this, PlayState* play) { s32 pad; EnFish_SetYOffset(this); - Math_SmoothStepToF(&this->actor.speedXZ, 1.8f, 0.08f, 0.4f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 1.8f, 0.08f, 0.4f, 0.0f); if ((EnFish_XZDistanceSquared(&this->actor.world.pos, &this->actor.home.pos) > SQ(80.0f)) || (this->timer < 4)) { Math_StepToAngleS(&this->actor.world.rot.y, Math_Vec3f_Yaw(&this->actor.world.pos, &this->actor.home.pos), @@ -240,7 +240,7 @@ void EnFish_Respawning_FollowChild(EnFish* this, PlayState* play) { } this->actor.shape.rot.y = this->actor.world.rot.y; - this->skelAnime.playSpeed = CLAMP_MAX(this->actor.speedXZ * 1.5f + 0.8f, 4.0f); + this->skelAnime.playSpeed = CLAMP_MAX(this->actor.speed * 1.5f + 0.8f, 4.0f); SkelAnime_Update(&this->skelAnime); if (this->timer <= 0) { @@ -270,7 +270,7 @@ void EnFish_Respawning_FleePlayer(EnFish* this, PlayState* play) { EnFish_SetYOffset(this); playerClose = EnFish_CheckXZDistanceToPlayer(this, play); - Math_SmoothStepToF(&this->actor.speedXZ, 4.2f, 0.08f, 1.4f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 4.2f, 0.08f, 1.4f, 0.0f); if (EnFish_XZDistanceSquared(&this->actor.world.pos, &this->actor.home.pos) > SQ(160.0f)) { yaw = Math_Vec3f_Yaw(&this->actor.world.pos, &this->actor.home.pos); @@ -296,7 +296,7 @@ void EnFish_Respawning_FleePlayer(EnFish* this, PlayState* play) { } this->actor.shape.rot.y = this->actor.world.rot.y; - this->skelAnime.playSpeed = CLAMP_MAX(this->actor.speedXZ * 1.5f + 0.8f, 4.0f); + this->skelAnime.playSpeed = CLAMP_MAX(this->actor.speed * 1.5f + 0.8f, 4.0f); SkelAnime_Update(&this->skelAnime); @@ -325,7 +325,7 @@ void EnFish_Respawning_ApproachPlayer(EnFish* this, PlayState* play) { s16 temp_a0_2; EnFish_SetYOffset(this); - Math_SmoothStepToF(&this->actor.speedXZ, 1.8f, 0.1f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 1.8f, 0.1f, 0.5f, 0.0f); if (EnFish_XZDistanceSquared(&this->actor.world.pos, &this->actor.home.pos) > SQ(80.0f)) { yaw = Math_Vec3f_Yaw(&this->actor.world.pos, &this->actor.home.pos); @@ -346,7 +346,7 @@ void EnFish_Respawning_ApproachPlayer(EnFish* this, PlayState* play) { } this->actor.shape.rot.y = this->actor.world.rot.y; - this->skelAnime.playSpeed = CLAMP_MAX((this->actor.speedXZ * 1.5f) + 0.8f, 4.0f); + this->skelAnime.playSpeed = CLAMP_MAX((this->actor.speed * 1.5f) + 0.8f, 4.0f); SkelAnime_Update(&this->skelAnime); @@ -368,7 +368,7 @@ void EnFish_Dropped_SetupFall(EnFish* this) { } void EnFish_Dropped_Fall(EnFish* this, PlayState* play) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.1f, 0.1f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.1f, 0.1f, 0.0f); Math_StepToAngleS(&this->actor.world.rot.x, 0x4000, 100); Math_StepToAngleS(&this->actor.world.rot.z, -0x4000, 100); this->actor.shape.rot.x = this->actor.world.rot.x; @@ -435,7 +435,7 @@ void EnFish_Dropped_FlopOnGround(EnFish* this, PlayState* play) { s16 frames = play->state.frames; s16 targetXRot; - Math_SmoothStepToF(&this->actor.speedXZ, Rand_ZeroOne() * 0.2f, 0.1f, 0.1f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, Rand_ZeroOne() * 0.2f, 0.1f, 0.1f, 0.0f); targetXRot = (s16)((((frames >> 5) & 2) | ((frames >> 2) & 1)) << 0xB) * 0.3f; @@ -485,12 +485,12 @@ void EnFish_Dropped_SetupSwimAway(EnFish* this) { void EnFish_Dropped_SwimAway(EnFish* this, PlayState* play) { s32 pad; - Math_SmoothStepToF(&this->actor.speedXZ, 2.8f, 0.1f, 0.4f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 2.8f, 0.1f, 0.4f, 0.0f); // If touching wall or not in water, turn back and slow down for one frame. if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || !(this->actor.bgCheckFlags & BGCHECKFLAG_WATER)) { this->actor.home.rot.y = Math_Vec3f_Yaw(&this->actor.world.pos, &this->actor.home.pos); - this->actor.speedXZ *= 0.5f; + this->actor.speed *= 0.5f; } Math_StepToAngleS(&this->actor.world.rot.x, 0, 1500); @@ -511,7 +511,7 @@ void EnFish_Dropped_SwimAway(EnFish* this, PlayState* play) { Actor_SetScale(&this->actor, this->actor.scale.x * 0.982f); } - this->skelAnime.playSpeed = CLAMP_MAX((this->actor.speedXZ * 1.5f) + 1.0f, 4.0f); + this->skelAnime.playSpeed = CLAMP_MAX((this->actor.speed * 1.5f) + 1.0f, 4.0f); SkelAnime_Update(&this->skelAnime); if (this->timer <= 0) { @@ -555,7 +555,7 @@ void EnFish_Unique_SwimIdle(EnFish* this, PlayState* play) { } EnFish_SetYOffset(this); - Math_SmoothStepToF(&this->actor.speedXZ, speed[0], speed[1], speed[2], 0.0f); + Math_SmoothStepToF(&this->actor.speed, speed[0], speed[1], speed[2], 0.0f); extraPlaySpeed = 0.0f; @@ -569,7 +569,7 @@ void EnFish_Unique_SwimIdle(EnFish* this, PlayState* play) { } this->actor.shape.rot.y = this->actor.world.rot.y; - playSpeed = (this->actor.speedXZ * 1.2f) + 0.2f + extraPlaySpeed; + playSpeed = (this->actor.speed * 1.2f) + 0.2f + extraPlaySpeed; this->skelAnime.playSpeed = CLAMP(playSpeed, 1.5f, 0.5); SkelAnime_Update(&this->skelAnime); @@ -618,13 +618,13 @@ void EnFish_Cutscene_WiggleFlyingThroughAir(EnFish* this, PlayState* play) { void EnFish_UpdateCutscene(EnFish* this, PlayState* play) { s32 pad; s32 pad2; - CsCmdActorAction* csAction = play->csCtx.npcActions[1]; + CsCmdActorCue* cue = play->csCtx.actorCues[1]; Vec3f startPos; Vec3f endPos; - f32 progress; + f32 lerp; s32 bgId; - if (csAction == NULL) { + if (cue == NULL) { // "Warning : DEMO ended without dousa (action) 3 termination being called" osSyncPrintf("Warning : dousa 3 消滅 が呼ばれずにデモが終了した(%s %d)(arg_data 0x%04x)\n", "../z_en_sakana.c", 1169, this->actor.params); @@ -636,7 +636,7 @@ void EnFish_UpdateCutscene(EnFish* this, PlayState* play) { this->slowPhase += 0x111; this->fastPhase += 0x500; - switch (csAction->action) { + switch (cue->id) { case 1: EnFish_Cutscene_FlopOnGround(this, play); break; @@ -655,18 +655,19 @@ void EnFish_UpdateCutscene(EnFish* this, PlayState* play) { break; } - startPos.x = csAction->startPos.x; - startPos.y = csAction->startPos.y; - startPos.z = csAction->startPos.z; - endPos.x = csAction->endPos.x; - endPos.y = csAction->endPos.y; - endPos.z = csAction->endPos.z; + startPos.x = cue->startPos.x; + startPos.y = cue->startPos.y; + startPos.z = cue->startPos.z; - progress = Environment_LerpWeight(csAction->endFrame, csAction->startFrame, play->csCtx.frames); + endPos.x = cue->endPos.x; + endPos.y = cue->endPos.y; + endPos.z = cue->endPos.z; - this->actor.world.pos.x = (endPos.x - startPos.x) * progress + startPos.x; - this->actor.world.pos.y = (endPos.y - startPos.y) * progress + startPos.y + D_80A17014; - this->actor.world.pos.z = (endPos.z - startPos.z) * progress + startPos.z; + lerp = Environment_LerpWeight(cue->endFrame, cue->startFrame, play->csCtx.curFrame); + + this->actor.world.pos.x = (endPos.x - startPos.x) * lerp + startPos.x; + this->actor.world.pos.y = (endPos.y - startPos.y) * lerp + startPos.y + D_80A17014; + this->actor.world.pos.z = (endPos.z - startPos.z) * lerp + startPos.z; this->actor.floorHeight = BgCheck_EntityRaycastDown4(&play->colCtx, &this->actor.floorPoly, &bgId, &this->actor, &this->actor.world.pos); @@ -742,7 +743,7 @@ void EnFish_Update(Actor* thisx, PlayState* play) { EnFish* this = (EnFish*)thisx; if ((D_80A17010 == NULL) && (this->actor.params == FISH_DROPPED) && (play->csCtx.state != 0) && - (play->csCtx.npcActions[1] != NULL)) { + (play->csCtx.actorCues[1] != NULL)) { EnFish_SetCutsceneData(this); } diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c index 27325f9fde..b37c612b3c 100644 --- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c +++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c @@ -195,7 +195,7 @@ void EnFloormas_MakeVulnerable(EnFloormas* this) { void EnFloormas_SetupBigDecideAction(EnFloormas* this) { Animation_PlayOnce(&this->skelAnime, &gWallmasterWaitAnim); this->actionFunc = EnFloormas_BigDecideAction; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnFloormas_SetupStand(EnFloormas* this) { @@ -212,26 +212,26 @@ void EnFloormas_SetupBigWalk(EnFloormas* this) { this->actionTimer = Rand_S16Offset(2, 4); this->actionFunc = EnFloormas_BigWalk; - this->actor.speedXZ = 1.5f; + this->actor.speed = 1.5f; } void EnFloormas_SetupBigStopWalk(EnFloormas* this) { Animation_PlayOnce(&this->skelAnime, &gWallmasterStopWalkAnim); this->actionFunc = EnFloormas_BigStopWalk; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnFloormas_SetupRun(EnFloormas* this) { this->actionTimer = 0; this->actionFunc = EnFloormas_Run; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->skelAnime.playSpeed = 3.0f; } void EnFloormas_SetupTurn(EnFloormas* this) { s16 rotDelta = this->actionTarget - this->actor.shape.rot.y; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (rotDelta > 0) { Animation_MorphToPlayOnce(&this->skelAnime, &gFloormasterTurnAnim, -3.0f); } else { @@ -251,7 +251,7 @@ void EnFloormas_SetupTurn(EnFloormas* this) { void EnFloormas_SetupHover(EnFloormas* this, PlayState* play) { Animation_Change(&this->skelAnime, &gWallmasterHoverAnim, 3.0f, 0, Animation_GetLastFrame(&gWallmasterHoverAnim), ANIMMODE_ONCE, -3.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = 0.0f; EnFloormas_MakeInvulnerable(this); Actor_SpawnFloorDustRing(play, &this->actor, &this->actor.world.pos, 15.0f, 6, 20.0f, 300, 100, true); @@ -263,12 +263,12 @@ void EnFloormas_SetupCharge(EnFloormas* this) { this->actionTimer = 25; this->actor.gravity = -0.15f; this->actionFunc = EnFloormas_Charge; - this->actor.speedXZ = 0.5f; + this->actor.speed = 0.5f; } void EnFloormas_SetupLand(EnFloormas* this) { Animation_Change(&this->skelAnime, &gWallmasterJumpAnim, 1.0f, 41.0f, 42.0f, ANIMMODE_ONCE, 5.0f); - if ((this->actor.speedXZ < 0.0f) || (this->actionFunc != EnFloormas_Charge)) { + if ((this->actor.speed < 0.0f) || (this->actionFunc != EnFloormas_Charge)) { this->actionTimer = 30; } else { this->actionTimer = 45; @@ -294,7 +294,7 @@ void EnFloormas_SetupSplit(EnFloormas* this) { this->collider.dim.radius = sCylinderInit.dim.radius * 0.6f; this->collider.dim.height = sCylinderInit.dim.height * 0.6f; this->collider.info.bumperFlags &= ~BUMP_HOOKABLE; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; this->actor.velocity.y = 7.0f; // using div creates a signed check. this->actor.colChkInfo.health = sColChkInfoInit.health >> 1; @@ -304,7 +304,7 @@ void EnFloormas_SetupSplit(EnFloormas* this) { void EnFloormas_SetupSmWalk(EnFloormas* this) { Animation_PlayLoopSetSpeed(&this->skelAnime, &gWallmasterWalkAnim, 4.5f); this->actionFunc = EnFloormas_SmWalk; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; } void EnFloormas_SetupSmDecideAction(EnFloormas* this) { @@ -312,7 +312,7 @@ void EnFloormas_SetupSmDecideAction(EnFloormas* this) { Animation_PlayLoopSetSpeed(&this->skelAnime, &gWallmasterWalkAnim, 4.5f); } this->actionFunc = EnFloormas_SmDecideAction; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; } void EnFloormas_SetupSmShrink(EnFloormas* this, PlayState* play) { @@ -320,7 +320,7 @@ void EnFloormas_SetupSmShrink(EnFloormas* this, PlayState* play) { static Vec3f accel = { 0.0f, 0.0f, 0.0f }; Vec3f pos; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; pos.x = this->actor.world.pos.x; pos.y = this->actor.world.pos.y + 15.0f; @@ -332,13 +332,13 @@ void EnFloormas_SetupSmShrink(EnFloormas* this, PlayState* play) { void EnFloormas_SetupSlaveJumpAtMaster(EnFloormas* this) { Animation_Change(&this->skelAnime, &gWallmasterJumpAnim, 2.0f, 0.0f, 41.0f, ANIMMODE_ONCE, 0.0f); this->actionFunc = EnFloormas_SmSlaveJumpAtMaster; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnFloormas_SetupJumpAtLink(EnFloormas* this) { Animation_Change(&this->skelAnime, &gWallmasterJumpAnim, 2.0f, 0.0f, 41.0f, ANIMMODE_ONCE, 0.0f); this->actionFunc = EnFloormas_JumpAtLink; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnFloormas_SetupGrabLink(EnFloormas* this, Player* player) { @@ -347,7 +347,7 @@ void EnFloormas_SetupGrabLink(EnFloormas* this, Player* player) { Animation_Change(&this->skelAnime, &gWallmasterJumpAnim, 1.0f, 36.0f, 45.0f, ANIMMODE_ONCE, -3.0f); this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; EnFloormas_MakeInvulnerable(this); if (!LINK_IS_ADULT) { @@ -397,20 +397,20 @@ void EnFloormas_SetupTakeDamage(EnFloormas* this) { } Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 20); this->actionFunc = EnFloormas_TakeDamage; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actor.velocity.y = 5.5f; } void EnFloormas_SetupRecover(EnFloormas* this) { Animation_PlayOnce(&this->skelAnime, &gWallmasterRecoverFromDamageAnim); - this->actor.velocity.y = this->actor.speedXZ = 0.0f; + this->actor.velocity.y = this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; this->actionFunc = EnFloormas_Recover; } void EnFloormas_SetupFreeze(EnFloormas* this) { Animation_Change(&this->skelAnime, &gWallmasterJumpAnim, 1.5f, 0, 20.0f, ANIMMODE_ONCE, -3.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->actor.colChkInfo.damageEffect == 4) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_GRAY, 255, COLORFILTER_BUFFLAG_OPA, 80); } else { @@ -591,7 +591,7 @@ void EnFloormas_Charge(EnFloormas* this, PlayState* play) { this->actionTimer--; } - Math_StepToF(&this->actor.speedXZ, 15.0f, SQ(this->actor.speedXZ) * (1.0f / 3.0f)); + Math_StepToF(&this->actor.speed, 15.0f, SQ(this->actor.speed) * (1.0f / 3.0f)); Math_ScaledStepToS(&this->actor.shape.rot.x, -0x1680, 0x140); distFromGround = this->actor.world.pos.y - this->actor.floorHeight; @@ -628,14 +628,14 @@ void EnFloormas_Land(EnFloormas* this, PlayState* play) { } } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (isOnGround) { - Math_StepToF(&this->actor.speedXZ, 0.0f, 2.0f); + Math_StepToF(&this->actor.speed, 0.0f, 2.0f); } - if ((this->actor.speedXZ > 0.0f) && ((this->actor.world.pos.y - this->actor.floorHeight) < 12.0f)) { + if ((this->actor.speed > 0.0f) && ((this->actor.world.pos.y - this->actor.floorHeight) < 12.0f)) { EnFloormas_Slide(this, play); } @@ -667,7 +667,7 @@ void EnFloormas_Split(EnFloormas* this, PlayState* play) { this->smActionTimer = 50; EnFloormas_SetupStand(this); } - Math_StepToF(&this->actor.speedXZ, 0.0f, 1.0f); + Math_StepToF(&this->actor.speed, 0.0f, 1.0f); } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { @@ -745,11 +745,11 @@ void EnFloormas_JumpAtLink(EnFloormas* this, PlayState* play) { if (this->skelAnime.curFrame < 20.0f) { Math_ApproachS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 2, 0xE38); } else if (Animation_OnFrame(&this->skelAnime, 20.0f)) { - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actor.velocity.y = 7.0f; } else if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { this->actionTimer = 0x32; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_FLOORMASTER_SM_LAND); EnFloormas_SetupLand(this); } else if ((this->actor.yDistToPlayer < -10.0f) && (this->collider.base.ocFlags1 & OC1_HIT) && @@ -806,7 +806,7 @@ void EnFloormas_GrabLink(EnFloormas* this, PlayState* play) { this->actor.shape.rot.x = 0; this->actor.velocity.y = 6.0f; this->actor.flags |= ACTOR_FLAG_0; - this->actor.speedXZ = -3.0f; + this->actor.speed = -3.0f; EnFloormas_SetupLand(this); } else { // Damage link every 20 frames @@ -839,7 +839,7 @@ void EnFloormas_SmSlaveJumpAtMaster(EnFloormas* this, PlayState* play) { return; } if (Animation_OnFrame(&this->skelAnime, 20.0f)) { - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actor.velocity.y = 7.0f; } else if (this->skelAnime.curFrame < 20.0f) { Math_ApproachS(&this->actor.shape.rot.y, Actor_WorldYawTowardActor(&this->actor, primFloormas), 2, 0xE38); @@ -849,14 +849,14 @@ void EnFloormas_SmSlaveJumpAtMaster(EnFloormas* this, PlayState* play) { EnFloormas_SetupSmWait(this); this->collider.base.ocFlags1 |= OC1_ON; } else if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_FLOORMASTER_SM_LAND); EnFloormas_SetupLand(this); } if (fabsf(this->actor.world.pos.x - primFloormas->world.pos.x) < 5.0f && fabsf(this->actor.world.pos.z - primFloormas->world.pos.z) < 5.0f) { - Math_StepToF(&this->actor.speedXZ, 0, 2.0f); + Math_StepToF(&this->actor.speed, 0, 2.0f); } } @@ -950,7 +950,7 @@ void EnFloormas_TakeDamage(EnFloormas* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); } } - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.2f); + Math_StepToF(&this->actor.speed, 0.0f, 0.2f); } void EnFloormas_Recover(EnFloormas* this, PlayState* play) { @@ -1025,12 +1025,12 @@ void EnFloormas_Update(Actor* thisx, PlayState* play) { if (this->actionFunc != EnFloormas_SmWait) { if (this->collider.base.atFlags & AT_HIT) { this->collider.base.atFlags &= ~AT_HIT; - this->actor.speedXZ *= -0.5f; + this->actor.speed *= -0.5f; - if (-5.0f < this->actor.speedXZ) { - this->actor.speedXZ = -5.0f; + if (-5.0f < this->actor.speed) { + this->actor.speed = -5.0f; } else { - this->actor.speedXZ = this->actor.speedXZ; + this->actor.speed = this->actor.speed; } this->actor.velocity.y = 5.0f; diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index a191431350..3945e7f168 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -224,7 +224,7 @@ void EnFr_OrientUnderwater(EnFr* this) { this->actor.world.pos.y = sLogSpotToFromWater[this->actor.params].yDist + this->posLogSpot.y; this->actor.world.rot.y = this->actor.shape.rot.y = RAD_TO_BINANG(sLogSpotToFromWater[this->actor.params].yaw) + 0x8000; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; } @@ -418,7 +418,7 @@ void EnFr_JumpingOutOfWater(EnFr* this, PlayState* play) { this->skelAnime.playSpeed = 0.0f; } else if (this->skelAnime.curFrame == 3.0f) { this->actor.gravity = -10.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 47.0f; } @@ -501,7 +501,7 @@ void EnFr_JumpingBackIntoWater(EnFr* this, PlayState* play) { if (this->skelAnime.curFrame == 6.0f) { this->skelAnime.playSpeed = 0.0f; } else if (this->skelAnime.curFrame == 3.0f) { - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; this->actor.gravity = -10.0f; this->actor.velocity.y = 25.0f; } @@ -668,7 +668,7 @@ void func_80A1BE98(EnFr* this, PlayState* play) { } } - func_8010BD58(play, OCARINA_ACTION_CHECK_NOWARP); + Message_StartOcarina(play, OCARINA_ACTION_CHECK_NOWARP); this->actionFunc = EnFr_ListeningToOcarinaNotes; } @@ -822,7 +822,7 @@ void EnFr_SetupFrogSong(EnFr* this, PlayState* play) { } else { this->frogSongTimer = 40; this->ocarinaNoteIndex = 0; - func_8010BD58(play, OCARINA_ACTION_FROGS); + Message_StartOcarina(play, OCARINA_ACTION_FROGS); this->ocarinaNote = EnFr_GetNextNoteFrogSong(this->ocarinaNoteIndex); EnFr_CheckOcarinaInputFrogSong(this->ocarinaNote); this->actionFunc = EnFr_ContinueFrogSong; diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c index 1652897b48..8670093c88 100644 --- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c +++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c @@ -172,7 +172,7 @@ void func_80A1DBD4(EnFu* this, PlayState* play) { func_80078884(NA_SE_SY_CORRECT_CHIME); this->actionFunc = func_80A1DB60; this->actor.flags &= ~ACTOR_FLAG_16; - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gSongOfStormsCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gSongOfStormsCs); gSaveContext.cutsceneTrigger = 1; Item_Give(play, ITEM_SONG_STORMS); play->msgCtx.ocarinaMode = OCARINA_MODE_00; @@ -191,7 +191,7 @@ void EnFu_WaitForPlayback(EnFu* this, PlayState* play) { player->stateFlags2 |= PLAYER_STATE2_23; // if dialog state is 7, player has played back the song if (Message_GetState(&play->msgCtx) == TEXT_STATE_SONG_DEMO_DONE) { - func_8010BD58(play, OCARINA_ACTION_PLAYBACK_STORMS); + Message_StartOcarina(play, OCARINA_ACTION_PLAYBACK_STORMS); this->actionFunc = func_80A1DBD4; } } @@ -205,7 +205,7 @@ void EnFu_TeachSong(EnFu* this, PlayState* play) { this->behaviorFlags &= ~FU_WAIT; // Ocarina is set to harp here but is immediately overwritten to the grind organ in the message system AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_HARP); - func_8010BD58(play, OCARINA_ACTION_TEACH_STORMS); + Message_StartOcarina(play, OCARINA_ACTION_TEACH_STORMS); this->actionFunc = EnFu_WaitForPlayback; } } diff --git a/src/overlays/actors/ovl_En_Fw/z_en_fw.c b/src/overlays/actors/ovl_En_Fw/z_en_fw.c index 67d4971e35..75c02acd50 100644 --- a/src/overlays/actors/ovl_En_Fw/z_en_fw.c +++ b/src/overlays/actors/ovl_En_Fw/z_en_fw.c @@ -239,7 +239,7 @@ void EnFw_Run(EnFw* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_FLAME_MAN_DAMAGE); this->explosionTimer = 6; } - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->explosionTimer != 0) { @@ -273,7 +273,7 @@ void EnFw_Run(EnFw* this, PlayState* play) { DECR(this->damageTimer); if ((200.0f - this->runRadius) < 0.9f) { if (DECR(this->returnToParentTimer) == 0) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionFunc = EnFw_TurnToParentInitPos; return; } @@ -283,7 +283,7 @@ void EnFw_Run(EnFw* this, PlayState* play) { Math_SmoothStepToF(&this->runRadius, 200.0f, 0.3f, 100.0f, 0.0f); if (this->turnAround) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.1f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.1f, 1.0f, 0.0f); tmpAngle = (s16)(this->actor.world.rot.y ^ 0x8000); facingDir = this->actor.shape.rot.y; tmpAngle = Math_SmoothStepToF(&facingDir, tmpAngle, 0.1f, 10000.0f, 0.0f); @@ -312,7 +312,7 @@ void EnFw_Run(EnFw* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_FLAME_MAN_SLIDE); this->slideSfxTimer = 4; } - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.1f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.1f, 1.0f, 0.0f); this->skelAnime.playSpeed = 0.0f; EnFw_SpawnDust(this, 8, 0.16f, 0.2f, 3, 8.0f, 20.0f, ((Rand_ZeroOne() - 0.5f) * 0.2f) + 0.3f); this->slideTimer--; @@ -321,7 +321,7 @@ void EnFw_Run(EnFw* this, PlayState* play) { this->runDirection = -this->runDirection; } } else { - Math_SmoothStepToF(&this->actor.speedXZ, 6.0f, 0.1f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 6.0f, 0.1f, 1.0f, 0.0f); curFrame = this->skelAnime.curFrame; if (curFrame == 1 || curFrame == 4) { Actor_PlaySfx(&this->actor, NA_SE_EN_FLAME_MAN_RUN); diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c index 81baca7b94..4abe2425c6 100644 --- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c +++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c @@ -181,7 +181,7 @@ void EnFz_Init(Actor* thisx, PlayState* play) { this->isFreezing = false; this->isActive = true; this->isDespawning = false; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = 0.0f; this->actor.velocity.y = 0.0f; this->posOrigin.y = this->actor.world.pos.y; @@ -326,14 +326,14 @@ void EnFz_ApplyDamage(EnFz* this, PlayState* play) { this->actor.bgCheckFlags &= ~BGCHECKFLAG_WALL; this->isMoving = false; this->speedXZ = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->isFreezing) { if ((this->actor.params < 0) && (this->collider1.base.atFlags & AT_HIT)) { this->isMoving = false; this->collider1.base.acFlags &= ~AC_HIT; - this->actor.speedXZ = this->speedXZ = 0.0f; + this->actor.speed = this->speedXZ = 0.0f; this->timer = 10; EnFz_SetupDisappear(this); } else if (this->collider2.base.acFlags & AC_BOUNCED) { @@ -479,7 +479,7 @@ void EnFz_SetupAimForFreeze(EnFz* this) { this->timer = 40; this->actionFunc = EnFz_AimForFreeze; this->speedXZ = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnFz_AimForFreeze(EnFz* this, PlayState* play) { @@ -556,7 +556,7 @@ void EnFz_SetupDespawn(EnFz* this, PlayState* play) { this->speedXZ = 0.0f; this->actor.gravity = 0.0f; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_PROP); Item_DropCollectibleRandom(play, &this->actor, &this->actor.world.pos, 0x60); this->actionFunc = EnFz_Despawn; @@ -574,7 +574,7 @@ void EnFz_SetupMelt(EnFz* this) { this->isDespawning = true; this->actor.flags &= ~ACTOR_FLAG_0; this->actionFunc = EnFz_Melt; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->speedXZ = 0.0f; } @@ -697,7 +697,7 @@ void EnFz_Update(Actor* thisx, PlayState* play) { } } - Math_StepToF(&this->actor.speedXZ, this->speedXZ, 0.2f); + Math_StepToF(&this->actor.speed, this->speedXZ, 0.2f); Actor_MoveForward(&this->actor); if (this->updateBgInfo) { diff --git a/src/overlays/actors/ovl_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c index 0ef5fee51f..934ed70d28 100644 --- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c +++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c @@ -177,7 +177,7 @@ void EnGb_Init(Actor* thisx, PlayState* play) { ActorShape_Init(&this->dyna.actor.shape, 0.0f, ActorShadow_DrawCircle, 35.0f); Actor_SetScale(&this->dyna.actor, 0.01f); this->dyna.actor.colChkInfo.mass = 0xFF; - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->dyna.actor.velocity.y = 0.0f; this->dyna.actor.gravity = -1.0f; this->actionTimer = (s16)Rand_ZeroFloat(100.0f) + 100; diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c index 9d214f7196..b75c31dba5 100644 --- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c +++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c @@ -257,7 +257,7 @@ void EnGe2_CaptureCharge(EnGe2* this, PlayState* play) { this->actor.shape.rot.y = this->actor.world.rot.y; if (this->actor.xzDistToPlayer < 50.0f) { EnGe2_ChangeAction(this, GE2_ACTION_CAPTURECLOSE); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->timer > 0) { @@ -285,7 +285,7 @@ void EnGe2_CaptureTurn(EnGe2* this, PlayState* play) { if (this->actor.world.rot.y == this->actor.yawTowardsPlayer) { EnGe2_ChangeAction(this, GE2_ACTION_CAPTURECHARGE); this->timer = 50; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; } } @@ -311,7 +311,7 @@ void EnGe2_KnockedOut(EnGe2* this, PlayState* play) { void EnGe2_TurnPlayerSpotted(EnGe2* this, PlayState* play) { s32 playerSpotted; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->stateFlags & GE2_STATE_TALKED) { this->stateFlags &= ~GE2_STATE_TALKED; @@ -347,7 +347,7 @@ void EnGe2_TurnPlayerSpotted(EnGe2* this, PlayState* play) { void EnGe2_AboutTurn(EnGe2* this, PlayState* play) { s32 playerSpotted; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; playerSpotted = Ge2_DetectPlayerInAction(play, this); if (playerSpotted != 0) { @@ -370,7 +370,7 @@ void EnGe2_Walk(EnGe2* this, PlayState* play) { playerSpotted = Ge2_DetectPlayerInAction(play, this); if (playerSpotted != 0) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnGe2_ChangeAction(this, GE2_ACTION_TURNPLAYERSPOTTED); this->timer = 100; this->playerSpottedParam = playerSpotted; @@ -379,10 +379,10 @@ void EnGe2_Walk(EnGe2* this, PlayState* play) { this->walkTimer = 0; this->walkDirection += 0x8000; EnGe2_ChangeAction(this, GE2_ACTION_ABOUTTURN); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } else { this->walkTimer++; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; } } @@ -478,7 +478,7 @@ void EnGe2_ForceTalk(EnGe2* this, PlayState* play) { void EnGe2_SetupCapturePlayer(EnGe2* this, PlayState* play) { this->stateFlags |= GE2_STATE_CAPTURING; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnGe2_ChangeAction(this, GE2_ACTION_CAPTURETURN); func_8002DF54(play, &this->actor, PLAYER_CSMODE_95); func_80078884(NA_SE_SY_FOUND); @@ -521,7 +521,7 @@ void EnGe2_UpdateFriendly(Actor* thisx, PlayState* play) { if (Actor_ProcessTalkRequest(&this->actor, play)) { if ((this->actor.params & 0xFF) == GE2_TYPE_PATROLLING) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnGe2_ChangeAction(this, GE2_ACTION_WAITLOOKATPLAYER); } this->actionFunc = EnGe2_SetActionAfterTalk; @@ -566,7 +566,7 @@ void EnGe2_Update(Actor* thisx, PlayState* play) { EnGe2_ChangeAction(this, GE2_ACTION_KNOCKEDOUT); this->timer = 100; this->stateFlags |= GE2_STATE_KO; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_VO_SK_CRASH); } else { this->actionFunc(this, play); @@ -612,7 +612,7 @@ void EnGe2_UpdateStunned(Actor* thisx, PlayState* play2) { EnGe2_ChangeAction(this, GE2_ACTION_KNOCKEDOUT); this->timer = 100; this->stateFlags |= GE2_STATE_KO; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_VO_SK_CRASH); } CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base); diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c index 032dc4063c..b75442d636 100644 --- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c +++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c @@ -411,7 +411,7 @@ void EnGeldB_SetupReady(EnGeldB* this) { Animation_MorphToLoop(&this->skelAnime, &gGerudoRedNeutralAnim, -4.0f); this->action = GELDB_READY; this->timer = Rand_ZeroOne() * 10.0f + 5.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; EnGeldB_SetupAction(this, EnGeldB_Ready); } @@ -490,13 +490,13 @@ void EnGeldB_Advance(EnGeldB* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 0x2EE, 0); this->actor.world.rot.y = this->actor.shape.rot.y; if (this->actor.xzDistToPlayer <= 40.0f) { - Math_SmoothStepToF(&this->actor.speedXZ, -8.0f, 1.0f, 1.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, -8.0f, 1.0f, 1.5f, 0.0f); } else if (this->actor.xzDistToPlayer > 55.0f) { - Math_SmoothStepToF(&this->actor.speedXZ, 8.0f, 1.0f, 1.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 8.0f, 1.0f, 1.5f, 0.0f); } else { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 6.65f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 6.65f, 0.0f); } - this->skelAnime.playSpeed = this->actor.speedXZ / 8.0f; + this->skelAnime.playSpeed = this->actor.speed / 8.0f; facingAngletoLink = player->actor.shape.rot.y - this->actor.shape.rot.y; facingAngletoLink = ABS(facingAngletoLink); if ((this->actor.xzDistToPlayer < 150.0f) && (player->meleeWeaponState != 0) && (facingAngletoLink >= 0x1F40)) { @@ -564,7 +564,7 @@ void EnGeldB_SetupRollForward(EnGeldB* this) { this->invisible = true; this->action = GELDB_ROLL_FORWARD; this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_JUMP); EnGeldB_SetupAction(this, EnGeldB_RollForward); } @@ -575,7 +575,7 @@ void EnGeldB_RollForward(EnGeldB* this, PlayState* play) { if (SkelAnime_Update(&this->skelAnime)) { this->invisible = false; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (!Actor_IsFacingPlayer(&this->actor, 0x1554)) { EnGeldB_SetupReady(this); this->timer = (Rand_ZeroOne() * 5.0f) + 5.0f; @@ -635,9 +635,9 @@ void EnGeldB_SetupCircle(EnGeldB* this) { f32 lastFrame = Animation_GetLastFrame(&gGerudoRedSidestepAnim); Animation_Change(&this->skelAnime, &gGerudoRedSidestepAnim, 1.0f, 0.0f, lastFrame, ANIMMODE_LOOP_INTERP, 0.0f); - this->actor.speedXZ = Rand_CenteredFloat(12.0f); + this->actor.speed = Rand_CenteredFloat(12.0f); this->actor.world.rot.y = this->actor.shape.rot.y; - this->skelAnime.playSpeed = -this->actor.speedXZ * 0.5f; + this->skelAnime.playSpeed = -this->actor.speed * 0.5f; this->timer = Rand_ZeroOne() * 30.0f + 30.0f; this->action = GELDB_CIRCLE; this->approachRate = 0.0f; @@ -658,35 +658,35 @@ void EnGeldB_Circle(EnGeldB* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y + 0x3A98; angleBehindLink = player->actor.shape.rot.y + 0x8000; if (Math_SinS(angleBehindLink - this->actor.shape.rot.y) >= 0.0f) { - this->actor.speedXZ -= 0.25f; - if (this->actor.speedXZ < -8.0f) { - this->actor.speedXZ = -8.0f; + this->actor.speed -= 0.25f; + if (this->actor.speed < -8.0f) { + this->actor.speed = -8.0f; } } else if (Math_SinS(angleBehindLink - this->actor.shape.rot.y) < 0.0f) { - this->actor.speedXZ += 0.25f; - if (this->actor.speedXZ > 8.0f) { - this->actor.speedXZ = 8.0f; + this->actor.speed += 0.25f; + if (this->actor.speed > 8.0f) { + this->actor.speed = 8.0f; } } if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || - !Actor_TestFloorInDirection(&this->actor, play, this->actor.speedXZ, this->actor.shape.rot.y + 0x3E80)) { + !Actor_TestFloorInDirection(&this->actor, play, this->actor.speed, this->actor.shape.rot.y + 0x3E80)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { phi_v1 = this->actor.shape.rot.y + 0x3E80; } else { phi_v1 = this->actor.shape.rot.y - 0x3E80; } phi_v1 = this->actor.wallYaw - phi_v1; } else { - this->actor.speedXZ *= -0.8f; + this->actor.speed *= -0.8f; phi_v1 = 0; } if (ABS(phi_v1) > 0x4000) { - this->actor.speedXZ *= -0.8f; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ -= 0.5f; + this->actor.speed *= -0.8f; + if (this->actor.speed < 0.0f) { + this->actor.speed -= 0.5f; } else { - this->actor.speedXZ += 0.5f; + this->actor.speed += 0.5f; } } } @@ -701,8 +701,8 @@ void EnGeldB_Circle(EnGeldB* this, PlayState* play) { this->actor.world.pos.x += Math_SinS(this->actor.shape.rot.y) * this->approachRate; this->actor.world.pos.z += Math_CosS(this->actor.shape.rot.y) * this->approachRate; } - if (ABS(this->approachRate) < ABS(this->actor.speedXZ)) { - this->skelAnime.playSpeed = -this->actor.speedXZ * 0.5f; + if (ABS(this->approachRate) < ABS(this->actor.speed)) { + this->skelAnime.playSpeed = -this->actor.speed * 0.5f; } else { this->skelAnime.playSpeed = -this->approachRate * 0.5f; } @@ -742,15 +742,15 @@ void EnGeldB_SetupSpinDodge(EnGeldB* this, PlayState* play) { Animation_Change(&this->skelAnime, &gGerudoRedSidestepAnim, 1.0f, 0.0f, lastFrame, ANIMMODE_LOOP_INTERP, 0.0f); sp3E = player->actor.shape.rot.y; if (Math_SinS(sp3E - this->actor.shape.rot.y) > 0.0f) { - this->actor.speedXZ = -10.0f; + this->actor.speed = -10.0f; } else if (Math_SinS(sp3E - this->actor.shape.rot.y) < 0.0f) { - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; } else if (Rand_ZeroOne() > 0.5f) { - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; } else { - this->actor.speedXZ = -10.0f; + this->actor.speed = -10.0f; } - this->skelAnime.playSpeed = -this->actor.speedXZ * 0.5f; + this->skelAnime.playSpeed = -this->actor.speed * 0.5f; this->actor.world.rot.y = this->actor.shape.rot.y; this->timer = 6; this->approachRate = 0.0f; @@ -769,16 +769,16 @@ void EnGeldB_SpinDodge(EnGeldB* this, PlayState* play) { this->actor.world.rot.y = this->actor.yawTowardsPlayer + 0x3A98; if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || - !Actor_TestFloorInDirection(&this->actor, play, this->actor.speedXZ, this->actor.shape.rot.y + 0x3E80)) { + !Actor_TestFloorInDirection(&this->actor, play, this->actor.speed, this->actor.shape.rot.y + 0x3E80)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { phi_v1 = this->actor.shape.rot.y + 0x3E80; } else { phi_v1 = this->actor.shape.rot.y - 0x3E80; } phi_v1 = this->actor.wallYaw - phi_v1; } else { - this->actor.speedXZ *= -0.8f; + this->actor.speed *= -0.8f; phi_v1 = 0; } if (ABS(phi_v1) > 0x4000) { @@ -797,8 +797,8 @@ void EnGeldB_SpinDodge(EnGeldB* this, PlayState* play) { this->actor.world.pos.x += Math_SinS(this->actor.yawTowardsPlayer) * this->approachRate; this->actor.world.pos.z += Math_CosS(this->actor.yawTowardsPlayer) * this->approachRate; } - if (ABS(this->approachRate) < ABS(this->actor.speedXZ)) { - this->skelAnime.playSpeed = -this->actor.speedXZ * 0.5f; + if (ABS(this->approachRate) < ABS(this->actor.speed)) { + this->skelAnime.playSpeed = -this->actor.speed * 0.5f; } else { this->skelAnime.playSpeed = -this->approachRate * 0.5f; } @@ -828,7 +828,7 @@ void EnGeldB_SpinDodge(EnGeldB* this, PlayState* play) { } } } else { - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { this->actor.shape.rot.y += 0x4000; } else { this->actor.shape.rot.y -= 0x4000; @@ -841,7 +841,7 @@ void EnGeldB_SetupSlash(EnGeldB* this) { this->swordCollider.base.atFlags &= ~AT_BOUNCED; this->action = GELDB_SLASH; this->spinAttackState = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Audio_StopSfxByPosAndId(&this->actor.projectedPos, NA_SE_EN_GERUDOFT_BREATH); EnGeldB_SetupAction(this, EnGeldB_Slash); } @@ -854,7 +854,7 @@ void EnGeldB_Slash(EnGeldB* this, PlayState* play) { angleFacingLink = ABS(angleFacingLink); angleToLink = ABS(angleToLink); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if ((s32)this->skelAnime.curFrame == 1) { Actor_PlaySfx(&this->actor, NA_SE_EN_GERUDOFT_ATTACK); this->swordState = 1; @@ -900,7 +900,7 @@ void EnGeldB_SetupSpinAttack(EnGeldB* this) { this->swordCollider.base.atFlags &= ~(AT_HIT | AT_BOUNCED); this->action = GELDB_SPIN_ATTACK; this->spinAttackState = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnGeldB_SetupAction(this, EnGeldB_SpinAttack); } @@ -922,7 +922,7 @@ void EnGeldB_SpinAttack(EnGeldB* this, PlayState* play) { func_8002DF54(play, &this->actor, PLAYER_CSMODE_24); Message_StartTextbox(play, 0x6003, &this->actor); this->timer = 30; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_TWINROBA_YOUNG_LAUGH); return; } @@ -934,10 +934,10 @@ void EnGeldB_SpinAttack(EnGeldB* this, PlayState* play) { Actor_SpawnFloorDustRing(play, &this->actor, &this->leftFootPos, 3.0f, 2, 2.0f, 0, 0, false); Actor_SpawnFloorDustRing(play, &this->actor, &this->rightFootPos, 3.0f, 2, 2.0f, 0, 0, false); this->swordState = 1; - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_GERUDOFT_ATTACK); } else if ((s32)this->skelAnime.curFrame == 21) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } else if ((s32)this->skelAnime.curFrame == 24) { this->swordState = -1; } @@ -980,7 +980,7 @@ void EnGeldB_SetupRollBack(EnGeldB* this) { this->timer = 0; this->invisible = true; this->action = GELDB_ROLL_BACK; - this->actor.speedXZ = -8.0f; + this->actor.speed = -8.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_JUMP); this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer; EnGeldB_SetupAction(this, EnGeldB_RollBack); @@ -1004,7 +1004,7 @@ void EnGeldB_RollBack(EnGeldB* this, PlayState* play) { void EnGeldB_SetupStunned(EnGeldB* this) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if ((this->damageEffect != GELDB_DMG_FREEZE) || (this->action == GELDB_SPIN_ATTACK)) { Animation_PlayOnceSetSpeed(&this->skelAnime, &gGerudoRedDamageAnim, 0.0f); @@ -1019,11 +1019,11 @@ void EnGeldB_SetupStunned(EnGeldB* this) { void EnGeldB_Stunned(EnGeldB* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 0.05f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 0.05f; } this->invisible = false; } @@ -1040,7 +1040,7 @@ void EnGeldB_SetupDamaged(EnGeldB* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gGerudoRedDamageAnim, -4.0f); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->invisible = false; - this->actor.speedXZ = -4.0f; + this->actor.speed = -4.0f; } else { this->invisible = true; } @@ -1055,11 +1055,11 @@ void EnGeldB_Damaged(EnGeldB* this, PlayState* play) { s16 angleToWall; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 0.05f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 0.05f; } this->invisible = false; } @@ -1088,7 +1088,7 @@ void EnGeldB_SetupJump(EnGeldB* this) { this->timer = 0; this->invisible = false; this->action = GELDB_JUMP; - this->actor.speedXZ = 6.5f; + this->actor.speed = 6.5f; this->actor.velocity.y = 15.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_JUMP); this->actor.world.rot.y = this->actor.shape.rot.y; @@ -1105,7 +1105,7 @@ void EnGeldB_Jump(EnGeldB* this, PlayState* play) { (this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH))) { this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; this->actor.shape.rot.x = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.world.pos.y = this->actor.floorHeight; if (!Actor_OtherIsTargeted(play, &this->actor)) { @@ -1122,7 +1122,7 @@ void EnGeldB_SetupBlock(EnGeldB* this) { if (this->swordState != 0) { this->swordState = -1; } - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->action = GELDB_BLOCK; this->timer = (s32)Rand_CenteredFloat(10.0f) + 10; Animation_Change(&this->skelAnime, &gGerudoRedBlockAnim, 0.0f, 0.0f, lastFrame, ANIMMODE_ONCE, 0.0f); @@ -1192,13 +1192,13 @@ void EnGeldB_SetupSidestep(EnGeldB* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 0xFA0, 1); playerRotY = player->actor.shape.rot.y; if (Math_SinS(playerRotY - this->actor.shape.rot.y) > 0.0f) { - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; } else if (Math_SinS(playerRotY - this->actor.shape.rot.y) < 0.0f) { - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } else { - this->actor.speedXZ = Rand_CenteredFloat(12.0f); + this->actor.speed = Rand_CenteredFloat(12.0f); } - this->skelAnime.playSpeed = -this->actor.speedXZ * 0.5f; + this->skelAnime.playSpeed = -this->actor.speed * 0.5f; this->approachRate = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y + 0x3FFF; this->timer = Rand_ZeroOne() * 10.0f + 5.0f; @@ -1217,34 +1217,34 @@ void EnGeldB_Sidestep(EnGeldB* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 0xBB8, 1); behindLinkAngle = player->actor.shape.rot.y + 0x8000; if (Math_SinS(behindLinkAngle - this->actor.shape.rot.y) > 0.0f) { - this->actor.speedXZ += 0.125f; + this->actor.speed += 0.125f; } else if (Math_SinS(behindLinkAngle - this->actor.shape.rot.y) <= 0.0f) { - this->actor.speedXZ -= 0.125f; + this->actor.speed -= 0.125f; } if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || - !Actor_TestFloorInDirection(&this->actor, play, this->actor.speedXZ, this->actor.shape.rot.y + 0x3E80)) { + !Actor_TestFloorInDirection(&this->actor, play, this->actor.speed, this->actor.shape.rot.y + 0x3E80)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { phi_v1 = this->actor.shape.rot.y + 0x3E80; } else { phi_v1 = this->actor.shape.rot.y - 0x3E80; } phi_v1 = this->actor.wallYaw - phi_v1; } else { - this->actor.speedXZ *= -0.8f; + this->actor.speed *= -0.8f; phi_v1 = 0; } if (ABS(phi_v1) > 0x4000) { - this->actor.speedXZ *= -0.8f; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ -= 0.5f; + this->actor.speed *= -0.8f; + if (this->actor.speed < 0.0f) { + this->actor.speed -= 0.5f; } else { - this->actor.speedXZ += 0.5f; + this->actor.speed += 0.5f; } } } - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { this->actor.world.rot.y = this->actor.shape.rot.y + 0x3E80; } else { this->actor.world.rot.y = this->actor.shape.rot.y - 0x3E80; @@ -1260,8 +1260,8 @@ void EnGeldB_Sidestep(EnGeldB* this, PlayState* play) { this->actor.world.pos.x += Math_SinS(this->actor.shape.rot.y) * this->approachRate; this->actor.world.pos.z += Math_CosS(this->actor.shape.rot.y) * this->approachRate; } - if (ABS(this->approachRate) < ABS(this->actor.speedXZ)) { - this->skelAnime.playSpeed = -this->actor.speedXZ * 0.5f; + if (ABS(this->approachRate) < ABS(this->actor.speed)) { + this->skelAnime.playSpeed = -this->actor.speed * 0.5f; } else { this->skelAnime.playSpeed = -this->approachRate * 0.5f; } @@ -1317,7 +1317,7 @@ void EnGeldB_SetupDefeated(EnGeldB* this) { this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->invisible = false; - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; } else { this->invisible = true; } @@ -1329,10 +1329,10 @@ void EnGeldB_SetupDefeated(EnGeldB* this) { void EnGeldB_Defeated(EnGeldB* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); this->invisible = false; } if (SkelAnime_Update(&this->skelAnime)) { @@ -1384,7 +1384,7 @@ void EnGeldB_CollisionCheck(EnGeldB* this, PlayState* play) { key = Item_DropCollectible(play, &this->actor.world.pos, this->keyFlag | ITEM00_SMALL_KEY); if (key != NULL) { key->actor.world.rot.y = Math_Vec3f_Yaw(&key->actor.world.pos, &this->actor.home.pos); - key->actor.speedXZ = 6.0f; + key->actor.speed = 6.0f; Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -1640,7 +1640,7 @@ s32 EnGeldB_DodgeRanged(PlayState* play, EnGeldB* this) { this->actor.world.rot.y = this->actor.shape.rot.y + 0x3FFF; if ((ABS(angleToFacing) < 0x2000) || (ABS(angleToFacing) > 0x5FFF)) { EnGeldB_SetupSidestep(this, play); - this->actor.speedXZ *= 3.0f; + this->actor.speed *= 3.0f; } else if (ABS(angleToFacing) < 0x5FFF) { EnGeldB_SetupRollBack(this); } diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index d518af7f38..0183b0b10b 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -119,7 +119,7 @@ void func_80A3D838(EnGm* this, PlayState* play) { this->actor.textId = 0x3049; this->updateFunc = func_80A3DFBC; this->actionFunc = func_80A3DB04; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = -1.0f; this->actor.velocity.y = 0.0f; } diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index ef15112a18..f02542e69a 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -654,7 +654,7 @@ void EnGo_Init(Actor* thisx, PlayState* play) { EnGo_SetupAction(this, EnGo_CurledUp); } else { this->actor.shape.yOffset = 1400.0f; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; EnGo_SetupAction(this, EnGo_GoronLinkRolling); } break; @@ -717,7 +717,7 @@ void EnGo_StopRolling(EnGo* this, PlayState* play) { } } - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; if ((EnGo_FollowPath(this, play) == true) && (this->unk_218 == 0)) { bomb = (EnBom*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_BOM, this->actor.world.pos.x, this->actor.world.pos.y, this->actor.world.pos.z, 0, 0, 0, 0); @@ -725,7 +725,7 @@ void EnGo_StopRolling(EnGo* this, PlayState* play) { bomb->timer = 0; } - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnGo_SetupAction(this, func_80A4008C); } @@ -750,7 +750,7 @@ void func_80A4008C(EnGo* this, PlayState* play) { void EnGo_GoronLinkRolling(EnGo* this, PlayState* play) { if ((EnGo_FollowPath(this, play) == true) && Flags_GetSwitch(play, this->actor.params >> 8) && (this->unk_218 == 0)) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnGo_SetupAction(this, func_80A4008C); SET_INFTABLE(INFTABLE_109); } @@ -924,11 +924,11 @@ void func_80A40A54(EnGo* this, PlayState* play) { f32 float1 = ((f32)0x8000 / Animation_GetLastFrame(&gGoronAnim_010590)); f32 float2 = this->skelAnime.curFrame * float1; - this->actor.speedXZ = Math_SinS((s16)float2); + this->actor.speed = Math_SinS((s16)float2); if (EnGo_FollowPath(this, play) && this->unk_218 == 0) { EnGo_ChangeAnim(this, ENGO_ANIM_1); this->skelAnime.curFrame = Animation_GetLastFrame(&gGoronAnim_004930); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnGo_SetupAction(this, EnGo_BiggoronActionFunc); } } @@ -1068,7 +1068,7 @@ void EnGo_DrawRolling(EnGo* this, PlayState* play) { Matrix_Push(); Gfx_SetupDL_25Opa(play->state.gfxCtx); - Matrix_RotateZYX((s16)(play->state.frames * ((s16)this->actor.speedXZ * 1400)), 0, this->actor.shape.rot.z, + Matrix_RotateZYX((s16)(play->state.frames * ((s16)this->actor.speed * 1400)), 0, this->actor.shape.rot.z, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_go.c", 2368), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c index ab1587eb3f..cb2eef101d 100644 --- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c +++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c @@ -906,7 +906,7 @@ s32 func_80A44AB0(EnGo2* this, PlayState* play) { if (this->collider.base.ocFlags2 & OC2_HIT_PLAYER) { this->collider.base.ocFlags2 &= ~OC2_HIT_PLAYER; - arg2 = this->actionFunc == EnGo2_ContinueRolling ? 1.5f : this->actor.speedXZ * 1.5f; + arg2 = this->actionFunc == EnGo2_ContinueRolling ? 1.5f : this->actor.speed * 1.5f; play->damagePlayer(play, -4); func_8002F71C(play, &this->actor, arg2, this->actor.yawTowardsPlayer, 6.0f); @@ -1110,17 +1110,17 @@ void func_80A45360(EnGo2* this, f32* alpha) { } void EnGo2_RollForward(EnGo2* this) { - f32 speedXZ = this->actor.speedXZ; + f32 speedXZ = this->actor.speed; if (this->interactInfo.talkState != NPC_TALK_STATE_IDLE) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actionFunc != EnGo2_ContinueRolling) { Actor_MoveForward(&this->actor); } - this->actor.speedXZ = speedXZ; + this->actor.speed = speedXZ; } void func_80A454CC(EnGo2* this) { @@ -1339,21 +1339,21 @@ void EnGo2_GetItemAnimation(EnGo2* this, PlayState* play) { this->unk_211 = true; this->actionFunc = func_80A46B40; this->skelAnime.playSpeed = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->skelAnime.curFrame = this->skelAnime.endFrame; } void EnGo2_SetupRolling(EnGo2* this, PlayState* play) { if ((this->actor.params & 0x1F) == GORON_CITY_ROLLING_BIG || (this->actor.params & 0x1F) == GORON_CITY_LINK) { this->collider.info.bumperFlags = BUMP_ON; - this->actor.speedXZ = GET_INFTABLE(INFTABLE_11E) ? 6.0f : 3.6000001f; + this->actor.speed = GET_INFTABLE(INFTABLE_11E) ? 6.0f : 3.6000001f; } else { - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } this->actor.flags |= ACTOR_FLAG_24; this->animTimer = 10; this->actor.shape.yOffset = 1800.0f; - this->actor.speedXZ += this->actor.speedXZ; // Speeding up + this->actor.speed += this->actor.speed; // Speeding up this->actionFunc = EnGo2_ContinueRolling; } @@ -1377,7 +1377,7 @@ void EnGo2_StopRolling(EnGo2* this, PlayState* play) { this->unk_590 = 0; this->actionFunc = EnGo2_GroundRolling; this->actor.shape.yOffset = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } s32 EnGo2_IsFreeingGoronInFire(EnGo2* this, PlayState* play) { @@ -1434,7 +1434,7 @@ s32 EnGo2_IsGoronLinkReversing(EnGo2* this) { } s32 EnGo2_IsRolling(EnGo2* this) { - if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE || this->actor.speedXZ < 1.0f) { + if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE || this->actor.speed < 1.0f) { return false; } if (EnGo2_IsRollingOnGround(this, 2, 20.0 / 3.0f, 0)) { @@ -1698,7 +1698,7 @@ void EnGo2_GoronDmtBombFlowerAnimation(EnGo2* this, PlayState* play) { f32 float1 = this->skelAnime.endFrame; f32 float2 = this->skelAnime.curFrame * ((f32)0x8000 / float1); - this->actor.speedXZ = Math_SinS(float2); + this->actor.speed = Math_SinS(float2); if ((EnGo2_Orient(this, play)) && (this->waypoint == 0)) { EnGo2_GetItemAnimation(this, play); } @@ -1718,7 +1718,7 @@ void EnGo2_ContinueRolling(EnGo2* this, PlayState* play) { if (((this->actor.params & 0x1F) != GORON_DMT_ROLLING_SMALL || !(this->actor.xyzDistToPlayerSq > SQ(float1))) && DECR(this->animTimer) == 0) { this->actionFunc = EnGo2_SlowRolling; - this->actor.speedXZ *= 0.5f; // slowdown + this->actor.speed *= 0.5f; // slowdown } EnGo2_GetDustData(this, 2); } @@ -1746,7 +1746,7 @@ void EnGo2_SlowRolling(EnGo2* this, PlayState* play) { EnGo2_StopRolling(this, play); return; } - Math_ApproachF(&this->actor.speedXZ, EnGo2_GetTargetXZSpeed(this), 0.4f, 0.6f); + Math_ApproachF(&this->actor.speed, EnGo2_GetTargetXZSpeed(this), 0.4f, 0.6f); this->actor.shape.rot = this->actor.world.rot; } } @@ -1772,11 +1772,11 @@ void EnGo2_GroundRolling(EnGo2* this, PlayState* play) { void EnGo2_ReverseRolling(EnGo2* this, PlayState* play) { if (!EnGo2_IsRolling(this)) { - Math_ApproachF(&this->actor.speedXZ, 0.0f, 0.6f, 0.8f); - if (this->actor.speedXZ >= 1.0f) { + Math_ApproachF(&this->actor.speed, 0.0f, 0.6f, 0.8f); + if (this->actor.speed >= 1.0f) { EnGo2_GetDustData(this, 3); } - if ((s32)this->actor.speedXZ == 0) { + if ((s32)this->actor.speed == 0) { this->actor.world.rot.y ^= 0x8000; this->actor.shape.rot.y = this->actor.world.rot.y; this->reverse ^= 1; @@ -1913,7 +1913,7 @@ void EnGo2_GoronFireGenericAction(EnGo2* this, PlayState* play) { this->actor.shape.rot = this->actor.world.rot; this->animTimer = 60; this->actor.gravity = 0.0f; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; this->interactInfo.headRot = zeroVec; this->interactInfo.torsoRot = zeroVec; this->goronState++; @@ -1936,7 +1936,7 @@ void EnGo2_GoronFireGenericAction(EnGo2* this, PlayState* play) { Actor_MoveForward(&this->actor); } else { this->animTimer = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if ((((this->actor.params & 0xFC00) >> 0xA) != 1) && (((this->actor.params & 0xFC00) >> 0xA) != 2) && (((this->actor.params & 0xFC00) >> 0xA) != 4) && (((this->actor.params & 0xFC00) >> 0xA) != 5) && (((this->actor.params & 0xFC00) >> 0xA) != 9) && (((this->actor.params & 0xFC00) >> 0xA) != 11)) { @@ -2011,7 +2011,7 @@ s32 EnGo2_DrawRolling(EnGo2* this, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_go2.c", 2914); Gfx_SetupDL_25Opa(play->state.gfxCtx); - speedXZ = this->actionFunc == EnGo2_ReverseRolling ? 0.0f : this->actor.speedXZ; + speedXZ = this->actionFunc == EnGo2_ReverseRolling ? 0.0f : this->actor.speed; Matrix_RotateZYX((play->state.frames * ((s16)speedXZ * 1400)), 0, this->actor.shape.rot.z, MTXMODE_APPLY); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_go2.c", 2926), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c index e164671053..8978b05c2d 100644 --- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -128,7 +128,7 @@ void EnGoma_Init(Actor* thisx, PlayState* play) { this->eggScale = 1.0f; this->actor.velocity.y = Rand_ZeroOne() * 5.0f + 5.0f; this->actionFunc = EnGoma_Debris; - this->actor.speedXZ = Rand_ZeroOne() * 2.3f + 1.5f; + this->actor.speed = Rand_ZeroOne() * 2.3f + 1.5f; this->actionTimer = 30; this->actor.scale.x = Rand_ZeroOne() * 0.005f + 0.01f; this->actor.scale.y = Rand_ZeroOne() * 0.005f + 0.01f; @@ -144,7 +144,7 @@ void EnGoma_Init(Actor* thisx, PlayState* play) { if (this->actor.params < 3) { // Spawned by boss this->actionFunc = EnGoma_EggFallToGround; this->invincibilityTimer = 10; - this->actor.speedXZ = 1.5f; + this->actor.speed = 1.5f; } else if (this->actor.params == 8 || this->actor.params == 6) { this->actionFunc = EnGoma_Egg; this->spawnNum = sSpawnNum++; @@ -193,7 +193,7 @@ void EnGoma_SetupFlee(EnGoma* this) { void EnGoma_Flee(EnGoma* this, PlayState* play) { SkelAnime_Update(&this->skelanime); - Math_ApproachF(&this->actor.speedXZ, 20.0f / 3.0f, 0.5f, 2.0f); + Math_ApproachF(&this->actor.speed, 20.0f / 3.0f, 0.5f, 2.0f); Math_ApproachS(&this->actor.world.rot.y, Actor_WorldYawTowardActor(&this->actor, &GET_PLAYER(play)->actor) + 0x8000, 3, 2000); Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y, 2, 3000); @@ -235,7 +235,7 @@ void EnGoma_EggFallToGround(EnGoma* this, PlayState* play) { this->actionTimer = 3; Math_ApproachF(&this->eggScale, 0.75f, 0.5f, 1.0f); this->actor.velocity.y = 5.0f; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; } else { Math_ApproachF(&this->eggScale, 1.5f, 0.5f, 1.0f); } @@ -259,9 +259,9 @@ void EnGoma_EggFallToGround(EnGoma* this, PlayState* play) { } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - Math_ApproachZeroF(&this->actor.speedXZ, 0.2f, 0.05f); + Math_ApproachZeroF(&this->actor.speed, 0.2f, 0.05f); } - this->eggPitch += (this->actor.speedXZ * 0.1f); + this->eggPitch += (this->actor.speed * 0.1f); this->actor.shape.rot.y = this->actor.world.rot.y; } @@ -306,7 +306,7 @@ void EnGoma_SetupHatch(EnGoma* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; EnGoma_SpawnHatchDebris(this, play); this->eggScale = 1.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnGoma_Hatch(EnGoma* this, PlayState* play) { @@ -328,7 +328,7 @@ void EnGoma_SetupHurt(EnGoma* this, PlayState* play) { this->actionTimer = 10; } - this->actor.speedXZ = 20.0f; + this->actor.speed = 20.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer + 0x8000; if (this->actor.params < 6) { Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_BJR_DAM1); @@ -341,7 +341,7 @@ void EnGoma_Hurt(EnGoma* this, PlayState* play) { SkelAnime_Update(&this->skelanime); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 1.0f, 2.0f); } if (this->actionTimer == 0) { @@ -373,7 +373,7 @@ void EnGoma_Die(EnGoma* this, PlayState* play) { SkelAnime_Update(&this->skelanime); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 1.0f, 2.0f); } if (this->actionTimer == 17) { @@ -401,7 +401,7 @@ void EnGoma_Dead(EnGoma* this, PlayState* play) { Vec3f pos; SkelAnime_Update(&this->skelanime); - Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 1.0f, 2.0f); if (this->actionTimer == 2) { pos.x = this->actor.world.pos.x; @@ -454,7 +454,7 @@ void EnGoma_PrepareJump(EnGoma* this, PlayState* play) { s16 targetAngle; SkelAnime_Update(&this->skelanime); - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 2.0f); targetAngle = Actor_WorldYawTowardActor(&this->actor, &GET_PLAYER(play)->actor); Math_ApproachS(&this->actor.world.rot.y, targetAngle, 2, 4000); @@ -477,7 +477,7 @@ void EnGoma_Land(EnGoma* this, PlayState* play) { SkelAnime_Update(&this->skelanime); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 1.0f, 2.0f); } if (this->actionTimer == 0) { EnGoma_SetupStand(this); @@ -500,7 +500,7 @@ void EnGoma_SetupJump(EnGoma* this) { void EnGoma_Jump(EnGoma* this, PlayState* play) { this->actor.flags |= ACTOR_FLAG_24; SkelAnime_Update(&this->skelanime); - Math_ApproachF(&this->actor.speedXZ, 10.0f, 0.5f, 5.0f); + Math_ApproachF(&this->actor.speed, 10.0f, 0.5f, 5.0f); if (this->actor.velocity.y <= 0.0f && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { EnGoma_SetupLand(this); @@ -515,7 +515,7 @@ void EnGoma_Jump(EnGoma* this, PlayState* play) { void EnGoma_Stand(EnGoma* this, PlayState* play) { SkelAnime_Update(&this->skelanime); - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 2.0f); Math_ApproachS(&this->actor.shape.rot.y, Actor_WorldYawTowardActor(&this->actor, &GET_PLAYER(play)->actor), 2, 3000); @@ -535,7 +535,7 @@ void EnGoma_ChasePlayer(EnGoma* this, PlayState* play) { } } - Math_ApproachF(&this->actor.speedXZ, 10.0f / 3.0f, 0.5f, 2.0f); + Math_ApproachF(&this->actor.speed, 10.0f / 3.0f, 0.5f, 2.0f); Math_ApproachS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 3, 2000); Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y, 2, 3000); @@ -570,7 +570,7 @@ void EnGoma_Stunned(EnGoma* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->actor.velocity.y = 0.0f; - Math_ApproachZeroF(&this->actor.speedXZ, 0.5f, 2.0f); + Math_ApproachZeroF(&this->actor.speed, 0.5f, 2.0f); } if (this->stunTimer == 0) { @@ -615,7 +615,7 @@ void EnGoma_UpdateHit(EnGoma* this, PlayState* play) { if ((this->colCyl1.base.atFlags & AT_HIT) && this->actionFunc == EnGoma_Jump) { EnGoma_SetupLand(this); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; } @@ -630,7 +630,7 @@ void EnGoma_UpdateHit(EnGoma* this, PlayState* play) { if (this->actionFunc == EnGoma_Jump) { EnGoma_SetupLand(this); this->actor.velocity.y = 0.0f; - this->actor.speedXZ = -5.0f; + this->actor.speed = -5.0f; } else { Matrix_RotateY(BINANG_TO_RAD_ALT(player->actor.shape.rot.y), MTXMODE_NEW); Matrix_MultVec3f(&sShieldKnockbackVel, &this->shieldKnockbackVel); diff --git a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c index 591680d2b8..c16309d464 100644 --- a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c +++ b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c @@ -299,7 +299,7 @@ s32 EnGoroiwa_MoveAndFall(EnGoroiwa* this, PlayState* play) { s32 pad; Vec3s* nextPointPos; - Math_StepToF(&this->actor.speedXZ, R_EN_GOROIWA_SPEED * 0.01f, 0.3f); + Math_StepToF(&this->actor.speed, R_EN_GOROIWA_SPEED * 0.01f, 0.3f); func_8002D868(&this->actor); path = &play->pathList[this->actor.params & 0xFF]; nextPointPos = (Vec3s*)SEGMENTED_TO_VIRTUAL(path->points) + this->nextWaypoint; @@ -322,7 +322,7 @@ s32 EnGoroiwa_Move(EnGoroiwa* this, PlayState* play) { nextPointPosF.x = nextPointPos->x; nextPointPosF.y = nextPointPos->y; nextPointPosF.z = nextPointPos->z; - Math_StepToF(&this->actor.speedXZ, R_EN_GOROIWA_SPEED * 0.01f, 0.3f); + Math_StepToF(&this->actor.speed, R_EN_GOROIWA_SPEED * 0.01f, 0.3f); if (Math3D_Vec3fDistSq(&nextPointPosF, &this->actor.world.pos) < SQ(5.0f)) { Math_Vec3f_Diff(&nextPointPosF, &this->actor.world.pos, &posDiff); } else { @@ -331,9 +331,9 @@ s32 EnGoroiwa_Move(EnGoroiwa* this, PlayState* play) { posDiff.z = nextPointPosF.z - currentPointPos->z; } EnGoroiwa_Vec3fNormalize(&this->actor.velocity, &posDiff); - this->actor.velocity.x *= this->actor.speedXZ; - this->actor.velocity.y *= this->actor.speedXZ; - this->actor.velocity.z *= this->actor.speedXZ; + this->actor.velocity.x *= this->actor.speed; + this->actor.velocity.y *= this->actor.speed; + this->actor.velocity.z *= this->actor.speed; nextPointReached = true; nextPointReached &= Math_StepToF(&this->actor.world.pos.x, nextPointPosF.x, fabsf(this->actor.velocity.x)); nextPointReached &= Math_StepToF(&this->actor.world.pos.y, nextPointPosF.y, fabsf(this->actor.velocity.y)); @@ -637,7 +637,7 @@ void EnGoroiwa_SetupMoveAndFallToGround(EnGoroiwa* this) { EnGoroiwa_UpdateFlags(this, ENGOROIWA_ENABLE_OC); this->actor.gravity = -0.86f; this->actor.minVelocityY = -15.0f; - this->actor.speedXZ *= 0.15f; + this->actor.speed *= 0.15f; this->actor.velocity.y = 5.0f; this->rollRotSpeed = 1.0f; } @@ -657,7 +657,7 @@ void EnGoroiwa_SetupWait(EnGoroiwa* this) { static s16 waitDurations[] = { 20, 6 }; this->actionFunc = EnGoroiwa_Wait; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnGoroiwa_UpdateFlags(this, ENGOROIWA_ENABLE_OC); this->waitTimer = waitDurations[this->actor.home.rot.z & 1]; this->rollRotSpeed = 0.0f; @@ -676,7 +676,7 @@ void EnGoroiwa_SetupMoveUp(EnGoroiwa* this) { this->actionFunc = EnGoroiwa_MoveUp; EnGoroiwa_UpdateFlags(this, ENGOROIWA_ENABLE_AT | ENGOROIWA_ENABLE_OC); this->rollRotSpeed = 0.0f; - this->actor.velocity.y = fabsf(this->actor.speedXZ) * 0.1f; + this->actor.velocity.y = fabsf(this->actor.speed) * 0.1f; } void EnGoroiwa_MoveUp(EnGoroiwa* this, PlayState* play) { @@ -690,7 +690,7 @@ void EnGoroiwa_MoveUp(EnGoroiwa* this, PlayState* play) { } else if (EnGoroiwa_MoveUpToNextWaypoint(this, play)) { EnGoroiwa_NextWaypoint(this, play); EnGoroiwa_SetupRoll(this); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } @@ -699,7 +699,7 @@ void EnGoroiwa_SetupMoveDown(EnGoroiwa* this) { EnGoroiwa_UpdateFlags(this, ENGOROIWA_ENABLE_AT | ENGOROIWA_ENABLE_OC); this->rollRotSpeed = 0.3f; this->bounceCount = 0; - this->actor.velocity.y = fabsf(this->actor.speedXZ) * -0.3f; + this->actor.velocity.y = fabsf(this->actor.speed) * -0.3f; this->stateFlags |= ENGOROIWA_RETAIN_ROT_SPEED; this->stateFlags &= ~ENGOROIWA_IN_WATER; } @@ -716,7 +716,7 @@ void EnGoroiwa_MoveDown(EnGoroiwa* this, PlayState* play) { EnGoroiwa_NextWaypoint(this, play); EnGoroiwa_SetupRoll(this); this->stateFlags &= ~ENGOROIWA_RETAIN_ROT_SPEED; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c index decf839c9e..81bfaedd74 100644 --- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c +++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c @@ -145,7 +145,7 @@ void func_80A4E470(EnGs* this, PlayState* play) { if (this->unk_19D == 0) { player->stateFlags2 |= PLAYER_STATE2_23; if (player->stateFlags2 & PLAYER_STATE2_24) { - func_8010BD58(play, OCARINA_ACTION_FREE_PLAY); + Message_StartOcarina(play, OCARINA_ACTION_FREE_PLAY); this->unk_19D |= 1; } diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c index 16440dcf10..5226060919 100644 --- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c +++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c @@ -659,7 +659,7 @@ void func_80A5455C(EnHeishi2* this, PlayState* play) { rotY = Rand_CenteredFloat(7000.0f) + this->actor.yawTowardsPlayer; bomb = (EnBom*)Actor_Spawn(&play->actorCtx, play, ACTOR_EN_BOM, pos.x, pos.y, pos.z, 0, rotY, 0, 0); if (bomb != NULL) { - bomb->actor.speedXZ = Rand_CenteredFloat(5.0f) + 10.0f; + bomb->actor.speed = Rand_CenteredFloat(5.0f) + 10.0f; bomb->actor.velocity.y = Rand_CenteredFloat(5.0f) + 10.0f; } diff --git a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c index cbb29d1fbb..2002263601 100644 --- a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c +++ b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c @@ -172,7 +172,7 @@ void EnHeishi3_CatchStart(EnHeishi3* this, PlayState* play) { Animation_Change(&this->skelAnime, &gEnHeishiWalkAnim, 1.0f, 0.0f, (s16)frameCount, ANIMMODE_LOOP, -10.0f); this->caughtTimer = 20; this->actionFunc = func_80A55BD4; - this->actor.speedXZ = 2.5f; + this->actor.speed = 2.5f; } void func_80A55BD4(EnHeishi3* this, PlayState* play) { @@ -183,7 +183,7 @@ void func_80A55BD4(EnHeishi3* this, PlayState* play) { } if (this->caughtTimer == 0) { this->actionFunc = EnHeishi3_ResetAnimationToIdle; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } else { Math_SmoothStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 5, 3000, 0); } diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c index 2584bcbc5f..789cbdf4ca 100644 --- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c +++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c @@ -186,12 +186,12 @@ void EnHintnuts_SetupRun(EnHintnuts* this) { void EnHintnuts_SetupTalk(EnHintnuts* this) { Animation_MorphToLoop(&this->skelAnime, &gHintNutsTalkAnim, -5.0f); this->actionFunc = EnHintnuts_Talk; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnHintnuts_SetupLeave(EnHintnuts* this, PlayState* play) { Animation_MorphToLoop(&this->skelAnime, &gHintNutsRunAnim, -5.0f); - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; this->animFlagAndTimer = 100; this->actor.world.rot.y = this->actor.shape.rot.y; this->collider.base.ocFlags1 &= ~OC1_ON; @@ -350,7 +350,7 @@ void EnHintnuts_Run(EnHintnuts* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_NUTS_WALK); } - Math_StepToF(&this->actor.speedXZ, 7.5f, 1.0f); + Math_StepToF(&this->actor.speed, 7.5f, 1.0f); if (Math_SmoothStepToS(&this->actor.world.rot.y, this->unk_196, 1, 0xE38, 0xB6) == 0) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { this->unk_196 = Actor_WorldYawTowardPoint(&this->actor, &this->actor.home.pos); @@ -375,7 +375,7 @@ void EnHintnuts_Run(EnHintnuts* this, PlayState* play) { EnHintnuts_SetupTalk(this); } else if (this->animFlagAndTimer == 0 && Actor_WorldDistXZToPoint(&this->actor, &this->actor.home.pos) < 20.0f && fabsf(this->actor.world.pos.y - this->actor.home.pos.y) < 2.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->actor.category == ACTORCAT_BG) { this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_3 | ACTOR_FLAG_16); this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2; diff --git a/src/overlays/actors/ovl_En_Holl/z_en_holl.c b/src/overlays/actors/ovl_En_Holl/z_en_holl.c index edba89ade7..f7f2c135f9 100644 --- a/src/overlays/actors/ovl_En_Holl/z_en_holl.c +++ b/src/overlays/actors/ovl_En_Holl/z_en_holl.c @@ -206,7 +206,7 @@ void func_80A591C0(EnHoll* this, PlayState* play) { func_8009728C(play, &play->roomCtx, this->actor.room) != 0) { EnHoll_SetupAction(this, EnHoll_NextAction); this->unk_14F = 1; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; } } } else if (this->unk_14F != 0) { diff --git a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c index 9255c56e30..f476612c3f 100644 --- a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c +++ b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c @@ -384,11 +384,11 @@ void EnHonotrap_FlameMove(EnHonotrap* this, PlayState* play) { tempVel = this->actor.velocity; Math3D_Vec3fReflect(&tempVel, &shieldNorm, &this->actor.velocity); - this->actor.speedXZ = this->speedMod * 0.5f; + this->actor.speed = this->speedMod * 0.5f; this->actor.world.rot.y = Math_Atan2S(this->actor.velocity.z, this->actor.velocity.x); EnHonotrap_SetupFlameVanish(this); } else if (this->collider.tris.base.atFlags & AT_HIT) { - this->actor.velocity.y = this->actor.speedXZ = 0.0f; + this->actor.velocity.y = this->actor.speed = 0.0f; EnHonotrap_SetupFlameVanish(this); } else if (this->timer <= 0) { EnHonotrap_SetupFlameVanish(this); @@ -403,7 +403,7 @@ void EnHonotrap_FlameMove(EnHonotrap* this, PlayState* play) { void EnHonotrap_SetupFlameChase(EnHonotrap* this) { this->actionFunc = EnHonotrap_FlameChase; - this->actor.velocity.x = this->actor.velocity.y = this->actor.velocity.z = this->actor.speedXZ = 0.0f; + this->actor.velocity.x = this->actor.velocity.y = this->actor.velocity.z = this->actor.speed = 0.0f; this->actor.world.rot.x = this->actor.world.rot.y = this->actor.world.rot.z = 0; this->timer = 100; @@ -413,7 +413,7 @@ void EnHonotrap_FlameChase(EnHonotrap* this, PlayState* play) { s32 pad; Math_ScaledStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 0x300); - Math_StepToF(&this->actor.speedXZ, 3.0f, 0.1f); + Math_StepToF(&this->actor.speed, 3.0f, 0.1f); this->actor.gravity = (-this->actor.yDistToPlayer < 10.0f) ? 0.08f : -0.08f; func_8002D868(&this->actor); if (this->actor.velocity.y > 1.0f) { @@ -432,7 +432,7 @@ void EnHonotrap_FlameChase(EnHonotrap* this, PlayState* play) { this->actor.world.rot.y = ((shieldRot.y * 2) - this->actor.world.rot.y) + 0x8000; EnHonotrap_SetupFlameVanish(this); } else if (this->collider.cyl.base.atFlags & AT_HIT) { - this->actor.speedXZ *= 0.1f; + this->actor.speed *= 0.1f; this->actor.velocity.y *= 0.1f; EnHonotrap_SetupFlameVanish(this); } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || (this->timer <= 0)) { diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/src/overlays/actors/ovl_En_Horse/z_en_horse.c index 9af82e60b7..dc4adbb1f0 100644 --- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c +++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c @@ -12,7 +12,7 @@ #define FLAGS ACTOR_FLAG_4 -typedef void (*EnHorseCsFunc)(EnHorse*, PlayState*, CsCmdActorAction*); +typedef void (*EnHorseCsFunc)(EnHorse*, PlayState*, CsCmdActorCue*); typedef void (*EnHorseActionFunc)(EnHorse*, PlayState*); void EnHorse_Init(Actor* thisx, PlayState* play2); @@ -352,7 +352,7 @@ typedef struct { s16 x; s16 y; s16 z; - s16 speed; + s16 speedXZ; s16 angle; } RaceWaypoint; @@ -381,11 +381,11 @@ static s32 sIdleAnimIds[] = { 1, 3, 0, 3, 1, 0 }; static s16 sIngoAnimations[] = { 7, 6, 2, 2, 1, 1, 0, 0, 0, 0 }; -void EnHorse_CsMoveInit(EnHorse* this, PlayState* play, CsCmdActorAction* action); -void EnHorse_CsJumpInit(EnHorse* this, PlayState* play, CsCmdActorAction* action); -void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction* action); -void EnHorse_WarpMoveInit(EnHorse* this, PlayState* play, CsCmdActorAction* action); -void EnHorse_CsWarpRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction* action); +void EnHorse_CsMoveInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue); +void EnHorse_CsJumpInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue); +void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue); +void EnHorse_WarpMoveInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue); +void EnHorse_CsWarpRearingInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue); static EnHorseCsFunc sCutsceneInitFuncs[] = { NULL, @@ -396,18 +396,18 @@ static EnHorseCsFunc sCutsceneInitFuncs[] = { EnHorse_CsWarpRearingInit, }; -void EnHorse_CsMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction* action); -void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorAction* action); -void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorAction* action); -void EnHorse_CsWarpMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction* action); -void EnHorse_CsWarpRearing(EnHorse* this, PlayState* play, CsCmdActorAction* action); +void EnHorse_CsMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorCue* cue); +void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorCue* cue); +void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorCue* cue); +void EnHorse_CsWarpMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorCue* cue); +void EnHorse_CsWarpRearing(EnHorse* this, PlayState* play, CsCmdActorCue* cue); static EnHorseCsFunc sCutsceneActionFuncs[] = { NULL, EnHorse_CsMoveToPoint, EnHorse_CsJump, EnHorse_CsRearing, EnHorse_CsWarpMoveToPoint, EnHorse_CsWarpRearing, }; typedef struct { - s32 csAction; + s32 cueId; s32 csFuncIdx; } CsActionEntry; @@ -453,7 +453,7 @@ s32 EnHorse_BgCheckBridgeJumpPoint(EnHorse* this, PlayState* play) { if (play->sceneId != SCENE_GERUDO_VALLEY) { return false; } - if (this->actor.speedXZ < 12.8f) { + if (this->actor.speed < 12.8f) { return false; } if (GET_EVENTCHKINF_CARPENTERS_FREE_ALL()) { @@ -488,7 +488,7 @@ s32 EnHorse_CheckBridgeJumps(EnHorse* this, PlayState* play) { f32 xMax; s32 i; - if (this->actor.speedXZ < 12.8f) { + if (this->actor.speed < 12.8f) { return false; } @@ -581,19 +581,19 @@ void EnHorse_UpdateIngoRaceInfo(EnHorse* this, PlayState* play, RaceInfo* raceIn sp50 = Actor_WorldDistXZToActor(&this->actor, &GET_PLAYER(play)->actor); relPlayerYaw = Actor_WorldYawTowardActor(&this->actor, &GET_PLAYER(play)->actor) - this->actor.world.rot.y; if (sp50 <= 200.0f || (fabsf(Math_SinS(relPlayerYaw)) < 0.8f && Math_CosS(relPlayerYaw) > 0.0f)) { - if (this->actor.speedXZ < this->ingoHorseMaxSpeed) { - this->actor.speedXZ += 0.47f; + if (this->actor.speed < this->ingoHorseMaxSpeed) { + this->actor.speed += 0.47f; } else { - this->actor.speedXZ -= 0.47f; + this->actor.speed -= 0.47f; } this->ingoRaceFlags |= 1; return; } - if (this->actor.speedXZ < raceInfo->waypoints[this->curRaceWaypoint].speed) { - this->actor.speedXZ = this->actor.speedXZ + 0.4f; + if (this->actor.speed < raceInfo->waypoints[this->curRaceWaypoint].speedXZ) { + this->actor.speed += 0.4f; } else { - this->actor.speedXZ = this->actor.speedXZ - 0.4f; + this->actor.speed -= 0.4f; } this->ingoRaceFlags &= ~0x1; } @@ -812,7 +812,7 @@ void EnHorse_Init(Actor* thisx, PlayState* play2) { this->actor.gravity = -3.5f; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawHorse, 20.0f); this->action = ENHORSE_ACT_IDLE; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Collider_InitCylinder(play, &this->cyl1); Collider_SetCylinder(play, &this->cyl1, &this->actor, &sCylinderInit1); Collider_InitCylinder(play, &this->cyl2); @@ -933,7 +933,7 @@ void EnHorse_StartMountedIdle(EnHorse* this); void EnHorse_StartGalloping(EnHorse* this); void EnHorse_Frozen(EnHorse* this, PlayState* play) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->noInputTimer--; if (this->noInputTimer < 0) { this->cyl1.base.ocFlags1 |= OC1_ON; @@ -948,7 +948,7 @@ void EnHorse_Frozen(EnHorse* this, PlayState* play) { if (play->csCtx.state != 0) { EnHorse_StartMountedIdle(this); } else { - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; EnHorse_StartGalloping(this); } } else if (this->prevAction == 2) { @@ -986,10 +986,10 @@ void EnHorse_UpdateSpeed(EnHorse* this, PlayState* play, f32 brakeDecel, f32 bra s16 turn; if (!EnHorse_PlayerCanMove(this, play)) { - if (this->actor.speedXZ > 8) { - this->actor.speedXZ -= decel; - } else if (this->actor.speedXZ < 0) { - this->actor.speedXZ = 0; + if (this->actor.speed > 8) { + this->actor.speed -= decel; + } else if (this->actor.speed < 0) { + this->actor.speed = 0; } return; @@ -1000,17 +1000,17 @@ void EnHorse_UpdateSpeed(EnHorse* this, PlayState* play, f32 brakeDecel, f32 bra baseSpeed *= EnHorse_SlopeSpeedMultiplier(this, play); EnHorse_StickDirection(&this->curStick, &stickMag, &stickAngle); if (Math_CosS(stickAngle) <= brakeAngle) { - this->actor.speedXZ -= brakeDecel; - this->actor.speedXZ = this->actor.speedXZ < 0.0f ? 0.0f : this->actor.speedXZ; + this->actor.speed -= brakeDecel; + this->actor.speed = this->actor.speed < 0.0f ? 0.0f : this->actor.speed; return; } if (stickMag < minStickMag) { this->stateFlags &= ~ENHORSE_BOOST; this->stateFlags &= ~ENHORSE_BOOST_DECEL; - this->actor.speedXZ -= decel; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed -= decel; + if (this->actor.speed < 0.0f) { + this->actor.speed = 0.0f; } return; @@ -1018,39 +1018,39 @@ void EnHorse_UpdateSpeed(EnHorse* this, PlayState* play, f32 brakeDecel, f32 bra if (this->stateFlags & ENHORSE_BOOST) { if ((16 - this->boostTimer) > 0) { - this->actor.speedXZ = (EnHorse_SlopeSpeedMultiplier(this, play) * this->boostSpeed - this->actor.speedXZ) / - (16 - this->boostTimer) + - this->actor.speedXZ; + this->actor.speed = (EnHorse_SlopeSpeedMultiplier(this, play) * this->boostSpeed - this->actor.speed) / + (16 - this->boostTimer) + + this->actor.speed; } else { - this->actor.speedXZ = EnHorse_SlopeSpeedMultiplier(this, play) * this->boostSpeed; + this->actor.speed = EnHorse_SlopeSpeedMultiplier(this, play) * this->boostSpeed; } - if ((EnHorse_SlopeSpeedMultiplier(this, play) * this->boostSpeed) <= this->actor.speedXZ) { + if ((EnHorse_SlopeSpeedMultiplier(this, play) * this->boostSpeed) <= this->actor.speed) { this->stateFlags &= ~ENHORSE_BOOST; this->stateFlags |= ENHORSE_BOOST_DECEL; } } else if (this->stateFlags & ENHORSE_BOOST_DECEL) { - if (baseSpeed < this->actor.speedXZ) { - temp_f12 = this->actor.speedXZ; - this->actor.speedXZ = temp_f12 - 0.06f; - } else if (this->actor.speedXZ < baseSpeed) { - this->actor.speedXZ = baseSpeed; + if (baseSpeed < this->actor.speed) { + temp_f12 = this->actor.speed; + this->actor.speed = temp_f12 - 0.06f; + } else if (this->actor.speed < baseSpeed) { + this->actor.speed = baseSpeed; this->stateFlags &= ~ENHORSE_BOOST_DECEL; } } else { - this->actor.speedXZ += - (this->actor.speedXZ <= baseSpeed * (1.0f / 54.0f) * stickMag ? 1.0f : -1.0f) * 50.0f * 0.01f; - if (baseSpeed < this->actor.speedXZ) { - this->actor.speedXZ = this->actor.speedXZ - decel; - if (this->actor.speedXZ < baseSpeed) { - this->actor.speedXZ = baseSpeed; + this->actor.speed += + (this->actor.speed <= baseSpeed * (1.0f / 54.0f) * stickMag ? 1.0f : -1.0f) * 50.0f * 0.01f; + if (baseSpeed < this->actor.speed) { + this->actor.speed -= decel; + if (this->actor.speed < baseSpeed) { + this->actor.speed = baseSpeed; } } } temp_f12 = *stickAnglePtr * (1 / 32236.f); - traction = 2.2f - (this->actor.speedXZ * (1.0f / this->boostSpeed)); + traction = 2.2f - (this->actor.speed * (1.0f / this->boostSpeed)); turn = *stickAnglePtr * temp_f12 * temp_f12 * traction; turn = CLAMP(turn, -turnSpeed * traction, turnSpeed * traction); this->actor.world.rot.y += turn; @@ -1093,7 +1093,7 @@ void EnHorse_MountedIdle(EnHorse* this, PlayState* play) { f32 mag; s16 angle = 0; - this->actor.speedXZ = 0; + this->actor.speed = 0; EnHorse_StickDirection(&this->curStick, &mag, &angle); if (mag > 10.0f && EnHorse_PlayerCanMove(this, play) == true) { if (Math_CosS(angle) <= -0.5f) { @@ -1133,7 +1133,7 @@ void EnHorse_MountedIdleWhinneying(EnHorse* this, PlayState* play) { f32 stickMag; s16 stickAngle = 0; - this->actor.speedXZ = 0; + this->actor.speed = 0; EnHorse_StickDirection(&this->curStick, &stickMag, &stickAngle); if (stickMag > 10.0f && EnHorse_PlayerCanMove(this, play) == true) { if (Math_CosS(stickAngle) <= -0.5f) { @@ -1162,7 +1162,7 @@ void EnHorse_MountedTurn(EnHorse* this, PlayState* play) { s16 clampedYaw; s16 stickAngle; - this->actor.speedXZ = 0; + this->actor.speed = 0; EnHorse_PlayWalkingSfx(this); EnHorse_StickDirection(&this->curStick, &stickMag, &stickAngle); if (stickMag > 10.0f) { @@ -1234,15 +1234,15 @@ void EnHorse_MountedWalk(EnHorse* this, PlayState* play) { (this->noInputTimer > 0.0f && this->noInputTimer < this->noInputTimerMax - 20.0f)) { EnHorse_UpdateSpeed(this, play, 0.3f, -0.5f, 10.0f, 0.06f, 3.0f, 400); } else { - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; } - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { this->stateFlags &= ~ENHORSE_FLAG_9; EnHorse_StartMountedIdleResetAnim(this); this->noInputTimer = 0; this->noInputTimerMax = 0; - } else if (this->actor.speedXZ > 3.0f) { + } else if (this->actor.speed > 3.0f) { this->stateFlags &= ~ENHORSE_FLAG_9; EnHorse_StartTrotting(this); this->noInputTimer = 0; @@ -1258,10 +1258,10 @@ void EnHorse_MountedWalk(EnHorse* this, PlayState* play) { if (this->waitTimer <= 0) { this->stateFlags &= ~ENHORSE_FLAG_9; - this->skin.skelAnime.playSpeed = this->actor.speedXZ * 0.75f; - if (SkelAnime_Update(&this->skin.skelAnime) || this->actor.speedXZ == 0.0f) { + this->skin.skelAnime.playSpeed = this->actor.speed * 0.75f; + if (SkelAnime_Update(&this->skin.skelAnime) || this->actor.speed == 0.0f) { if (this->noInputTimer <= 0.0f) { - if (this->actor.speedXZ > 3.0f) { + if (this->actor.speed > 3.0f) { EnHorse_StartTrotting(this); this->noInputTimer = 0; this->noInputTimerMax = 0; @@ -1275,7 +1275,7 @@ void EnHorse_MountedWalk(EnHorse* this, PlayState* play) { } } } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->waitTimer--; } } @@ -1301,17 +1301,17 @@ void EnHorse_MountedTrot(EnHorse* this, PlayState* play) { EnHorse_UpdateSpeed(this, play, 0.3f, -0.5f, 10.0f, 0.06f, 6.0f, 400); EnHorse_StickDirection(&this->curStick, &stickMag, &stickAngle); - if (this->actor.speedXZ < 3.0f) { + if (this->actor.speed < 3.0f) { EnHorse_StartWalkingInterruptable(this); } - this->skin.skelAnime.playSpeed = this->actor.speedXZ * 0.375f; + this->skin.skelAnime.playSpeed = this->actor.speed * 0.375f; if (SkelAnime_Update(&this->skin.skelAnime)) { EnHorse_PlayTrottingSfx(this); Rumble_Request(0.0f, 60, 8, 255); - if (this->actor.speedXZ >= 6.0f) { + if (this->actor.speed >= 6.0f) { EnHorse_StartGallopingInterruptable(this); - } else if (this->actor.speedXZ < 3.0f) { + } else if (this->actor.speed < 3.0f) { EnHorse_StartWalkingInterruptable(this); } else { EnHorse_MountedTrotReset(this); @@ -1367,20 +1367,20 @@ void EnHorse_MountedGallop(EnHorse* this, PlayState* play) { EnHorse_UpdateSpeed(this, play, 0.3f, -0.5f, 10.0f, 0.06f, 8.0f, 0x190); } else if (this->noInputTimer > 0.0f) { this->noInputTimer -= 1; - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; } - if (this->actor.speedXZ < 6.0f) { + if (this->actor.speed < 6.0f) { EnHorse_StartTrotting(this); } - this->skin.skelAnime.playSpeed = this->actor.speedXZ * 0.3f; + this->skin.skelAnime.playSpeed = this->actor.speed * 0.3f; if (SkelAnime_Update(&this->skin.skelAnime)) { EnHorse_PlayGallopingSfx(this); Rumble_Request(0, 120, 8, 255); if (EnHorse_PlayerCanMove(this, play) == true) { if (stickMag >= 10.0f && Math_CosS(stickAngle) <= -0.5f) { EnHorse_StartBraking(this, play); - } else if (this->actor.speedXZ < 6.0f) { + } else if (this->actor.speed < 6.0f) { EnHorse_StartTrotting(this); } else { EnHorse_MountedGallopReset(this); @@ -1409,7 +1409,7 @@ void EnHorse_MountedRearing(EnHorse* this, PlayState* play) { f32 stickMag; s16 stickAngle; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->curFrame > 25.0f) { if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) { this->stateFlags |= ENHORSE_LAND2_SOUND; @@ -1457,15 +1457,15 @@ void EnHorse_StartBraking(EnHorse* this, PlayState* play) { } void EnHorse_Stopping(EnHorse* this, PlayState* play) { - if (this->actor.speedXZ > 0.0f) { - this->actor.speedXZ = this->actor.speedXZ - 0.6f; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ = 0.0f; + if (this->actor.speed > 0.0f) { + this->actor.speed -= 0.6f; + if (this->actor.speed < 0.0f) { + this->actor.speed = 0.0f; } } if (this->stateFlags & ENHORSE_STOPPING_NEIGH_SOUND && this->skin.skelAnime.curFrame > 29.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (Rand_ZeroOne() > 0.5) { this->unk_21C = this->unk_228; if (this->stateFlags & ENHORSE_DRAW) { @@ -1480,9 +1480,9 @@ void EnHorse_Stopping(EnHorse* this, PlayState* play) { } if (this->skin.skelAnime.curFrame > 29.0f) { - this->actor.speedXZ = 0.0f; - } else if (this->actor.speedXZ > 3.0f && this->stateFlags & ENHORSE_FORCE_REVERSING) { - this->actor.speedXZ = 3.0f; + this->actor.speed = 0.0f; + } else if (this->actor.speed > 3.0f && this->stateFlags & ENHORSE_FORCE_REVERSING) { + this->actor.speed = 3.0f; } if (SkelAnime_Update(&this->skin.skelAnime)) { @@ -1524,7 +1524,7 @@ void EnHorse_Reverse(EnHorse* this, PlayState* play) { (this->noInputTimer > 0.0f && this->noInputTimer < this->noInputTimerMax - 20.0f)) { if (stickMag < 10.0f && this->noInputTimer <= 0.0f) { EnHorse_StartMountedIdleResetAnim(this); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; return; } if (stickMag < 10.0f) { @@ -1532,7 +1532,7 @@ void EnHorse_Reverse(EnHorse* this, PlayState* play) { } else if (Math_CosS(stickAngle) > -0.5f) { this->noInputTimerMax = 0; EnHorse_StartMountedIdleResetAnim(this); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; return; } } else if (stickMag < 10.0f) { @@ -1540,13 +1540,13 @@ void EnHorse_Reverse(EnHorse* this, PlayState* play) { } } else if (player->actor.flags & ACTOR_FLAG_8) { EnHorse_StartMountedIdleResetAnim(this); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; return; } else { stickAngle = -0x7FFF; } - this->actor.speedXZ = -2.0f; + this->actor.speed = -2.0f; turnAmount = 0x7FFF - stickAngle; turnAmount = CLAMP(turnAmount, -1200.0f, 1200.0f); this->actor.world.rot.y += turnAmount; @@ -1558,7 +1558,7 @@ void EnHorse_Reverse(EnHorse* this, PlayState* play) { this->noInputTimerMax = 0; } } - this->skin.skelAnime.playSpeed = this->actor.speedXZ * 0.5f * 1.5f; + this->skin.skelAnime.playSpeed = this->actor.speed * 0.5f * 1.5f; if (SkelAnime_Update(&this->skin.skelAnime) && (f32)this->noInputTimer <= 0.0f && EnHorse_PlayerCanMove(this, play) == true) { if (stickMag > 10.0f && Math_CosS(stickAngle) <= -0.5f) { @@ -1617,7 +1617,7 @@ void EnHorse_LowJump(EnHorse* this, PlayState* play) { curFrame = this->skin.skelAnime.curFrame; this->stateFlags |= ENHORSE_JUMPING; - this->actor.speedXZ = 12.0f; + this->actor.speed = 12.0f; if (curFrame > 17.0f) { this->actor.gravity = -3.5f; if (this->actor.velocity.y == 0) { @@ -1692,7 +1692,7 @@ void EnHorse_HighJump(EnHorse* this, PlayState* play) { curFrame = this->skin.skelAnime.curFrame; this->stateFlags |= ENHORSE_JUMPING; - this->actor.speedXZ = 13.0f; + this->actor.speed = 13.0f; if (curFrame > 23.0f) { this->actor.gravity = -3.5f; if (this->actor.velocity.y == 0) { @@ -1764,7 +1764,7 @@ void EnHorse_Inactive(EnHorse* this, PlayState* play2) { void EnHorse_PlayIdleAnimation(EnHorse* this, s32 anim, f32 morphFrames, f32 startFrame) { this->action = ENHORSE_ACT_IDLE; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (anim != ENHORSE_ANIM_IDLE && anim != ENHORSE_ANIM_WHINNEY && anim != ENHORSE_ANIM_REARING) { anim = ENHORSE_ANIM_IDLE; } @@ -1810,7 +1810,7 @@ void EnHorse_StartIdleRidable(EnHorse* this) { void EnHorse_StartMovingAnimation(EnHorse* this, s32 animId, f32 morphFrames, f32 startFrame); void EnHorse_Idle(EnHorse* this, PlayState* play) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnHorse_IdleAnimSounds(this, play); if (DREG(53) && this->type == HORSE_EPONA) { @@ -1945,17 +1945,17 @@ void EnHorse_FollowPlayer(EnHorse* this, PlayState* play) { } if (this->animationIdx == ENHORSE_ANIM_GALLOP) { - this->actor.speedXZ = 8; - this->skin.skelAnime.playSpeed = this->actor.speedXZ * 0.3f; + this->actor.speed = 8; + this->skin.skelAnime.playSpeed = this->actor.speed * 0.3f; } else if (this->animationIdx == ENHORSE_ANIM_TROT) { - this->actor.speedXZ = 6; - this->skin.skelAnime.playSpeed = this->actor.speedXZ * 0.375f; + this->actor.speed = 6; + this->skin.skelAnime.playSpeed = this->actor.speed * 0.375f; } else if (this->animationIdx == ENHORSE_ANIM_WALK) { - this->actor.speedXZ = 3; + this->actor.speed = 3; EnHorse_PlayWalkingSfx(this); - this->skin.skelAnime.playSpeed = this->actor.speedXZ * 0.75f; + this->skin.skelAnime.playSpeed = this->actor.speed * 0.75f; } else { - this->actor.speedXZ = 0; + this->actor.speed = 0; this->skin.skelAnime.playSpeed = 1.0f; } @@ -1989,7 +1989,7 @@ void EnHorse_UpdateIngoHorseAnim(EnHorse* this); void EnHorse_InitIngoHorse(EnHorse* this) { this->curRaceWaypoint = 0; this->soundTimer = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnHorse_UpdateIngoHorseAnim(this); this->unk_21C = this->unk_228; if (this->stateFlags & ENHORSE_DRAW) { @@ -2021,17 +2021,17 @@ void EnHorse_UpdateIngoHorseAnim(EnHorse* this) { this->action = ENHORSE_ACT_INGO_RACE; this->stateFlags &= ~ENHORSE_SANDDUST_SOUND; - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { if (this->animationIdx != ENHORSE_ANIM_IDLE) { animChanged = true; } this->animationIdx = ENHORSE_ANIM_IDLE; - } else if (this->actor.speedXZ <= 3.0f) { + } else if (this->actor.speed <= 3.0f) { if (this->animationIdx != ENHORSE_ANIM_WALK) { animChanged = true; } this->animationIdx = ENHORSE_ANIM_WALK; - } else if (this->actor.speedXZ <= 6.0f) { + } else if (this->actor.speed <= 6.0f) { if (this->animationIdx != ENHORSE_ANIM_TROT) { animChanged = true; } @@ -2044,13 +2044,13 @@ void EnHorse_UpdateIngoHorseAnim(EnHorse* this) { } if (this->animationIdx == ENHORSE_ANIM_WALK) { - animSpeed = this->actor.speedXZ * 0.5f; + animSpeed = this->actor.speed * 0.5f; } else if (this->animationIdx == ENHORSE_ANIM_TROT) { - animSpeed = this->actor.speedXZ * 0.25f; + animSpeed = this->actor.speed * 0.25f; Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } else if (this->animationIdx == ENHORSE_ANIM_GALLOP) { - animSpeed = this->actor.speedXZ * 0.2f; + animSpeed = this->actor.speed * 0.2f; Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } else { @@ -2079,25 +2079,25 @@ void EnHorse_UpdateIngoRace(EnHorse* this, PlayState* play) { EnHorse_UpdateIngoRaceInfo(this, play, &sIngoRace); if (!this->inRace) { - this->actor.speedXZ = 0.0f; - this->rider->speedXZ = 0.0f; + this->actor.speed = 0.0f; + this->rider->speed = 0.0f; if (this->animationIdx != ENHORSE_ANIM_IDLE) { EnHorse_UpdateIngoHorseAnim(this); } } if (this->animationIdx == ENHORSE_ANIM_WALK) { - playSpeed = this->actor.speedXZ * 0.5f; + playSpeed = this->actor.speed * 0.5f; } else if (this->animationIdx == ENHORSE_ANIM_TROT) { - playSpeed = this->actor.speedXZ * 0.25f; + playSpeed = this->actor.speed * 0.25f; } else if (this->animationIdx == ENHORSE_ANIM_GALLOP) { - playSpeed = this->actor.speedXZ * 0.2f; + playSpeed = this->actor.speed * 0.2f; } else { playSpeed = 1.0f; } this->skin.skelAnime.playSpeed = playSpeed; if (SkelAnime_Update(&this->skin.skelAnime) || - (this->animationIdx == ENHORSE_ANIM_IDLE && this->actor.speedXZ != 0.0f)) { + (this->animationIdx == ENHORSE_ANIM_IDLE && this->actor.speed != 0.0f)) { EnHorse_UpdateIngoHorseAnim(this); } @@ -2111,36 +2111,37 @@ void EnHorse_UpdateIngoRace(EnHorse* this, PlayState* play) { &((EnIn*)this->rider)->animationIdx, &((EnIn*)this->rider)->unk_1E0); } -void EnHorse_CsMoveInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) { +void EnHorse_CsMoveInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue) { this->animationIdx = ENHORSE_ANIM_GALLOP; this->cutsceneAction = 1; Animation_PlayOnceSetSpeed(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], - this->actor.speedXZ * 0.3f); + this->actor.speed * 0.3f); } void EnHorse_CsPlayHighJumpAnim(EnHorse* this, PlayState* play); -void EnHorse_CsMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction* action) { +void EnHorse_CsMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorCue* cue) { Vec3f endPos; - f32 speed = 8.0f; + f32 speedXZ = 8.0f; - endPos.x = action->endPos.x; - endPos.y = action->endPos.y; - endPos.z = action->endPos.z; - if (Math3D_Vec3f_DistXYZ(&endPos, &this->actor.world.pos) > speed) { + endPos.x = cue->endPos.x; + endPos.y = cue->endPos.y; + endPos.z = cue->endPos.z; + + if (Math3D_Vec3f_DistXYZ(&endPos, &this->actor.world.pos) > speedXZ) { EnHorse_RotateToPoint(this, play, &endPos, 400); - this->actor.speedXZ = speed; - this->skin.skelAnime.playSpeed = speed * 0.3f; + this->actor.speed = speedXZ; + this->skin.skelAnime.playSpeed = speedXZ * 0.3f; } else { this->actor.world.pos = endPos; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (SkelAnime_Update(&this->skin.skelAnime)) { EnHorse_PlayGallopingSfx(this); Rumble_Request(0.0f, 120, 8, 255); Animation_PlayOnceSetSpeed(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], - this->actor.speedXZ * 0.3f); + this->actor.speed * 0.3f); } } @@ -2173,22 +2174,22 @@ void EnHorse_CsPlayHighJumpAnim(EnHorse* this, PlayState* play) { Rumble_Request(0.0f, 170, 10, 10); } -void EnHorse_CsJumpInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) { +void EnHorse_CsJumpInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue) { EnHorse_CsSetAnimHighJump(this, play); this->cutsceneAction = 2; this->cutsceneFlags &= ~1; } -void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorAction* action) { +void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorCue* cue) { f32 temp_f2; if (this->cutsceneFlags & 1) { - EnHorse_CsMoveToPoint(this, play, action); + EnHorse_CsMoveToPoint(this, play, cue); return; } temp_f2 = this->skin.skelAnime.curFrame; this->stateFlags |= ENHORSE_JUMPING; - this->actor.speedXZ = 13.0f; + this->actor.speed = 13.0f; if (temp_f2 > 19.0f) { this->actor.gravity = -3.5f; if (this->actor.velocity.y == 0.0f) { @@ -2231,7 +2232,7 @@ void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorAction* action) { } } -void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) { +void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue) { this->animationIdx = ENHORSE_ANIM_REARING; this->cutsceneAction = 3; this->cutsceneFlags &= ~4; @@ -2245,8 +2246,8 @@ void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction* act Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f); } -void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorAction* action) { - this->actor.speedXZ = 0.0f; +void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorCue* cue) { + this->actor.speed = 0.0f; if (this->curFrame > 25.0f) { if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) { this->stateFlags |= ENHORSE_LAND2_SOUND; @@ -2268,65 +2269,74 @@ void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorAction* action) } } -void EnHorse_WarpMoveInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) { - this->actor.world.pos.x = action->startPos.x; - this->actor.world.pos.y = action->startPos.y; - this->actor.world.pos.z = action->startPos.z; +void EnHorse_WarpMoveInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + this->actor.prevPos = this->actor.world.pos; - this->actor.world.rot.y = action->urot.y; + + this->actor.world.rot.y = cue->rot.y; this->actor.shape.rot = this->actor.world.rot; + this->animationIdx = ENHORSE_ANIM_GALLOP; this->cutsceneAction = 4; Animation_PlayOnceSetSpeed(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], - this->actor.speedXZ * 0.3f); + this->actor.speed * 0.3f); } -void EnHorse_CsWarpMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorAction* action) { +void EnHorse_CsWarpMoveToPoint(EnHorse* this, PlayState* play, CsCmdActorCue* cue) { Vec3f endPos; - f32 speed = 8.0f; + f32 speedXZ = 8.0f; - endPos.x = action->endPos.x; - endPos.y = action->endPos.y; - endPos.z = action->endPos.z; - if (Math3D_Vec3f_DistXYZ(&endPos, &this->actor.world.pos) > speed) { + endPos.x = cue->endPos.x; + endPos.y = cue->endPos.y; + endPos.z = cue->endPos.z; + + if (Math3D_Vec3f_DistXYZ(&endPos, &this->actor.world.pos) > speedXZ) { EnHorse_RotateToPoint(this, play, &endPos, 400); - this->actor.speedXZ = speed; - this->skin.skelAnime.playSpeed = speed * 0.3f; + this->actor.speed = speedXZ; + this->skin.skelAnime.playSpeed = speedXZ * 0.3f; } else { this->actor.world.pos = endPos; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (SkelAnime_Update(&this->skin.skelAnime)) { EnHorse_PlayGallopingSfx(this); Rumble_Request(0.0f, 120, 8, 255); Animation_PlayOnceSetSpeed(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], - this->actor.speedXZ * 0.3f); + this->actor.speed * 0.3f); } } -void EnHorse_CsWarpRearingInit(EnHorse* this, PlayState* play, CsCmdActorAction* action) { - this->actor.world.pos.x = action->startPos.x; - this->actor.world.pos.y = action->startPos.y; - this->actor.world.pos.z = action->startPos.z; +void EnHorse_CsWarpRearingInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + this->actor.prevPos = this->actor.world.pos; - this->actor.world.rot.y = action->urot.y; + + this->actor.world.rot.y = cue->rot.y; this->actor.shape.rot = this->actor.world.rot; + this->animationIdx = ENHORSE_ANIM_REARING; this->cutsceneAction = 5; this->cutsceneFlags &= ~4; this->stateFlags &= ~ENHORSE_LAND2_SOUND; this->unk_21C = this->unk_228; + if (this->stateFlags & ENHORSE_DRAW) { Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } + Animation_Change(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], 1.0f, 0.0f, Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f); } -void EnHorse_CsWarpRearing(EnHorse* this, PlayState* play, CsCmdActorAction* action) { - this->actor.speedXZ = 0.0f; +void EnHorse_CsWarpRearing(EnHorse* this, PlayState* play, CsCmdActorCue* cue) { + this->actor.speed = 0.0f; if (this->curFrame > 25.0f) { if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) { this->stateFlags |= ENHORSE_LAND2_SOUND; @@ -2352,18 +2362,18 @@ void EnHorse_InitCutscene(EnHorse* this, PlayState* play) { this->playerControlled = false; this->action = ENHORSE_ACT_CS_UPDATE; this->cutsceneAction = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } -s32 EnHorse_GetCutsceneFunctionIndex(s32 csAction) { +s32 EnHorse_GetCutsceneFunctionIndex(s32 cueId) { s32 numActions = ARRAY_COUNT(sCsActionTable); // prevents unrolling s32 i; for (i = 0; i < numActions; i++) { - if (csAction == sCsActionTable[i].csAction) { + if (cueId == sCsActionTable[i].cueId) { return sCsActionTable[i].csFuncIdx; } - if (csAction < sCsActionTable[i].csAction) { + if (cueId < sCsActionTable[i].cueId) { return 0; } } @@ -2372,7 +2382,7 @@ s32 EnHorse_GetCutsceneFunctionIndex(s32 csAction) { void EnHorse_CutsceneUpdate(EnHorse* this, PlayState* play) { s32 csFunctionIdx; - CsCmdActorAction* linkCsAction = play->csCtx.linkAction; + CsCmdActorCue* playerCue = play->csCtx.playerCue; if (play->csCtx.state == 3) { this->playerControlled = 1; @@ -2381,22 +2391,25 @@ void EnHorse_CutsceneUpdate(EnHorse* this, PlayState* play) { EnHorse_Freeze(this); return; } - if (linkCsAction != NULL) { - csFunctionIdx = EnHorse_GetCutsceneFunctionIndex(linkCsAction->action); + if (playerCue != NULL) { + csFunctionIdx = EnHorse_GetCutsceneFunctionIndex(playerCue->id); + if (csFunctionIdx != 0) { if (this->cutsceneAction != csFunctionIdx) { if (this->cutsceneAction == 0) { - this->actor.world.pos.x = linkCsAction->startPos.x; - this->actor.world.pos.y = linkCsAction->startPos.y; - this->actor.world.pos.z = linkCsAction->startPos.z; - this->actor.world.rot.y = linkCsAction->urot.y; + this->actor.world.pos.x = playerCue->startPos.x; + this->actor.world.pos.y = playerCue->startPos.y; + this->actor.world.pos.z = playerCue->startPos.z; + + this->actor.world.rot.y = playerCue->rot.y; this->actor.shape.rot = this->actor.world.rot; + this->actor.prevPos = this->actor.world.pos; } this->cutsceneAction = csFunctionIdx; - sCutsceneInitFuncs[this->cutsceneAction](this, play, linkCsAction); + sCutsceneInitFuncs[this->cutsceneAction](this, play, playerCue); } - sCutsceneActionFuncs[this->cutsceneAction](this, play, linkCsAction); + sCutsceneActionFuncs[this->cutsceneAction](this, play, playerCue); } } } @@ -2428,12 +2441,12 @@ s32 EnHorse_UpdateHbaRaceInfo(EnHorse* this, PlayState* play, RaceInfo* raceInfo } this->actor.shape.rot.y = this->actor.world.rot.y; - if (this->actor.speedXZ < raceInfo->waypoints[this->curRaceWaypoint].speed && !(this->hbaFlags & 1)) { - this->actor.speedXZ += 0.4f; + if (this->actor.speed < raceInfo->waypoints[this->curRaceWaypoint].speedXZ && !(this->hbaFlags & 1)) { + this->actor.speed += 0.4f; } else { - this->actor.speedXZ -= 0.4f; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed -= 0.4f; + if (this->actor.speed < 0.0f) { + this->actor.speed = 0.0f; } } return 0; @@ -2446,7 +2459,7 @@ void EnHorse_InitHorsebackArchery(EnHorse* this) { this->soundTimer = 0; this->curRaceWaypoint = 0; this->hbaTimer = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnHorse_UpdateHbaAnim(this); } @@ -2455,17 +2468,17 @@ void EnHorse_UpdateHbaAnim(EnHorse* this) { f32 animSpeed; this->action = ENHORSE_ACT_HBA; - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { if (this->animationIdx != ENHORSE_ANIM_IDLE) { animChanged = true; } this->animationIdx = ENHORSE_ANIM_IDLE; - } else if (this->actor.speedXZ <= 3.0f) { + } else if (this->actor.speed <= 3.0f) { if (this->animationIdx != ENHORSE_ANIM_WALK) { animChanged = true; } this->animationIdx = ENHORSE_ANIM_WALK; - } else if (this->actor.speedXZ <= 6.0f) { + } else if (this->actor.speed <= 6.0f) { if (this->animationIdx != ENHORSE_ANIM_TROT) { animChanged = true; } @@ -2478,14 +2491,14 @@ void EnHorse_UpdateHbaAnim(EnHorse* this) { } if (this->animationIdx == ENHORSE_ANIM_WALK) { - animSpeed = this->actor.speedXZ * 0.5f; + animSpeed = this->actor.speed * 0.5f; } else if (this->animationIdx == ENHORSE_ANIM_TROT) { - animSpeed = this->actor.speedXZ * 0.25f; + animSpeed = this->actor.speed * 0.25f; Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); Rumble_Request(0.0f, 60, 8, 255); } else if (this->animationIdx == ENHORSE_ANIM_GALLOP) { - animSpeed = this->actor.speedXZ * 0.2f; + animSpeed = this->actor.speed * 0.2f; Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); Rumble_Request(0.0f, 120, 8, 255); @@ -2549,25 +2562,25 @@ void EnHorse_UpdateHorsebackArchery(EnHorse* this, PlayState* play) { } if (!this->hbaStarted) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->animationIdx != ENHORSE_ANIM_IDLE) { EnHorse_UpdateHbaAnim(this); } } if (this->animationIdx == ENHORSE_ANIM_WALK) { - playSpeed = this->actor.speedXZ * 0.5f; + playSpeed = this->actor.speed * 0.5f; } else if (this->animationIdx == ENHORSE_ANIM_TROT) { - playSpeed = this->actor.speedXZ * 0.25f; + playSpeed = this->actor.speed * 0.25f; } else if (this->animationIdx == ENHORSE_ANIM_GALLOP) { - playSpeed = this->actor.speedXZ * 0.2f; + playSpeed = this->actor.speed * 0.2f; } else { playSpeed = 1.0f; } this->skin.skelAnime.playSpeed = playSpeed; if (SkelAnime_Update(&this->skin.skelAnime) || - (this->animationIdx == ENHORSE_ANIM_IDLE && this->actor.speedXZ != 0.0f)) { + (this->animationIdx == ENHORSE_ANIM_IDLE && this->actor.speed != 0.0f)) { EnHorse_UpdateHbaAnim(this); } } @@ -2575,7 +2588,7 @@ void EnHorse_UpdateHorsebackArchery(EnHorse* this, PlayState* play) { void EnHorse_InitFleePlayer(EnHorse* this) { this->action = ENHORSE_ACT_FLEE_PLAYER; this->stateFlags |= ENHORSE_UNRIDEABLE; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnHorse_FleePlayer(EnHorse* this, PlayState* play) { @@ -2600,39 +2613,39 @@ void EnHorse_FleePlayer(EnHorse* this, PlayState* play) { // Run home if (playerDistToHome > 300.0f) { if (distToHome > 150.0f) { - this->actor.speedXZ += 0.4f; - if (this->actor.speedXZ > 8.0f) { - this->actor.speedXZ = 8.0f; + this->actor.speed += 0.4f; + if (this->actor.speed > 8.0f) { + this->actor.speed = 8.0f; } } else { - this->actor.speedXZ -= 0.47f; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed -= 0.47f; + if (this->actor.speed < 0.0f) { + this->actor.speed = 0.0f; } } } else { // Run away from Link if (distToPlayer < 300.0f) { - this->actor.speedXZ += 0.4f; - if (this->actor.speedXZ > 8.0f) { - this->actor.speedXZ = 8.0f; + this->actor.speed += 0.4f; + if (this->actor.speed > 8.0f) { + this->actor.speed = 8.0f; } } else { - this->actor.speedXZ -= 0.47f; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed -= 0.47f; + if (this->actor.speed < 0.0f) { + this->actor.speed = 0.0f; } } } - if (this->actor.speedXZ >= 6.0f) { // hoof it - this->skin.skelAnime.playSpeed = this->actor.speedXZ * 0.3f; + if (this->actor.speed >= 6.0f) { // hoof it + this->skin.skelAnime.playSpeed = this->actor.speed * 0.3f; nextAnim = ENHORSE_ANIM_GALLOP; - } else if (this->actor.speedXZ >= 3.0f) { // trot - this->skin.skelAnime.playSpeed = this->actor.speedXZ * 0.375f; + } else if (this->actor.speed >= 3.0f) { // trot + this->skin.skelAnime.playSpeed = this->actor.speed * 0.375f; nextAnim = ENHORSE_ANIM_TROT; - } else if (this->actor.speedXZ > 0.1f) { // walk - this->skin.skelAnime.playSpeed = this->actor.speedXZ * 0.75f; + } else if (this->actor.speed > 0.1f) { // walk + this->skin.skelAnime.playSpeed = this->actor.speed * 0.75f; nextAnim = ENHORSE_ANIM_WALK; EnHorse_PlayWalkingSfx(this); } else { // idle @@ -2752,7 +2765,7 @@ void EnHorse_BridgeJumpInit(EnHorse* this, PlayState* play) { this->bridgeJumpRelAngle = this->actor.world.rot.y - sBridgeJumps[this->bridgeJumpIdx].angle; this->bridgeJumpTimer = 0; this->actor.gravity = 0.0f; - this->actor.speedXZ = 0; + this->actor.speed = 0; Animation_Change(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], 1.5f, 0.0f, Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f); this->unk_21C = this->unk_228; @@ -2769,10 +2782,10 @@ void EnHorse_BridgeJumpInit(EnHorse* this, PlayState* play) { void EnHorse_StartBridgeJump(EnHorse* this, PlayState* play) { this->postDrawFunc = EnHorse_BridgeJumpInit; if (this->bridgeJumpIdx == 0) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGerudoValleyBridgeJumpFieldFortressCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGerudoValleyBridgeJumpFieldFortressCs); gSaveContext.cutsceneTrigger = 1; } else { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gGerudoValleyBridgeJumpFortressToFieldCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGerudoValleyBridgeJumpFortressToFieldCs); gSaveContext.cutsceneTrigger = 1; } } @@ -2802,7 +2815,7 @@ void EnHorse_BridgeJumpMove(EnHorse* this, PlayState* play) { } void EnHorse_CheckBridgeJumpLanding(EnHorse* this, PlayState* play) { - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; this->skin.skelAnime.playSpeed = 1.5f; if (SkelAnime_Update(&this->skin.skelAnime)) { this->stateFlags &= ~ENHORSE_JUMPING; @@ -2906,7 +2919,7 @@ void EnHorse_CheckFloors(EnHorse* this, PlayState* play) { f32 nx; f32 ny; f32 nz; - s32 galloping = this->actor.speedXZ > 8; + s32 galloping = this->actor.speed > 8; f32 dist; f32 waterHeight; WaterBox* waterBox; @@ -2959,7 +2972,7 @@ void EnHorse_CheckFloors(EnHorse* this, PlayState* play) { pos = frontPos; pos.y = this->yFront; dist = Math3D_DistPlaneToPos(nx, ny, nz, this->actor.floorPoly->dist, &pos); - if ((frontFloor != this->actor.floorPoly) && (this->actor.speedXZ >= 0.0f)) { + if ((frontFloor != this->actor.floorPoly) && (this->actor.speed >= 0.0f)) { if ((!(this->stateFlags & ENHORSE_JUMPING) && dist < -40.0f) || (this->stateFlags & ENHORSE_JUMPING && dist < -200.0f)) { EnHorse_ObstructMovement(this, play, 4, galloping); @@ -2970,7 +2983,7 @@ void EnHorse_CheckFloors(EnHorse* this, PlayState* play) { pos = backPos; pos.y = this->yBack; dist = Math3D_DistPlaneToPos(nx, ny, nz, this->actor.floorPoly->dist, &pos); - if (((backFloor != this->actor.floorPoly) && (this->actor.speedXZ <= 0.0f) && + if (((backFloor != this->actor.floorPoly) && (this->actor.speed <= 0.0f) && !(this->stateFlags & ENHORSE_JUMPING) && (dist < -40.0f)) || (this->stateFlags & ENHORSE_JUMPING && dist < -200.0f)) { EnHorse_ObstructMovement(this, play, 5, galloping); @@ -2980,7 +2993,7 @@ void EnHorse_CheckFloors(EnHorse* this, PlayState* play) { if (ny < 0.81915206f || // cos(35 degrees) SurfaceType_IsHorseBlocked(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId) || SurfaceType_GetFloorType(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId) == FLOOR_TYPE_7) { - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { EnHorse_ObstructMovement(this, play, 4, galloping); } else { EnHorse_ObstructMovement(this, play, 5, galloping); @@ -3135,8 +3148,8 @@ void EnHorse_UpdateBgCheckInfo(EnHorse* this, PlayState* play) { // void 0 trick required to match, but is surely not real. revisit at a later time if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) && Math_CosS(this->actor.wallYaw - ((void)0, this->actor.world).rot.y) < -0.3f) { - if (this->actor.speedXZ > 4.0f) { - this->actor.speedXZ -= 1.0f; + if (this->actor.speed > 4.0f) { + this->actor.speed -= 1.0f; Audio_PlaySfxGeneral(NA_SE_EV_HORSE_SANDDUST, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } @@ -3146,7 +3159,7 @@ void EnHorse_UpdateBgCheckInfo(EnHorse* this, PlayState* play) { return; } - if (this->actor.speedXZ < 0.0f) { + if (this->actor.speed < 0.0f) { return; } @@ -3155,8 +3168,8 @@ void EnHorse_UpdateBgCheckInfo(EnHorse* this, PlayState* play) { return; } - if (this->actor.speedXZ > 8.0f) { - if (this->actor.speedXZ < 12.8f) { + if (this->actor.speed > 8.0f) { + if (this->actor.speed < 12.8f) { intersectDist = 160.0f; movingFast = 0; } else { @@ -3298,9 +3311,8 @@ void EnHorse_UpdateBgCheckInfo(EnHorse* this, PlayState* play) { } else if (movingFast == false && obstacleHeight > 19.0f && obstacleHeight <= 40.0f) { EnHorse_Stub1(this); this->postDrawFunc = EnHorse_LowJumpInit; - } else if ((movingFast == true && this->actor.speedXZ < 13.8f && obstacleHeight > 19.0f && - obstacleHeight <= 72.0f) || - (this->actor.speedXZ > 13.8f && obstacleHeight <= 112.0f)) { + } else if ((movingFast == true && this->actor.speed < 13.8f && obstacleHeight > 19.0f && obstacleHeight <= 72.0f) || + (this->actor.speed > 13.8f && obstacleHeight <= 112.0f)) { EnHorse_Stub2(this); this->postDrawFunc = EnHorse_HighJumpInit; @@ -3430,7 +3442,7 @@ void EnHorse_TiltBody(EnHorse* this, PlayState* play) { s32 targetRoll; s16 turnVel; - speed = this->actor.speedXZ / this->boostSpeed; + speed = this->actor.speed / this->boostSpeed; turnVel = this->actor.shape.rot.y - this->lastYaw; targetRoll = -((s16)((1820.0f * speed) * (turnVel / 480.00003f))); rollDiff = targetRoll - this->actor.world.rot.z; @@ -3522,8 +3534,8 @@ void EnHorse_Update(Actor* thisx, PlayState* play2) { } } if (this->jntSph.elements[0].info.ocElemFlags & OCELEM_HIT) { - if (thisx->speedXZ > 6.0f) { - thisx->speedXZ -= 1.0f; + if (thisx->speed > 6.0f) { + thisx->speed -= 1.0f; } } if (this->jntSph.base.acFlags & AC_HIT) { @@ -3583,13 +3595,13 @@ void EnHorse_Update(Actor* thisx, PlayState* play2) { } } - if (thisx->speedXZ == 0.0f && !(this->stateFlags & ENHORSE_FLAG_19)) { + if (thisx->speed == 0.0f && !(this->stateFlags & ENHORSE_FLAG_19)) { thisx->colChkInfo.mass = 0xFF; } else { thisx->colChkInfo.mass = 0xFE; } - if (thisx->speedXZ >= 5.0f) { + if (thisx->speed >= 5.0f) { this->cyl1.base.atFlags |= AT_ON; } else { this->cyl1.base.atFlags &= ~AT_ON; diff --git a/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c b/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c index 5216c0852a..c2081c33a7 100644 --- a/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c +++ b/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c @@ -139,15 +139,15 @@ void func_80A686A8(EnHorseGanon* this, PlayState* play) { this->actor.shape.rot.y = this->actor.world.rot.y; if (Actor_WorldDistXZToActor(&this->actor, &GET_PLAYER(play)->actor) <= 300.0f) { - if (this->actor.speedXZ < 12.0f) { - this->actor.speedXZ += 1.0f; + if (this->actor.speed < 12.0f) { + this->actor.speed += 1.0f; } else { - this->actor.speedXZ -= 1.0f; + this->actor.speed -= 1.0f; } - } else if (this->actor.speedXZ < D_80A69248[this->unk_1EC].unk_6) { - this->actor.speedXZ += 0.5f; + } else if (this->actor.speed < D_80A69248[this->unk_1EC].unk_6) { + this->actor.speed += 0.5f; } else { - this->actor.speedXZ -= 0.5f; + this->actor.speed -= 0.5f; } } @@ -173,7 +173,7 @@ void EnHorseGanon_Init(Actor* thisx, PlayState* play) { this->actor.gravity = -3.5f; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawHorse, 20.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.focus.pos = this->actor.world.pos; this->action = 0; this->actor.focus.pos.y += 70.0f; @@ -204,7 +204,7 @@ void func_80A68AC4(EnHorseGanon* this) { } void func_80A68AF0(EnHorseGanon* this, PlayState* play) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; SkelAnime_Update(&this->skin.skelAnime); } @@ -214,12 +214,12 @@ void func_80A68B20(EnHorseGanon* this) { animationChanged = 0; this->action = 1; - if (this->actor.speedXZ <= 3.0f) { + if (this->actor.speed <= 3.0f) { if (this->currentAnimation != 2) { animationChanged = 1; } this->currentAnimation = 2; - } else if (this->actor.speedXZ <= 6.0f) { + } else if (this->actor.speed <= 6.0f) { if (this->currentAnimation != 3) { animationChanged = 1; } @@ -232,13 +232,13 @@ void func_80A68B20(EnHorseGanon* this) { } if (this->currentAnimation == 2) { - sp30 = this->actor.speedXZ / 3.0f; + sp30 = this->actor.speed / 3.0f; } else if (this->currentAnimation == 3) { - sp30 = this->actor.speedXZ / 5.0f; + sp30 = this->actor.speed / 5.0f; Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } else if (this->currentAnimation == 4) { - sp30 = this->actor.speedXZ / 7.0f; + sp30 = this->actor.speed / 7.0f; Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } else { diff --git a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c index d1304d129d..667069b310 100644 --- a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c +++ b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c @@ -123,11 +123,11 @@ f32 func_80A695A4(EnHorseLinkChild* this) { f32 result; if (this->animationIdx == 2) { - result = D_80A6AF64[this->animationIdx] * this->actor.speedXZ * (1.0f / 2.0f); + result = D_80A6AF64[this->animationIdx] * this->actor.speed * (1.0f / 2.0f); } else if (this->animationIdx == 3) { - result = D_80A6AF64[this->animationIdx] * this->actor.speedXZ * (1.0f / 3.0f); + result = D_80A6AF64[this->animationIdx] * this->actor.speed * (1.0f / 3.0f); } else if (this->animationIdx == 4) { - result = D_80A6AF64[this->animationIdx] * this->actor.speedXZ * (1.0f / 5.0f); + result = D_80A6AF64[this->animationIdx] * this->actor.speed * (1.0f / 5.0f); } else { result = D_80A6AF64[this->animationIdx]; } @@ -147,7 +147,7 @@ void EnHorseLinkChild_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.005f); this->actor.gravity = -3.5f; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawHorse, 20.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->action = 1; this->actor.focus.pos = this->actor.world.pos; this->actor.focus.pos.y += 70.0f; @@ -198,7 +198,7 @@ void func_80A6988C(EnHorseLinkChild* this) { } void func_80A698F4(EnHorseLinkChild* this, PlayState* play) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (SkelAnime_Update(&this->skin.skelAnime)) { func_80A6988C(this); } @@ -206,7 +206,7 @@ void func_80A698F4(EnHorseLinkChild* this, PlayState* play) { void func_80A6993C(EnHorseLinkChild* this, s32 newAnimationIdx) { this->action = 2; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (!((newAnimationIdx == 0) || (newAnimationIdx == 1))) { newAnimationIdx = 0; @@ -245,7 +245,7 @@ void func_80A699FC(EnHorseLinkChild* this, PlayState* play) { void func_80A69B7C(EnHorseLinkChild* this) { this->action = 1; this->animationIdx = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A695A4(this), 0.0f, Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, -5.0f); } @@ -277,13 +277,13 @@ void func_80A69C18(EnHorseLinkChild* this, PlayState* play) { return; } else if ((distFromLink < 1000.0f) && (distFromLink >= 300.0f)) { newAnimationIdx = 4; - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } else if ((distFromLink < 300.0f) && (distFromLink >= 150.0f)) { newAnimationIdx = 3; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; } else if ((distFromLink < 150.0f) && (distFromLink >= 70.0f)) { newAnimationIdx = 2; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; this->unk_1F0 = 0; } else { func_80A6993C(this, 1); @@ -304,7 +304,7 @@ void func_80A69C18(EnHorseLinkChild* this, PlayState* play) { void func_80A69EC0(EnHorseLinkChild* this) { this->action = 3; this->animationIdx = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A695A4(this), 0.0f, Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, -5.0f); } @@ -374,16 +374,16 @@ void func_80A6A068(EnHorseLinkChild* this, PlayState* play) { if (distLinkFromHome > 250.0f) { if (distFromHome >= 300.0f) { newAnimationIdx = 4; - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } else if ((distFromHome < 300.0f) && (distFromHome >= 150.0f)) { newAnimationIdx = 3; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; } else if ((distFromHome < 150.0f) && (distFromHome >= 70.0f)) { newAnimationIdx = 2; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; this->unk_1F0 = 0; } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->animationIdx == 0) { newAnimationIdx = animationEnded == true ? 1 : 0; } else { @@ -393,16 +393,16 @@ void func_80A6A068(EnHorseLinkChild* this, PlayState* play) { } else { if (distFromLink < 200.0f) { newAnimationIdx = 4; - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } else if (distFromLink < 300.0f) { newAnimationIdx = 3; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; } else if (distFromLink < 400.0f) { newAnimationIdx = 2; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; this->unk_1F0 = 0; } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->animationIdx == 0) { newAnimationIdx = animationEnded == true ? 1 : 0; } else { @@ -411,7 +411,7 @@ void func_80A6A068(EnHorseLinkChild* this, PlayState* play) { } } } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->animationIdx == 0) { newAnimationIdx = animationEnded == true ? 1 : 0; } else { @@ -448,7 +448,7 @@ void func_80A6A5A4(EnHorseLinkChild* this, PlayState* play) { &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); func_80A6A724(this); } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; yawDiff = Actor_WorldYawTowardActor(&this->actor, &GET_PLAYER(play)->actor) - this->actor.world.rot.y; // 0.7071 = cos(pi/4) if ((Math_CosS(yawDiff) < 0.7071f) && (this->animationIdx == 2)) { @@ -472,7 +472,7 @@ void func_80A6A724(EnHorseLinkChild* this) { this->action = 4; this->animationIdx = 2; this->unk_1E8 = false; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A695A4(this), 0.0f, Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, -5.0f); } @@ -505,25 +505,25 @@ void func_80A6A7D0(EnHorseLinkChild* this, PlayState* play) { if (!this->unk_1E8) { if (dist >= 300.0f) { newAnimationIdx = 4; - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } else if (dist >= 150.0f) { newAnimationIdx = 3; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; } else { newAnimationIdx = 2; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; this->unk_1F0 = 0; } } else { if (dist >= 300.0f) { newAnimationIdx = 4; - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } else if (dist >= 150.0f) { newAnimationIdx = 3; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; } else if (dist >= 70.0f) { newAnimationIdx = 2; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; this->unk_1F0 = 0; } else { func_80A6A4DC(this); diff --git a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c index 29577f43b5..f5316d1c85 100644 --- a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c +++ b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c @@ -164,11 +164,11 @@ f32 func_80A6B30C(EnHorseNormal* this) { f32 result; if (this->animationIdx == 4) { - result = D_80A6D4C8[this->animationIdx] * this->actor.speedXZ * (1 / 2.0f); + result = D_80A6D4C8[this->animationIdx] * this->actor.speed * (1 / 2.0f); } else if (this->animationIdx == 5) { - result = D_80A6D4C8[this->animationIdx] * this->actor.speedXZ * (1 / 3.0f); + result = D_80A6D4C8[this->animationIdx] * this->actor.speed * (1 / 3.0f); } else if (this->animationIdx == 6) { - result = D_80A6D4C8[this->animationIdx] * this->actor.speedXZ * (1 / 5.0f); + result = D_80A6D4C8[this->animationIdx] * this->actor.speed * (1 / 5.0f); } else { result = D_80A6D4C8[this->animationIdx]; } @@ -189,7 +189,7 @@ void EnHorseNormal_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.01f); this->actor.gravity = -3.5f; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawHorse, 20.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.focus.pos = this->actor.world.pos; this->actor.focus.pos.y += 70.0f; this->action = HORSE_CYCLE_ANIMATIONS; @@ -280,7 +280,7 @@ void func_80A6B91C(EnHorseNormal* this, PlayState* play) { this->action = HORSE_FOLLOW_PATH; this->animationIdx = 6; this->waypoint = 0; - this->actor.speedXZ = 7.0f; + this->actor.speed = 7.0f; Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f, Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, 0.0f); } @@ -323,7 +323,7 @@ void EnHorseNormal_NextAnimation(EnHorseNormal* this) { } void EnHorseNormal_CycleAnimations(EnHorseNormal* this, PlayState* play) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (SkelAnime_Update(&this->skin.skelAnime)) { EnHorseNormal_NextAnimation(this); @@ -335,7 +335,7 @@ void func_80A6BC48(EnHorseNormal* this) { this->animationIdx = 0; this->unk_21C = 0; this->unk_21E = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_218 = 0.0f; Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f, Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, 0.0f); @@ -374,27 +374,27 @@ void EnHorseNormal_Wander(EnHorseNormal* this, PlayState* play) { switch (D_80A6D510[this->animationIdx]) { case 0: func_80A6BD7C(this); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_218 = 0.0f; break; case 1: if (Rand_ZeroOne() < 0.1f) { this->unk_218 = 2.0f * Rand_ZeroOne() - 1.0f; } - this->actor.speedXZ += this->unk_218; - if (this->actor.speedXZ <= 0.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed += this->unk_218; + if (this->actor.speed <= 0.0f) { + this->actor.speed = 0.0f; this->unk_218 = 0.0f; phi_t0 = 0; - } else if (this->actor.speedXZ < 3.0f) { + } else if (this->actor.speed < 3.0f) { func_80A6B250(this); phi_t0 = 4; - } else if (this->actor.speedXZ < 6.0f) { + } else if (this->actor.speed < 6.0f) { phi_t0 = 5; - } else if (this->actor.speedXZ < 8.0f) { + } else if (this->actor.speed < 8.0f) { phi_t0 = 6; } else { - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; phi_t0 = 6; } if (Rand_ZeroOne() < 0.1f || (this->unk_21E == 0 && ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || @@ -448,7 +448,7 @@ void EnHorseNormal_Wander(EnHorseNormal* this, PlayState* play) { phi_t0 = 4; } else { phi_t0 = D_80A6D4F4[(s32)(Rand_ZeroOne() * 2)]; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_218 = 0.0f; } break; @@ -486,7 +486,7 @@ void func_80A6C4CC(EnHorseNormal* this) { this->animationIdx = 0; this->unk_21C = 0; this->unk_21E = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_218 = 0.0f; Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f, Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, 0.0f); @@ -519,7 +519,7 @@ void func_80A6C6B0(EnHorseNormal* this) { this->unk_21C = 0; this->unk_21E = 0; this->actor.flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_218 = 0.0f; Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f, Animation_GetLastFrame(sAnimations[this->animationIdx]), ANIMMODE_ONCE, 0.0f); @@ -592,7 +592,7 @@ void EnHorseNormal_Update(Actor* thisx, PlayState* play) { this->unk_204.y += 120.0f; Collider_UpdateCylinder(&this->actor, &this->bodyCollider); CollisionCheck_SetOC(play, &play->colChkCtx, &this->bodyCollider.base); - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { this->actor.colChkInfo.mass = MASS_IMMOVABLE; } else { this->actor.colChkInfo.mass = MASS_HEAVY; diff --git a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c index dd644e89be..e45645f1e7 100644 --- a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c +++ b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c @@ -84,7 +84,7 @@ static CollisionCheckInfoInit sColChkInfoInit = { 10, 35, 100, MASS_HEAVY }; typedef struct { /* 0x0 */ Vec3s pos; - /* 0x6 */ u8 speed; + /* 0x6 */ u8 speedXZ; } HorsePosSpeed; // size = 0x8 // these seem to be valid coords on Hyrule field, along with target speeds @@ -135,15 +135,15 @@ void EnHorseZelda_Move(EnHorseZelda* this, PlayState* play) { this->actor.shape.rot.y = this->actor.world.rot.y; if (Actor_WorldDistXZToActor(&this->actor, &GET_PLAYER(play)->actor) <= 300.0f) { - if (this->actor.speedXZ < 12.0f) { - this->actor.speedXZ += 1.0f; + if (this->actor.speed < 12.0f) { + this->actor.speed += 1.0f; } else { - this->actor.speedXZ -= 1.0f; + this->actor.speed -= 1.0f; } - } else if (this->actor.speedXZ < sHorseFieldPositions[this->fieldPosIndex].speed) { - this->actor.speedXZ += 0.5f; + } else if (this->actor.speed < sHorseFieldPositions[this->fieldPosIndex].speedXZ) { + this->actor.speed += 0.5f; } else { - this->actor.speedXZ -= 0.5f; + this->actor.speed -= 0.5f; } } @@ -154,7 +154,7 @@ void EnHorseZelda_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.0115f); this->actor.gravity = -3.5f; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawHorse, 20.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.focus.pos = this->actor.world.pos; this->action = 0; this->actor.focus.pos.y += 70.0f; @@ -188,7 +188,7 @@ void EnHorseZelda_SetupStop(EnHorseZelda* this) { } void EnHorseZelda_Stop(EnHorseZelda* this, PlayState* play) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (SkelAnime_Update(&this->skin.skelAnime)) { EnHorseZelda_SetupStop(this); } @@ -199,7 +199,7 @@ void EnHorseZelda_Spur(EnHorseZelda* this) { this->action = 1; this->animationIndex = 0; - speedMod = this->actor.speedXZ / 6.0f; + speedMod = this->actor.speed / 6.0f; Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); Animation_Change(&this->skin.skelAnime, sAnimationHeaders[this->animationIndex], @@ -233,7 +233,7 @@ void EnHorseZelda_Update(Actor* thisx, PlayState* play) { s32 pad; sActionFuncs[this->action](this, play); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_MoveForward(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 20.0f, 55.0f, 100.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 | diff --git a/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/src/overlays/actors/ovl_En_Hy/z_en_hy.c index 01d53d222a..cf87f88c91 100644 --- a/src/overlays/actors/ovl_En_Hy/z_en_hy.c +++ b/src/overlays/actors/ovl_En_Hy/z_en_hy.c @@ -926,7 +926,7 @@ void EnHy_InitImpl(EnHy* this, PlayState* play) { switch (this->actor.params & 0x7F) { case ENHY_TYPE_BOJ_3: if (this->path != NULL) { - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; } this->actionFunc = func_80A711B4; break; @@ -1009,7 +1009,7 @@ void EnHy_DoNothing(EnHy* this, PlayState* play) { void func_80A712C0(EnHy* this, PlayState* play) { if ((this->actor.xzDistToPlayer <= 100.0f) && (this->path != NULL)) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENHY_ANIM_7); - this->actor.speedXZ = 0.4f; + this->actor.speed = 0.4f; this->actionFunc = func_80A7134C; } @@ -1028,7 +1028,7 @@ void func_80A7134C(EnHy* this, PlayState* play) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ENHY_ANIM_7); } - this->actor.speedXZ = 0.4f; + this->actor.speed = 0.4f; distSq = Path_OrientAndGetDistSq(&this->actor, this->path, this->waypoint, &yaw); Math_SmoothStepToS(&this->actor.world.rot.y, yaw, 10, 1000, 1); this->actor.shape.rot = this->actor.world.rot; diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c index b842f984fa..479a9c6f3c 100644 --- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c +++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c @@ -307,10 +307,10 @@ void EnIceHono_SetupActionSmallFlame(EnIceHono* this) { this->alpha = 255; if (this->actor.params == 1) { this->smallFlameTargetYScale = (Rand_ZeroOne() * 0.005f) + 0.004f; - this->actor.speedXZ = (Rand_ZeroOne() * 1.6f) + 0.5f; + this->actor.speed = (Rand_ZeroOne() * 1.6f) + 0.5f; } else { this->smallFlameTargetYScale = (Rand_ZeroOne() * 0.005f) + 0.003f; - this->actor.speedXZ = (Rand_ZeroOne() * 2.0f) + 0.5f; + this->actor.speed = (Rand_ZeroOne() * 2.0f) + 0.5f; } } @@ -323,7 +323,7 @@ void EnIceHono_SmallFlameMove(EnIceHono* this, PlayState* play) { Math_StepToF(&this->actor.scale.y, 0.0001f, 0.00015f); } this->actor.scale.z = this->actor.scale.x; - Math_StepToF(&this->actor.speedXZ, 0, 0.06f); + Math_StepToF(&this->actor.speed, 0, 0.06f); Actor_MoveForward(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 10.0f, 10.0f, 0.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2); diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c index bd722c8019..40265cb6dc 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c @@ -292,7 +292,7 @@ void EnIk_SetupStandUp(EnIk* this) { Animation_Change(&this->skelAnime, &gIronKnuckleStandUpAnim, 0.0f, startFrame, endFrame, ANIMMODE_ONCE, 0.0f); this->unk_2F8 = 3; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnIk_SetupAction(this, EnIk_StandUp); } @@ -323,7 +323,7 @@ void EnIk_SetupIdle(EnIk* this) { this->actor.flags |= ACTOR_FLAG_0 | ACTOR_FLAG_2; this->unk_2F8 = 4; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_Change(&this->skelAnime, &object_ik_Anim_00DD50, 0.0f, 0.0f, endFrame, ANIMMODE_LOOP, 4.0f); EnIk_SetupAction(this, EnIk_Idle); } @@ -355,12 +355,12 @@ void EnIk_SetupWalkOrRun(EnIk* this) { if (this->armorStatusFlag == 0) { Animation_Change(&this->skelAnime, &gIronKnuckleWalkAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gIronKnuckleWalkAnim), ANIMMODE_LOOP, -4.0f); - this->actor.speedXZ = 0.9f; + this->actor.speed = 0.9f; } else { Animation_Change(&this->skelAnime, &gIronKnuckleRunAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gIronKnuckleRunAnim), ANIMMODE_LOOP, -4.0f); Actor_PlaySfx(&this->actor, NA_SE_EN_IRONNACK_DASH); - this->actor.speedXZ = 2.5f; + this->actor.speed = 2.5f; } this->actor.world.rot.y = this->actor.shape.rot.y; @@ -439,7 +439,7 @@ void EnIk_SetupVerticalAttack(EnIk* this) { this->unk_2FF = 1; this->unk_2F8 = 6; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_Change(&this->skelAnime, &gIronKnuckleVerticalAttackAnim, 1.5f, 0.0f, endFrame, ANIMMODE_ONCE, -4.0f); EnIk_SetupAction(this, EnIk_VerticalAttack); } @@ -509,7 +509,7 @@ void EnIk_SetupDoubleHorizontalAttack(EnIk* this) { this->unk_2FF = 2; this->unk_300 = 0; this->unk_2F8 = 6; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_Change(&this->skelAnime, &gIronKnuckleHorizontalAttackAnim, 0.0f, 0.0f, endFrame, ANIMMODE_ONCE_INTERP, -6.0f); this->isBreakingProp = false; @@ -571,7 +571,7 @@ void EnIk_SetupSingleHorizontalAttack(EnIk* this) { this->unk_2F8 = 1; this->unk_2FF = 3; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_Change(&this->skelAnime, &gIronKnuckleHorizontalAttackAnim, 0.5f, 13.0f, endFrame, ANIMMODE_ONCE_INTERP, -4.0f); EnIk_SetupAction(this, EnIk_SingleHorizontalAttack); @@ -601,7 +601,7 @@ void EnIk_SetupStopAndBlock(EnIk* this) { this->unk_2FE = 0; this->unk_2F8 = 9; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_Change(&this->skelAnime, &gIronKnuckleBlockAnim, 1.0f, 0.0f, endFrame, ANIMMODE_ONCE_INTERP, -4.0f); EnIk_SetupAction(this, EnIk_StopAndBlock); } @@ -634,11 +634,11 @@ void EnIk_SetupReactToAttack(EnIk* this) { if (ABS(yawDiff) <= 0x4000) { Animation_Change(&this->skelAnime, &gIronKnuckleFrontHitAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gIronKnuckleFrontHitAnim), ANIMMODE_ONCE, -4.0f); - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; } else { Animation_Change(&this->skelAnime, &gIronKnuckleBackHitAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gIronKnuckleBackHitAnim), ANIMMODE_ONCE, -4.0f); - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } this->unk_2FE = 0; @@ -646,7 +646,7 @@ void EnIk_SetupReactToAttack(EnIk* this) { } void EnIk_ReactToAttack(EnIk* this, PlayState* play) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 1.0f, 0.0f); if (BodyBreak_SpawnParts(&this->actor, &this->bodyBreak, play, this->actor.params + 4)) { this->bodyBreak.val = BODYBREAK_STATUS_FINISHED; @@ -667,7 +667,7 @@ void EnIk_SetupDie(EnIk* this) { this->unk_2FE = 0; this->unk_2F8 = 2; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_Change(&this->skelAnime, &gIronKnuckleDeathAnim, 1.0f, 0.0f, endFrame, ANIMMODE_ONCE, -4.0f); this->animationTimer = 24; Actor_PlaySfx(&this->actor, NA_SE_EN_IRONNACK_DEAD); @@ -1117,22 +1117,23 @@ s32 EnIk_UpdateSkelAnime(EnIk* this) { return SkelAnime_Update(&this->skelAnime); } -CsCmdActorAction* EnIk_GetNpcAction(PlayState* play, s32 actionIdx) { +CsCmdActorCue* EnIk_GetCue(PlayState* play, s32 cueChannel) { if (play->csCtx.state != CS_STATE_IDLE) { - return play->csCtx.npcActions[actionIdx]; + return play->csCtx.actorCues[cueChannel]; } else { return NULL; } } -void EnIk_MoveNpcToPos(EnIk* this, PlayState* play, s32 actionIdx) { - CsCmdActorAction* npcAction = EnIk_GetNpcAction(play, actionIdx); +void EnIk_SetStartPosRotFromCue(EnIk* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = EnIk_GetCue(play, cueChannel); - if (npcAction != NULL) { - this->actor.world.pos.x = npcAction->startPos.x; - this->actor.world.pos.y = npcAction->startPos.y; - this->actor.world.pos.z = npcAction->startPos.z; - this->actor.world.rot.y = this->actor.shape.rot.y = npcAction->rot.y; + if (cue != NULL) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + + this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y; } } @@ -1153,7 +1154,7 @@ void EnIk_SetupCsAction0(EnIk* this) { void EnIk_SetupCsAction1(EnIk* this, PlayState* play) { Animation_Change(&this->skelAnime, &gIronKnuckleNabooruSummonAxeAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gIronKnuckleNabooruSummonAxeAnim), ANIMMODE_ONCE, 0.0f); - EnIk_MoveNpcToPos(this, play, 4); + EnIk_SetStartPosRotFromCue(this, play, 4); this->csAction = IK_CS_ACTION_1; this->csDrawMode = IK_CS_DRAW_INTRO; this->actor.shape.shadowAlpha = 255; @@ -1170,7 +1171,7 @@ void EnIk_SetupCsAction2(EnIk* this) { } void EnIk_HandleEnemyChange(EnIk* this, PlayState* play, s32 animFinished) { - if (animFinished && (EnIk_GetNpcAction(play, 4) != NULL)) { + if (animFinished && (EnIk_GetCue(play, 4) != NULL)) { EnIk_ChangeToEnemy(this, play); } } @@ -1200,7 +1201,7 @@ void EnIk_SetupCsAction3(EnIk* this, PlayState* play) { Animation_Change(&this->skelAnime, &gIronKnuckleNabooruDeathAnim, 1.0f, 0.0f, endFrame, ANIMMODE_ONCE, 0.0f); this->csAction = IK_CS_ACTION_3; this->csDrawMode = IK_CS_DRAW_DEFEAT; - EnIk_MoveNpcToPos(this, play, 4); + EnIk_SetStartPosRotFromCue(this, play, 4); EnIk_PlayDeathSfx(this, play); this->actor.shape.shadowAlpha = 255; } @@ -1232,7 +1233,7 @@ void EnIk_CsAction4(EnIk* this, PlayState* play) { } void EnIk_CsAction5(EnIk* this, PlayState* play) { - if (EnIk_GetNpcAction(play, 4) == NULL) { + if (EnIk_GetCue(play, 4) == NULL) { Actor_Kill(&this->actor); } } @@ -1321,14 +1322,16 @@ void EnIk_CsDrawDefeat(EnIk* this, PlayState* play) { } void EnIk_HandleCsCues(EnIk* this, PlayState* play) { - CsCmdActorAction* npcAction = EnIk_GetNpcAction(play, 4); + CsCmdActorCue* cue = EnIk_GetCue(play, 4); + u32 nextCueId; + u32 currentCueId; - if (npcAction != NULL) { - s32 action = npcAction->action; - s32 currentNpcAction = this->npcAction; + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; - if (action != currentNpcAction) { - switch (action) { + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: EnIk_SetupCsAction0(this); break; @@ -1361,7 +1364,7 @@ void EnIk_HandleCsCues(EnIk* this, PlayState* play) { osSyncPrintf("En_Ik_inConfrontion_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->npcAction = action; + this->cueId = nextCueId; } } } @@ -1529,7 +1532,7 @@ void EnIk_StartDefeatCutscene(Actor* thisx, PlayState* play) { if (!Play_InCsMode(play)) { this->actor.update = EnIk_UpdateCutscene; this->actor.draw = EnIk_DrawCutscene; - Cutscene_SetSegment(play, gSpiritBossNabooruKnuckleDefeatCs); + Cutscene_SetScript(play, gSpiritBossNabooruKnuckleDefeatCs); gSaveContext.cutsceneTrigger = 1; Actor_SetScale(&this->actor, 0.01f); SET_EVENTCHKINF(EVENTCHKINF_3C); diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.h b/src/overlays/actors/ovl_En_Ik/z_en_ik.h index c7642f7733..efdb9f02d9 100644 --- a/src/overlays/actors/ovl_En_Ik/z_en_ik.h +++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.h @@ -113,7 +113,7 @@ typedef struct EnIk { /* 0x04C4 */ s32 blureIdx; /* 0x04C8 */ s32 csAction; /* 0x04CC */ s32 csDrawMode; - /* 0x04D0 */ u32 npcAction; + /* 0x04D0 */ u32 cueId; /* 0x04D4 */ s32 isAxeSummoned; /* 0x04D8 */ char unk_4D8[0x04]; } EnIk; // size = 0x04DC diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c index 9148a4962f..8c14328e78 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -790,7 +790,7 @@ void func_80A7AA40(EnIn* this, PlayState* play) { Message_StartTextbox(play, this->actor.textId, NULL); this->interactInfo.talkState = NPC_TALK_STATE_TALKING; this->unk_1FC = 0; - play->csCtx.frames = 0; + play->csCtx.curFrame = 0; Letterbox_SetSizeTarget(32); Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT); this->actionFunc = func_80A7ABD4; @@ -826,11 +826,11 @@ void func_80A7ABD4(EnIn* this, PlayState* play) { } } } else { - if (play->csCtx.frames++ >= 50) { + if (play->csCtx.curFrame++ >= 50) { this->actionFunc = func_80A7AE84; return; } - if (play->csCtx.frames == 44) { + if (play->csCtx.curFrame == 44) { Actor_PlaySfx(&this->actor, NA_SE_EV_RONRON_DOOR_CLOSE); } Math_SmoothStepToF(&this->subCamAtOffset.x, 0.0f, 0.06f, 10000.0f, 0.0f); diff --git a/src/overlays/actors/ovl_En_Insect/z_en_insect.c b/src/overlays/actors/ovl_En_Insect/z_en_insect.c index a6c924eb3b..e64b6ea5a4 100644 --- a/src/overlays/actors/ovl_En_Insect/z_en_insect.c +++ b/src/overlays/actors/ovl_En_Insect/z_en_insect.c @@ -263,9 +263,9 @@ void EnInsect_SlowDown(EnInsect* this, PlayState* play) { type = this->actor.params & 3; - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.1f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.1f, 0.5f, 0.0f); - playSpeed = (Rand_ZeroOne() * 0.8f) + (this->actor.speedXZ * 1.2f); + playSpeed = (Rand_ZeroOne() * 0.8f) + (this->actor.speed * 1.2f); this->skelAnime.playSpeed = CLAMP(playSpeed, 0.0f, 1.9f); SkelAnime_Update(&this->skelAnime); @@ -299,7 +299,7 @@ void EnInsect_Crawl(EnInsect* this, PlayState* play) { s16 yaw; s16 type = this->actor.params & 3; - Math_SmoothStepToF(&this->actor.speedXZ, 1.5f, 0.1f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 1.5f, 0.1f, 0.5f, 0.0f); if (EnInsect_XZDistanceSquared(&this->actor.world.pos, &this->actor.home.pos) > 1600.0f || (this->actionTimer < 4)) { @@ -311,7 +311,7 @@ void EnInsect_Crawl(EnInsect* this, PlayState* play) { } this->actor.shape.rot.y = this->actor.world.rot.y; - this->skelAnime.playSpeed = CLAMP(this->actor.speedXZ * 1.4f, 0.7f, 1.9f); + this->skelAnime.playSpeed = CLAMP(this->actor.speed * 1.4f, 0.7f, 1.9f); SkelAnime_Update(&this->skelAnime); @@ -346,7 +346,7 @@ void EnInsect_RunFromPlayer(EnInsect* this, PlayState* play) { s16 yaw; s16 playerIsClose = this->actor.xzDistToPlayer < 40.0f; - Math_SmoothStepToF(&this->actor.speedXZ, 1.8f, 0.1f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 1.8f, 0.1f, 0.5f, 0.0f); if (EnInsect_XZDistanceSquared(&this->actor.world.pos, &this->actor.home.pos) > 25600.0f || this->actionTimer < 4) { yaw = Math_Vec3f_Yaw(&this->actor.world.pos, &this->actor.home.pos); @@ -368,7 +368,7 @@ void EnInsect_RunFromPlayer(EnInsect* this, PlayState* play) { Math_ScaledStepToS(&this->actor.world.rot.y, yaw, 2000); } this->actor.shape.rot.y = this->actor.world.rot.y; - this->skelAnime.playSpeed = CLAMP(this->actor.speedXZ * 1.6f, 0.8f, 1.9f); + this->skelAnime.playSpeed = CLAMP(this->actor.speed * 1.6f, 0.8f, 1.9f); SkelAnime_Update(&this->skelAnime); if (this->actionTimer <= 0 || !playerIsClose) { @@ -384,7 +384,7 @@ void EnInsect_SetupCaught(EnInsect* this) { Actor_SetScale(&this->actor, 0.001f); this->actor.draw = NULL; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnInsect_SetCrawlAnim(this); @@ -426,7 +426,7 @@ void EnInsect_Dig(EnInsect* this, PlayState* play) { s32 pad[2]; Vec3f velocity; - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.1f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.1f, 0.5f, 0.0f); Math_StepToS(&this->actor.shape.rot.x, 10922, 352); Actor_SetScale(&this->actor, CLAMP_MIN(this->actor.scale.x - 0.0002f, 0.001f)); @@ -472,9 +472,9 @@ void EnInsect_WalkOnWater(EnInsect* this, PlayState* play) { type = this->actor.params & 3; if (this->actionTimer > 80) { - Math_StepToF(&this->actor.speedXZ, 0.6f, 0.08f); + Math_StepToF(&this->actor.speed, 0.6f, 0.08f); } else { - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.02f); + Math_StepToF(&this->actor.speed, 0.0f, 0.02f); } this->actor.velocity.y = 0.0f; this->actor.world.pos.y += this->actor.yDistToWater; @@ -523,7 +523,7 @@ void EnInsect_SetupDrown(EnInsect* this) { this->actionTimer = 100; EnInsect_SetCrawlAnim(this); this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.minVelocityY = -0.8f; this->actor.gravity = -0.04f; this->insectFlags &= ~(INSECT_FLAG_0 | INSECT_FLAG_1); @@ -635,21 +635,21 @@ void EnInsect_Dropped(EnInsect* this, PlayState* play) { Actor_SetScale(&this->actor, CLAMP_MAX(thisTemp->actor.scale.x + 0.0008f, 0.01f)); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - Math_SmoothStepToF(&this->actor.speedXZ, this->unk_324, 0.1f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, this->unk_324, 0.1f, 0.5f, 0.0f); Math_ScaledStepToS(&this->actor.world.rot.y, this->unk_328, 2000); sp50 = Math_ScaledStepToS(&this->actor.world.rot.x, 0, 2000); this->actor.shape.rot.y = this->actor.world.rot.y; this->actor.shape.rot.x = this->actor.world.rot.x; } else { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.1f, 0.5f, 0.0f); - this->actor.speedXZ += (Rand_ZeroOne() - 0.5f) * 0.14f; + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.1f, 0.5f, 0.0f); + this->actor.speed += (Rand_ZeroOne() - 0.5f) * 0.14f; this->actor.velocity.y += Rand_ZeroOne() * 0.12f; this->actor.world.rot.y += this->unk_316; this->actor.shape.rot.y = this->actor.world.rot.y; this->actor.shape.rot.x -= 2000; } - phi_f2 = Rand_ZeroOne() * 0.5f + this->actor.speedXZ * 1.3f; + phi_f2 = Rand_ZeroOne() * 0.5f + this->actor.speed * 1.3f; if (phi_f2 < 0.0f) { this->skelAnime.playSpeed = 0.0f; } else { diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c index b57ab1a29a..e61841015e 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -403,8 +403,8 @@ void EnIshi_LiftedUp(EnIshi* this, PlayState* play) { } void EnIshi_SetupFly(EnIshi* this) { - this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speedXZ; - this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speedXZ; + this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speed; + this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speed; if ((this->actor.params & 1) == ROCK_SMALL) { sRotSpeedX = (Rand_ZeroOne() - 0.5f) * 16000.0f; sRotSpeedY = (Rand_ZeroOne() - 0.5f) * 2400.0f; diff --git a/src/overlays/actors/ovl_En_Jj/z_en_jj.c b/src/overlays/actors/ovl_En_Jj/z_en_jj.c index 5dec617659..cc0c84380d 100644 --- a/src/overlays/actors/ovl_En_Jj/z_en_jj.c +++ b/src/overlays/actors/ovl_En_Jj/z_en_jj.c @@ -215,7 +215,7 @@ void EnJj_BeginCutscene(EnJj* this, PlayState* play) { this->cutsceneCountdownTimer--; } else { EnJj_SetupAction(this, EnJj_RemoveDust); - play->csCtx.segment = D_80A88164; + play->csCtx.script = D_80A88164; gSaveContext.cutsceneTrigger = 1; DynaPoly_DisableCollision(play, &play->colCtx.dyna, bodyCollisionActor->bgId); func_8005B1A4(GET_ACTIVE_CAM(play)); @@ -225,7 +225,7 @@ void EnJj_BeginCutscene(EnJj* this, PlayState* play) { } void EnJj_CutsceneUpdate(EnJj* this, PlayState* play) { - switch (play->csCtx.npcActions[2]->action) { + switch (play->csCtx.actorCues[2]->id) { case 1: if (this->unk_30A & 2) { this->eyeIndex = 0; @@ -286,7 +286,7 @@ void EnJj_UpdateStaticCollision(Actor* thisx, PlayState* play) { void EnJj_Update(Actor* thisx, PlayState* play) { EnJj* this = (EnJj*)thisx; - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[2] != NULL)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[2] != NULL)) { EnJj_CutsceneUpdate(this, play); } else { this->actionFunc(this, play); diff --git a/src/overlays/actors/ovl_En_Jj/z_en_jj_cutscene_data.inc.c b/src/overlays/actors/ovl_En_Jj/z_en_jj_cutscene_data.inc.c index 9399075ab7..8405db958b 100644 --- a/src/overlays/actors/ovl_En_Jj/z_en_jj_cutscene_data.inc.c +++ b/src/overlays/actors/ovl_En_Jj/z_en_jj_cutscene_data.inc.c @@ -4,155 +4,155 @@ // clang-format off static CutsceneData D_80A88164[] = { CS_BEGIN_CUTSCENE(26, 1629), - CS_PLAYER_ACTION_LIST(4), - CS_PLAYER_ACTION(0x0005, 0, 240, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0003, 240, 255, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0006, 255, 285, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0020, 285, 300, 0x0000, 0xC000, 0x0000, -1732, 52, -44, -1537, 109, -44, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_NPC_ACTION_LIST(68, 4), - CS_NPC_ACTION(0x0001, 0, 234, 0x0000, 0x4000, 0x0000, -1665, 52, -44, -1665, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_NPC_ACTION(0x0002, 234, 241, 0x41F8, 0x0000, 0x0000, -1665, 52, -44, -1603, 130, -47, 8.857142f, 11.142858f, -8.857142f), - CS_NPC_ACTION(0x0002, 241, 280, 0x4031, 0x0000, 0x0000, -1603, 130, -47, -549, 130, -52, 27.02564f, 0.0f, -27.02564f), - CS_NPC_ACTION(0x0003, 280, 300, 0x0000, 0x0000, 0x0000, -549, 130, -52, -549, 130, -52, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(67, 5), - CS_NPC_ACTION(0x0001, 0, 93, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0003, 93, 121, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0001, 121, 146, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 146, 241, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0001, 241, 441, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(69, 3), - CS_NPC_ACTION(0x0001, 0, 90, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -33, 9, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 90, 330, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -62, 22, 0.0f, -0.12083333f, 0.0f), - CS_NPC_ACTION(0x0003, 330, 380, 0x0000, 0x0000, 0x0000, 0, -62, 22, 0, -62, 22, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE_LIST(4), + CS_PLAYER_CUE(0x0005, 0, 240, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0003, 240, 255, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0006, 255, 285, 0x0000, 0x4000, 0x0000, -1732, 52, -44, -1732, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0020, 285, 300, 0x0000, 0xC000, 0x0000, -1732, 52, -44, -1537, 109, -44, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_ACTOR_CUE_LIST(68, 4), + CS_ACTOR_CUE(0x0001, 0, 234, 0x0000, 0x4000, 0x0000, -1665, 52, -44, -1665, 52, -44, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_ACTOR_CUE(0x0002, 234, 241, 0x41F8, 0x0000, 0x0000, -1665, 52, -44, -1603, 130, -47, 8.857142f, 11.142858f, -8.857142f), + CS_ACTOR_CUE(0x0002, 241, 280, 0x4031, 0x0000, 0x0000, -1603, 130, -47, -549, 130, -52, 27.02564f, 0.0f, -27.02564f), + CS_ACTOR_CUE(0x0003, 280, 300, 0x0000, 0x0000, 0x0000, -549, 130, -52, -549, 130, -52, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(67, 5), + CS_ACTOR_CUE(0x0001, 0, 93, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0003, 93, 121, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0001, 121, 146, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 146, 241, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0001, 241, 441, 0x0000, 0x0000, 0x0000, 0, 51, 124, 0, 51, 124, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(69, 3), + CS_ACTOR_CUE(0x0001, 0, 90, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -33, 9, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 90, 330, 0x0000, 0x0000, 0x0000, 0, -33, 9, 0, -62, 22, 0.0f, -0.12083333f, 0.0f), + CS_ACTOR_CUE(0x0003, 330, 380, 0x0000, 0x0000, 0x0000, 0, -62, 22, 0, -62, 22, 0.0f, 0.0f, 0.0f), CS_MISC_LIST(1), - CS_MISC(0x000C, 1095, 1161, 0x0000, 0x00000000, 0xFFFFFFD2, 0x00000000, 0xFFFFFFD0, 0xFFFFFFD2, 0x00000000, 0xFFFFFFD0, 0x00000000, 0x00000000, 0x00000000), - CS_SCENE_TRANS_FX(0x0009, 0, 10), - CS_PLAYER_ACTION_LIST(1), - CS_PLAYER_ACTION(0x0035, 300, 1629, 0x0000, 0x0000, 0x0000, -1630, 52, -52, -1630, 52, -52, 0.0f, 0.0f, 0.0f), - CS_CAM_EYE_LIST(0, 1091), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x015C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x016D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x017E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0223), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.399944f, -1641, 95, -41, 0x7065), - CS_CAM_EYE_LIST(60, 1151), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x015C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x016D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x017E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x0223), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.399944f, -1532, 251, 222, 0x7065), - CS_CAM_EYE_LIST(90, 351), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1698, 382, 455, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1698, 382, 455, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1698, 382, 455, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1694, 380, 451, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 32.999897f, -1694, 380, 451, 0xAC10), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 32.999897f, -1694, 380, 451, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 32.999897f, -1694, 380, 451, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 32.999897f, -1694, 380, 451, 0x0164), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 32.999897f, -1694, 380, 451, 0xAD78), - CS_CAM_EYE_LIST(220, 392), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0xAC10), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000), - CS_CAM_EYE_LIST(240, 1331), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -1810, 65, -15, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -1810, 65, -15, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -1810, 65, -15, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -1810, 65, -15, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.599945f, -1810, 65, -15, 0xAC10), - CS_CAM_EYE_LIST(280, 1371), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -1531, 95, -7, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -1531, 95, -7, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -1531, 95, -7, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, -1531, 95, -7, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.599945f, -1531, 95, -7, 0xAC10), - CS_CAM_EYE_LIST(310, 1421), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1717, 83, -59, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1717, 83, -59, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1649, 177, -59, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1533, 224, -59, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -1243, 180, -59, 0xAC10), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -953, 71, -55, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -953, 71, -55, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, -953, 71, -55, 0x0164), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.399944f, -953, 71, -55, 0xAD78), - CS_CAM_EYE_LIST(355, 1466), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0xAC34), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0x4428), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0xAC10), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.600002f, -1830, 103, 18, 0x0000), - CS_CAM_AT_LIST(0, 1120), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.399944f, -1724, -5, -45, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.399944f, -1724, -5, -45, 0xAC10), - CS_CAM_AT_LIST(60, 1180), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1440, 241, 134, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1440, 241, 134, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.399944f, -1440, 241, 134, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1440, 241, 134, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.399944f, -1440, 241, 134, 0xAC10), - CS_CAM_AT_LIST(90, 380), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1610, 348, 373, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1610, 348, 373, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 45.399944f, -1610, 348, 373, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 35.399906f, -1614, 338, 367, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 32.999897f, -1614, 338, 367, 0xAC10), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 32.999897f, -1614, 338, 367, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 32.999897f, -1614, 338, 367, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 32.999897f, -1614, 338, 367, 0x0164), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 32.999897f, -1614, 338, 367, 0xAD78), - CS_CAM_AT_LIST(220, 421), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 70, 45.399944f, -1724, -5, -45, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 5, 45.399944f, -1724, -5, -45, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 6, 45.799946f, -1593, 150, -146, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1531, 152, -75, 0xAC10), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -1531, 152, -75, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.399944f, -1531, 152, -75, 0x0000), - CS_CAM_AT_LIST(240, 1360), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -1712, 74, -37, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -1712, 74, -37, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.599945f, -1712, 74, -37, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -1712, 74, -37, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.599945f, -1712, 74, -37, 0xAC10), - CS_CAM_AT_LIST(280, 1400), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -1619, 99, -50, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -1619, 99, -50, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.599945f, -1619, 99, -50, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, -1619, 99, -50, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.599945f, -1619, 99, -50, 0xAC10), - CS_CAM_AT_LIST(310, 1450), - CS_CAM_AT(CS_CMD_CONTINUE, 0x0B, 30, 90.9996f, -1610, 141, -59, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x09, 10, 90.79961f, -1599, 114, -57, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0xFC, 10, 90.39961f, -1528, 192, -54, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 90.59961f, -1427, 164, -54, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0xCB, 10, 90.39961f, -1138, 119, -37, 0xAC10), - CS_CAM_AT(CS_CMD_CONTINUE, 0x20, 10, 90.39961f, -832, 50, -51, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.399944f, -836, 35, -51, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, -836, 35, -51, 0x0164), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.399944f, -836, 35, -51, 0xAD78), - CS_CAM_AT_LIST(355, 1495), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1706, 111, -6, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1706, 111, -6, 0xAC34), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.600002f, -1706, 111, -6, 0x4428), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.600002f, -1721, 82, -42, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 60.600002f, -1721, 82, -42, 0xAC10), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1721, 82, -42, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.600002f, -1721, 82, -42, 0x0000), - CS_SCENE_TRANS_FX(0x000B, 335, 342), - CS_TERMINATOR(JABU_JABU_INTRO, 345, 395), - CS_NPC_ACTION_LIST(62, 1), - CS_NPC_ACTION(0x0001, 305, 494, 0x0000, 0x0000, 0x0000, -1399, 452, -53, -1399, 452, -53, 0.0f, 0.0f, 0.0f), + CS_MISC(CS_MISC_STOP_CUTSCENE, 1095, 1161, 0x0000, 0x00000000, 0xFFFFFFD2, 0x00000000, 0xFFFFFFD0, 0xFFFFFFD2, 0x00000000, 0xFFFFFFD0, 0x00000000, 0x00000000, 0x00000000), + CS_TRANSITION(CS_TRANS_TRIGGER_INSTANCE, 0, 10), + CS_PLAYER_CUE_LIST(1), + CS_PLAYER_CUE(0x0035, 300, 1629, 0x0000, 0x0000, 0x0000, -1630, 52, -52, -1630, 52, -52, 0.0f, 0.0f, 0.0f), + CS_CAM_EYE_SPLINE(0, 1091), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x015C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x016D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x017E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0223), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.399944f, -1641, 95, -41, 0x7065), + CS_CAM_EYE_SPLINE(60, 1151), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x015C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x016D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x017E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1532, 251, 222, 0x0223), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.399944f, -1532, 251, 222, 0x7065), + CS_CAM_EYE_SPLINE(90, 351), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1698, 382, 455, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1698, 382, 455, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1698, 382, 455, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1694, 380, 451, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.999897f, -1694, 380, 451, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.999897f, -1694, 380, 451, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.999897f, -1694, 380, 451, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 32.999897f, -1694, 380, 451, 0x0164), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 32.999897f, -1694, 380, 451, 0xAD78), + CS_CAM_EYE_SPLINE(220, 392), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.399944f, -1641, 95, -41, 0x0000), + CS_CAM_EYE_SPLINE(240, 1331), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -1810, 65, -15, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -1810, 65, -15, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -1810, 65, -15, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -1810, 65, -15, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.599945f, -1810, 65, -15, 0xAC10), + CS_CAM_EYE_SPLINE(280, 1371), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -1531, 95, -7, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -1531, 95, -7, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -1531, 95, -7, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, -1531, 95, -7, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.599945f, -1531, 95, -7, 0xAC10), + CS_CAM_EYE_SPLINE(310, 1421), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1717, 83, -59, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1717, 83, -59, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1649, 177, -59, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1533, 224, -59, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -1243, 180, -59, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -953, 71, -55, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -953, 71, -55, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, -953, 71, -55, 0x0164), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.399944f, -953, 71, -55, 0xAD78), + CS_CAM_EYE_SPLINE(355, 1466), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1830, 103, 18, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.600002f, -1830, 103, 18, 0x0000), + CS_CAM_AT_SPLINE(0, 1120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.399944f, -1724, -5, -45, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.399944f, -1724, -5, -45, 0xAC10), + CS_CAM_AT_SPLINE(60, 1180), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1440, 241, 134, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1440, 241, 134, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.399944f, -1440, 241, 134, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1440, 241, 134, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.399944f, -1440, 241, 134, 0xAC10), + CS_CAM_AT_SPLINE(90, 380), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1610, 348, 373, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1610, 348, 373, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 45.399944f, -1610, 348, 373, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 35.399906f, -1614, 338, 367, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.999897f, -1614, 338, 367, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.999897f, -1614, 338, 367, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.999897f, -1614, 338, 367, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 32.999897f, -1614, 338, 367, 0x0164), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 32.999897f, -1614, 338, 367, 0xAD78), + CS_CAM_AT_SPLINE(220, 421), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1724, -5, -45, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 70, 45.399944f, -1724, -5, -45, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 5, 45.399944f, -1724, -5, -45, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 6, 45.799946f, -1593, 150, -146, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1531, 152, -75, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -1531, 152, -75, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.399944f, -1531, 152, -75, 0x0000), + CS_CAM_AT_SPLINE(240, 1360), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -1712, 74, -37, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -1712, 74, -37, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.599945f, -1712, 74, -37, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -1712, 74, -37, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.599945f, -1712, 74, -37, 0xAC10), + CS_CAM_AT_SPLINE(280, 1400), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -1619, 99, -50, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -1619, 99, -50, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.599945f, -1619, 99, -50, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, -1619, 99, -50, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.599945f, -1619, 99, -50, 0xAC10), + CS_CAM_AT_SPLINE(310, 1450), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x0B, 30, 90.9996f, -1610, 141, -59, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x09, 10, 90.79961f, -1599, 114, -57, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0xFC, 10, 90.39961f, -1528, 192, -54, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 90.59961f, -1427, 164, -54, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0xCB, 10, 90.39961f, -1138, 119, -37, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x20, 10, 90.39961f, -832, 50, -51, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.399944f, -836, 35, -51, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, -836, 35, -51, 0x0164), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.399944f, -836, 35, -51, 0xAD78), + CS_CAM_AT_SPLINE(355, 1495), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1706, 111, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1706, 111, -6, 0xAC34), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.600002f, -1706, 111, -6, 0x4428), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.600002f, -1721, 82, -42, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.600002f, -1721, 82, -42, 0xAC10), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1721, 82, -42, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.600002f, -1721, 82, -42, 0x0000), + CS_TRANSITION(CS_TRANS_BLACK_FILL_IN, 335, 342), + CS_DESTINATION(CS_DEST_JABU_JABU, 345, 395), + CS_ACTOR_CUE_LIST(62, 1), + CS_ACTOR_CUE(0x0001, 305, 494, 0x0000, 0x0000, 0x0000, -1399, 452, -53, -1399, 452, -53, 0.0f, 0.0f, 0.0f), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index 5d74d9a584..662354825d 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -215,7 +215,7 @@ void func_80A8F75C(EnKakasi* this, PlayState* play) { if (player->stateFlags2 & PLAYER_STATE2_24) { this->subCamId = OnePointCutscene_Init(play, 2260, -99, &this->actor, CAM_ID_MAIN); - func_8010BD58(play, OCARINA_ACTION_SCARECROW_LONG_RECORDING); + Message_StartOcarina(play, OCARINA_ACTION_SCARECROW_LONG_RECORDING); this->unk_19A = 0; this->unk_1B8 = 0.0; player->stateFlags2 |= PLAYER_STATE2_23; @@ -269,7 +269,7 @@ void func_80A8F9C8(EnKakasi* this, PlayState* play) { this->subCamId = OnePointCutscene_Init(play, 2270, -99, &this->actor, CAM_ID_MAIN); play->msgCtx.msgMode = MSGMODE_PAUSED; func_8002DF54(play, NULL, PLAYER_CSMODE_8); - func_8010BD58(play, OCARINA_ACTION_SCARECROW_LONG_PLAYBACK); + Message_StartOcarina(play, OCARINA_ACTION_SCARECROW_LONG_PLAYBACK); this->actionFunc = func_80A8FAA4; } } diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c index b53d8e8521..f0fa532501 100644 --- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c +++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c @@ -269,7 +269,7 @@ void func_80A91348(EnKakasi3* this, PlayState* play) { void func_80A915B8(EnKakasi3* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(play)) { Message_CloseTextbox(play); - func_8010BD58(play, OCARINA_ACTION_SCARECROW_SPAWN_RECORDING); + Message_StartOcarina(play, OCARINA_ACTION_SCARECROW_SPAWN_RECORDING); this->actionFunc = func_80A91620; } } @@ -312,7 +312,7 @@ void func_80A91760(EnKakasi3* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); if (this->dialogState == Message_GetState(&play->msgCtx) && Message_ShouldAdvance(play)) { play->msgCtx.msgMode = MSGMODE_PAUSED; - func_8010BD58(play, OCARINA_ACTION_SCARECROW_SPAWN_PLAYBACK); + Message_StartOcarina(play, OCARINA_ACTION_SCARECROW_SPAWN_PLAYBACK); this->actionFunc = func_80A917FC; this->subCamId = OnePointCutscene_Init(play, 2280, -99, &this->actor, CAM_ID_MAIN); } @@ -333,7 +333,7 @@ void func_80A917FC(EnKakasi3* this, PlayState* play) { void func_80A9187C(EnKakasi3* this, PlayState* play) { if (Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT && Message_ShouldAdvance(play)) { Message_CloseTextbox(play); - func_8010BD58(play, OCARINA_ACTION_CHECK_SCARECROW_SPAWN); + Message_StartOcarina(play, OCARINA_ACTION_CHECK_SCARECROW_SPAWN); this->actionFunc = func_80A918E4; } } diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c index 46612f155f..bce598d761 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -385,7 +385,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { piece->actionState = ENKANBAN_AIR; piece->actor.world.rot.y = (s16)Rand_CenteredFloat(0x3000) + this->actor.yawTowardsPlayer + 0x8000; piece->actor.velocity.y = Rand_ZeroFloat(2.0f) + 3.0f; - piece->actor.speedXZ = Rand_ZeroFloat(2.0f) + 3.0f; + piece->actor.speed = Rand_ZeroFloat(2.0f) + 3.0f; if (piece->partCount >= 4) { piece->bounceX = (s16)Rand_ZeroFloat(10.0f) + 6; piece->bounceZ = (s16)Rand_ZeroFloat(10.0f) + 6; @@ -498,7 +498,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { this->spinVel.z = -0xC00; } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - this->actor.speedXZ *= -0.5f; + this->actor.speed *= -0.5f; Actor_PlaySfx(&this->actor, NA_SE_EV_WOODPLATE_BOUND); } if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER_TOUCH) { @@ -525,7 +525,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { } else { this->actor.velocity.y = 0.0f; } - this->actor.speedXZ *= 0.7f; + this->actor.speed *= 0.7f; if ((this->spinRot.x == 0) && (this->bounceX != 0)) { this->spinVel.x = this->bounceX * 0x200; if (this->bounceX != 0) { @@ -597,35 +597,35 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { s32 rippleDelay; s32 rippleScale; - if ((player->actor.speedXZ > 0.0f) && (player->actor.world.pos.y < this->actor.world.pos.y) && + if ((player->actor.speed > 0.0f) && (player->actor.world.pos.y < this->actor.world.pos.y) && (this->actor.xyzDistToPlayerSq < SQ(50.0f))) { - Math_ApproachF(&this->actor.speedXZ, player->actor.speedXZ, 1.0f, 0.2f); - if (this->actor.speedXZ > 1.0f) { - this->actor.speedXZ = 1.0f; + Math_ApproachF(&this->actor.speed, player->actor.speed, 1.0f, 0.2f); + if (this->actor.speed > 1.0f) { + this->actor.speed = 1.0f; } if (Math_SmoothStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer + 0x8000, 1, 0x1000, 0) > 0) { - this->spinVel.y = this->actor.speedXZ * 1000.0f; + this->spinVel.y = this->actor.speed * 1000.0f; } else { - this->spinVel.y = this->actor.speedXZ * -1000.0f; + this->spinVel.y = this->actor.speed * -1000.0f; } } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } Actor_MoveForward(&this->actor); - if (this->actor.speedXZ != 0.0f) { + if (this->actor.speed != 0.0f) { Actor_UpdateBgCheckInfo(play, &this->actor, 10.0f, 10.0f, 50.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2); if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - this->actor.speedXZ *= -0.5f; + this->actor.speed *= -0.5f; if (this->spinVel.y > 0) { this->spinVel.y = -0x7D0; } else { this->spinVel.y = 0x7D0; } } - Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 0.15f); + Math_ApproachZeroF(&this->actor.speed, 1.0f, 0.15f); } this->actor.shape.rot.y += this->spinVel.y; Math_ApproachS(&this->spinVel.y, 0, 1, 0x3A); @@ -634,9 +634,9 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { Math_ApproachS(&this->spinRot.z, Math_CosS(3000 * this->frameCount) * 500.0f, 2, 0x1000); Math_ApproachZeroF(&this->floorRot.x, 0.5f, 0.2f); Math_ApproachZeroF(&this->floorRot.z, 0.5f, 0.2f); - if (fabsf(this->actor.speedXZ) > 1.0f) { + if (fabsf(this->actor.speed) > 1.0f) { rippleDelay = 0; - } else if (fabsf(this->actor.speedXZ) > 0.5f) { + } else if (fabsf(this->actor.speed) > 0.5f) { rippleDelay = 3; } else { rippleDelay = 7; @@ -661,12 +661,12 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { this->bounceX = (s16)Rand_ZeroFloat(10.0f) + 6; this->bounceZ = (s16)Rand_ZeroFloat(10.0f) + 6; this->actor.velocity.y = 2.0f + hammerStrength; - this->actor.speedXZ = Rand_ZeroFloat(1.0f); + this->actor.speed = Rand_ZeroFloat(1.0f); } else { this->bounceX = (s16)Rand_ZeroFloat(7.0f) + 3; this->bounceZ = (s16)Rand_ZeroFloat(7.0f) + 3; this->actor.velocity.y = 3.0f + hammerStrength; - this->actor.speedXZ = Rand_ZeroFloat(1.5f); + this->actor.speed = Rand_ZeroFloat(1.5f); } this->spinVel.y = Rand_CenteredFloat(0x1800); if (Rand_ZeroOne() < 0.5f) { @@ -700,12 +700,12 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { this->bounceX = (s16)Rand_ZeroFloat(10.0f) + 6; this->bounceZ = (s16)Rand_ZeroFloat(10.0f) + 6; this->actor.velocity.y = 2.5f + bombStrength; - this->actor.speedXZ = 3.0f + bombStrength; + this->actor.speed = 3.0f + bombStrength; } else { this->bounceX = (s16)Rand_ZeroFloat(7.0f) + 3; this->bounceZ = (s16)Rand_ZeroFloat(7.0f) + 3; this->actor.velocity.y = 5.0f + bombStrength; - this->actor.speedXZ = 4.0f + bombStrength; + this->actor.speed = 4.0f + bombStrength; } this->spinVel.y = Rand_CenteredFloat(0x1800); if (Rand_ZeroOne() < 0.5f) { diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c index 81a3f0f9a5..fce756a889 100644 --- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c +++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c @@ -176,7 +176,7 @@ void EnKarebaba_SetupDying(EnKarebaba* this) { this->actor.gravity = -0.8f; this->actor.velocity.y = 4.0f; this->actor.world.rot.y = this->actor.shape.rot.y + 0x8000; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_DEKU_JR_DEAD); this->actor.flags |= ACTOR_FLAG_4 | ACTOR_FLAG_5; this->actionFunc = EnKarebaba_Dying; @@ -318,7 +318,7 @@ void EnKarebaba_Dying(EnKarebaba* this, PlayState* play) { Vec3f position; Vec3f rotation; - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.1f); + Math_StepToF(&this->actor.speed, 0.0f, 0.1f); if (this->actor.params == 0) { Math_ScaledStepToS(&this->actor.shape.rot.x, 0x4800, 0x71C); @@ -327,7 +327,7 @@ void EnKarebaba_Dying(EnKarebaba* this, PlayState* play) { if (this->actor.scale.x > 0.005f && ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) || (this->actor.bgCheckFlags & BGCHECKFLAG_WALL))) { this->actor.scale.x = this->actor.scale.y = this->actor.scale.z = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); EffectSsHahen_SpawnBurst(play, &this->actor.world.pos, 3.0f, 0, 12, 5, 15, HAHEN_OBJECT_DEFAULT, 10, NULL); } diff --git a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c index ec864edfa7..09bf634cce 100644 --- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c +++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c @@ -347,8 +347,8 @@ void EnKusa_LiftedUp(EnKusa* this, PlayState* play) { if (Actor_HasNoParent(&this->actor, play)) { this->actor.room = play->roomCtx.curRoom.num; EnKusa_SetupFall(this); - this->actor.velocity.x = this->actor.speedXZ * Math_SinS(this->actor.world.rot.y); - this->actor.velocity.z = this->actor.speedXZ * Math_CosS(this->actor.world.rot.y); + this->actor.velocity.x = this->actor.speed * Math_SinS(this->actor.world.rot.y); + this->actor.velocity.z = this->actor.speed * Math_CosS(this->actor.world.rot.y); this->actor.colChkInfo.mass = 240; this->actor.gravity = -0.1f; EnKusa_UpdateVelY(this); diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c index cf8c2dc84c..e614fb3fd0 100644 --- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c +++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c @@ -383,7 +383,7 @@ void EnKz_SetupMweep(EnKz* this, PlayState* play) { subCamEye.z += 260.0f; Play_SetCameraAtEye(play, this->subCamId, &subCamAt, &subCamEye); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); - this->actor.speedXZ = 0.1f; + this->actor.speed = 0.1f; this->actionFunc = EnKz_Mweep; } @@ -403,7 +403,7 @@ void EnKz_Mweep(EnKz* this, PlayState* play) { Inventory_ReplaceItem(play, ITEM_BOTTLE_RUTOS_LETTER, ITEM_BOTTLE_EMPTY); EnKz_SetMovedPos(this, play); SET_EVENTCHKINF(EVENTCHKINF_33); - this->actor.speedXZ = 0.0; + this->actor.speed = 0.0; this->actionFunc = EnKz_StopMweep; } if (this->skelanime.curFrame == 13.0f) { diff --git a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c index 22795def00..a9fc41085d 100644 --- a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c +++ b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c @@ -76,20 +76,20 @@ void EnLightbox_Update(Actor* thisx, PlayState* play) { if (Actor_HasParent(thisx, play)) { this->dyna.unk_162++; } else { - if (thisx->speedXZ) { + if (thisx->speed) { if (thisx->bgCheckFlags & BGCHECKFLAG_WALL) { thisx->world.rot.y = (thisx->world.rot.y + thisx->wallYaw) - thisx->world.rot.y; Audio_PlaySfxGeneral(NA_SE_EV_BOMB_BOUND, &thisx->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - thisx->speedXZ *= 0.7f; + thisx->speed *= 0.7f; thisx->bgCheckFlags &= ~BGCHECKFLAG_WALL; } } if (!(thisx->bgCheckFlags & BGCHECKFLAG_GROUND)) { - Math_StepToF(&thisx->speedXZ, 0, IREG(57) / 100.0f); + Math_StepToF(&thisx->speed, 0, IREG(57) / 100.0f); } else { - Math_StepToF(&thisx->speedXZ, 0, IREG(58) / 100.0f); + Math_StepToF(&thisx->speed, 0, IREG(58) / 100.0f); if ((thisx->bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) && (thisx->velocity.y < IREG(59) / 100.0f)) { Audio_PlaySfxGeneral(NA_SE_EV_BOMB_BOUND, &thisx->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index 170776b681..9a19f69bcf 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -368,7 +368,7 @@ void func_80AA106C(EnMa1* this, PlayState* play) { GET_PLAYER(play)->stateFlags2 |= PLAYER_STATE2_23; if (this->interactInfo.talkState == NPC_TALK_STATE_ACTION) { AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_MALON); - func_8010BD58(play, OCARINA_ACTION_TEACH_EPONA); + Message_StartOcarina(play, OCARINA_ACTION_TEACH_EPONA); this->actor.flags &= ~ACTOR_FLAG_16; this->actionFunc = func_80AA10EC; } @@ -377,7 +377,7 @@ void func_80AA106C(EnMa1* this, PlayState* play) { void func_80AA10EC(EnMa1* this, PlayState* play) { GET_PLAYER(play)->stateFlags2 |= PLAYER_STATE2_23; if (Message_GetState(&play->msgCtx) == TEXT_STATE_SONG_DEMO_DONE) { - func_8010BD58(play, OCARINA_ACTION_PLAYBACK_EPONA); + Message_StartOcarina(play, OCARINA_ACTION_PLAYBACK_EPONA); this->actionFunc = func_80AA1150; } } diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index 1a9c2d94e2..27c6c3f776 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -266,7 +266,7 @@ void func_80AA204C(EnMa2* this, PlayState* play) { if (player->stateFlags2 & PLAYER_STATE2_24) { player->unk_6A8 = &this->actor; player->stateFlags2 |= PLAYER_STATE2_25; - func_8010BD58(play, OCARINA_ACTION_CHECK_EPONA); + Message_StartOcarina(play, OCARINA_ACTION_CHECK_EPONA); this->actionFunc = func_80AA20E4; } else if (this->actor.xzDistToPlayer < 30.0f + (f32)this->collider.dim.radius) { player->stateFlags2 |= PLAYER_STATE2_23; diff --git a/src/overlays/actors/ovl_En_Mag/z_en_mag.c b/src/overlays/actors/ovl_En_Mag/z_en_mag.c index 3cc6b30ff1..33a6c37a54 100644 --- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c +++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c @@ -251,12 +251,12 @@ void EnMag_Update(Actor* thisx, PlayState* play) { } if (this->globalState == MAG_STATE_INITIAL) { - if (Flags_GetEnv(play, 3)) { + if (CutsceneFlags_Get(play, 3)) { this->effectFadeInTimer = 40; this->globalState = MAG_STATE_FADE_IN; } } else if (this->globalState == MAG_STATE_DISPLAY) { - if (Flags_GetEnv(play, 4)) { + if (CutsceneFlags_Get(play, 4)) { this->globalState = MAG_STATE_FADE_OUT; } } diff --git a/src/overlays/actors/ovl_En_Mb/z_en_mb.c b/src/overlays/actors/ovl_En_Mb/z_en_mb.c index 2190d05d89..fab8b380ef 100644 --- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c +++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c @@ -433,7 +433,7 @@ void EnMb_FindWaypointTowardsPlayer(EnMb* this, PlayState* play) { void EnMb_SetupSpearGuardLookAround(EnMb* this) { Animation_MorphToLoop(&this->skelAnime, &gEnMbSpearLookLeftAndRightAnim, -4.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->timer1 = Rand_S16Offset(30, 50); this->state = ENMB_STATE_IDLE; EnMb_SetupAction(this, EnMb_SpearGuardLookAround); @@ -441,7 +441,7 @@ void EnMb_SetupSpearGuardLookAround(EnMb* this) { void EnMb_SetupClubWaitPlayerNear(EnMb* this) { Animation_PlayLoop(&this->skelAnime, &gEnMbClubStandStillClubDownAnim); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->timer1 = Rand_S16Offset(30, 50); this->state = ENMB_STATE_IDLE; EnMb_SetupAction(this, EnMb_ClubWaitPlayerNear); @@ -449,7 +449,7 @@ void EnMb_SetupClubWaitPlayerNear(EnMb* this) { void EnMb_SetupSpearPatrolTurnTowardsWaypoint(EnMb* this, PlayState* play) { Animation_MorphToLoop(&this->skelAnime, &gEnMbSpearLookLeftAndRightAnim, -4.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->timer1 = Rand_S16Offset(40, 80); this->state = ENMB_STATE_IDLE; EnMb_NextWaypoint(this, play); @@ -459,7 +459,7 @@ void EnMb_SetupSpearPatrolTurnTowardsWaypoint(EnMb* this, PlayState* play) { void EnMb_SetupSpearGuardWalk(EnMb* this) { Animation_Change(&this->skelAnime, &gEnMbSpearWalkAnim, 0.0f, 0.0f, Animation_GetLastFrame(&gEnMbSpearWalkAnim), ANIMMODE_LOOP, -4.0f); - this->actor.speedXZ = 0.59999996f; + this->actor.speed = 0.59999996f; this->timer1 = Rand_S16Offset(50, 70); this->unk_332 = 1; this->state = ENMB_STATE_WALK; @@ -469,7 +469,7 @@ void EnMb_SetupSpearGuardWalk(EnMb* this) { void EnMb_SetupSpearPatrolWalkTowardsWaypoint(EnMb* this) { f32 frameCount = Animation_GetLastFrame(&gEnMbSpearWalkAnim); - this->actor.speedXZ = 0.59999996f; + this->actor.speed = 0.59999996f; this->timer1 = Rand_S16Offset(50, 70); this->unk_332 = 1; this->state = ENMB_STATE_WALK; @@ -482,7 +482,7 @@ void EnMb_SetupSpearPrepareAndCharge(EnMb* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gEnMbSpearPrepareChargeAnim, -4.0f); this->state = ENMB_STATE_ATTACK; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->timer3 = (s16)frameCount + 6; Actor_PlaySfx(&this->actor, NA_SE_EN_MORIBLIN_SPEAR_AT); if (this->actor.params == ENMB_TYPE_SPEAR_GUARD) { @@ -498,7 +498,7 @@ void EnMb_SetupSpearPatrolImmediateCharge(EnMb* this) { this->attack = ENMB_ATTACK_SPEAR; this->state = ENMB_STATE_ATTACK; this->timer3 = 3; - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; EnMb_SetupAction(this, EnMb_SpearPatrolImmediateCharge); } @@ -537,7 +537,7 @@ void EnMb_SetupSpearPatrolEndCharge(EnMb* this) { this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; this->timer1 = 0; this->timer3 = 50; - this->actor.speedXZ = -8.0f; + this->actor.speed = -8.0f; this->actor.velocity.y = 6.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_MORIBLIN_SLIDE); EnMb_SetupAction(this, EnMb_SpearPatrolEndCharge); @@ -578,14 +578,14 @@ void EnMb_SetupClubDead(EnMb* this) { this->hitbox.dim.height = 80; this->hitbox.dim.radius = 95; this->timer1 = 30; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_MORIBLIN_DEAD); EnMb_SetupAction(this, EnMb_ClubDead); } void EnMb_SetupStunned(EnMb* this) { this->state = ENMB_STATE_STUNNED; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 120, COLORFILTER_BUFFLAG_OPA, 80); if (this->damageEffect == ENMB_DMGEFF_STUN_ICE) { this->iceEffectTimer = 40; @@ -676,8 +676,8 @@ void EnMb_SpearPatrolTurnTowardsWaypoint(EnMb* this, PlayState* play) { void EnMb_SpearEndChargeQuick(EnMb* this, PlayState* play) { s32 pad; - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.5f, 1.0f, 0.0f); - if (this->actor.speedXZ > 1.0f) { + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.5f, 1.0f, 0.0f); + if (this->actor.speed > 1.0f) { Actor_SpawnFloorDustRing(play, &this->actor, &this->actor.world.pos, 5.0f, 3, 4.0f, 100, 15, false); } if (SkelAnime_Update(&this->skelAnime)) { @@ -688,7 +688,7 @@ void EnMb_SpearEndChargeQuick(EnMb* this, PlayState* play) { Animation_Change(&this->skelAnime, &gEnMbSpearPrepareChargeAnim, -1.0f, Animation_GetLastFrame(&gEnMbSpearPrepareChargeAnim), 0.0f, ANIMMODE_ONCE, 0.0f); this->timer1 = 1; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_MORIBLIN_SPEAR_NORM); } } else { @@ -726,9 +726,9 @@ void EnMb_SpearPatrolEndCharge(EnMb* this, PlayState* play) { } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 1.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 1.5f, 0.0f); - if (this->actor.speedXZ > 1.0f) { + if (this->actor.speed > 1.0f) { Actor_SpawnFloorDustRing(play, &this->actor, &this->actor.world.pos, 5.0f, 3, 4.0f, 100, 15, false); } @@ -745,14 +745,14 @@ void EnMb_SpearPatrolEndCharge(EnMb* this, PlayState* play) { /* Play the charge animation in reverse: let go of the spear and stand normally */ Animation_Change(&this->skelAnime, &gEnMbSpearPrepareChargeAnim, -1.0f, lastFrame, 0.0f, ANIMMODE_ONCE, 0.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_MORIBLIN_SPEAR_NORM); } } else { if (this->actor.xzDistToPlayer <= 160.0f) { - this->actor.speedXZ = -5.0f; + this->actor.speed = -5.0f; } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } } @@ -799,7 +799,7 @@ void EnMb_SpearGuardPrepareAndCharge(EnMb* this, PlayState* play) { this->timer3--; Math_SmoothStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 1, 0xBB8, 0); } else { - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; this->attack = ENMB_ATTACK_SPEAR; Actor_SpawnFloorDustRing(play, &this->actor, &this->actor.world.pos, 5.0f, 3, 4.0f, 100, 15, false); if (prevFrame != (s32)this->skelAnime.curFrame && @@ -897,7 +897,7 @@ void EnMb_SpearPatrolPrepareAndCharge(EnMb* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.world.rot.y, 1, 0x1F40, 0); endCharge = false; } else { - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; this->attack = ENMB_ATTACK_SPEAR; Actor_SpawnFloorDustRing(play, &this->actor, &this->actor.world.pos, 5.0f, 3, 4.0f, 100, 15, false); if (prevFrame != (s32)this->skelAnime.curFrame && @@ -937,7 +937,7 @@ void EnMb_SpearPatrolPrepareAndCharge(EnMb* this, PlayState* play) { player->actor.world.pos.z = this->actor.world.pos.z + Math_SinS(this->actor.shape.rot.y) * 10.0f + Math_CosS(this->actor.shape.rot.y) * 89.0f; player->unk_850 = 0; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; player->actor.velocity.y = 0.0f; } @@ -952,7 +952,7 @@ void EnMb_SpearPatrolPrepareAndCharge(EnMb* this, PlayState* play) { } } this->attack = ENMB_ATTACK_NONE; - this->actor.speedXZ = -10.0f; + this->actor.speed = -10.0f; EnMb_SetupSpearPatrolEndCharge(this); } } @@ -1006,7 +1006,7 @@ void EnMb_SpearPatrolImmediateCharge(EnMb* this, PlayState* play) { player->actor.world.pos.z = this->actor.world.pos.z + Math_SinS(this->actor.shape.rot.y) * 10.0f + Math_CosS(this->actor.shape.rot.y) * 89.0f; player->unk_850 = 0; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; player->actor.velocity.y = 0.0f; } @@ -1020,7 +1020,7 @@ void EnMb_SpearPatrolImmediateCharge(EnMb* this, PlayState* play) { func_8002F71C(play, &this->actor, 4.0f, this->actor.world.rot.y, 4.0f); } this->attack = ENMB_ATTACK_NONE; - this->actor.speedXZ = -10.0f; + this->actor.speed = -10.0f; EnMb_SetupSpearPatrolEndCharge(this); this->timer3 = 1; } else { @@ -1081,7 +1081,7 @@ void EnMb_ClubDead(EnMb* this, PlayState* play) { effPos = this->actor.world.pos; effPos.x += Math_SinS(this->actor.shape.rot.y) * -70.0f; effPos.z += Math_CosS(this->actor.shape.rot.y) * -70.0f; - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); effPosBase = effPos; if (SkelAnime_Update(&this->skelAnime)) { @@ -1123,8 +1123,8 @@ void EnMb_SpearGuardWalk(EnMb* this, PlayState* play) { f32 playSpeedAbs; relYawTowardsPlayer = ABS(relYawTowardsPlayer); - Math_SmoothStepToF(&this->actor.speedXZ, 0.59999996f, 0.1f, 1.0f, 0.0f); - this->skelAnime.playSpeed = this->actor.speedXZ; + Math_SmoothStepToF(&this->actor.speed, 0.59999996f, 0.1f, 1.0f, 0.0f); + this->skelAnime.playSpeed = this->actor.speed; prevFrame = this->skelAnime.curFrame; SkelAnime_Update(&this->skelAnime); @@ -1185,8 +1185,8 @@ void EnMb_SpearPatrolWalkTowardsWaypoint(EnMb* this, PlayState* play) { (Rand_ZeroOne() < 0.1f && Math_Vec3f_DistXZ(&this->actor.home.pos, &this->actor.world.pos) <= 4.0f)) { EnMb_SetupSpearPatrolTurnTowardsWaypoint(this, play); } else { - Math_SmoothStepToF(&this->actor.speedXZ, 0.59999996f, 0.1f, 1.0f, 0.0f); - this->skelAnime.playSpeed = 2.0f * this->actor.speedXZ; + Math_SmoothStepToF(&this->actor.speed, 0.59999996f, 0.1f, 1.0f, 0.0f); + this->skelAnime.playSpeed = 2.0f * this->actor.speed; } this->yawToWaypoint = Math_Vec3f_Yaw(&this->actor.world.pos, &this->waypointPos); @@ -1246,10 +1246,10 @@ void EnMb_SetupSpearDamaged(EnMb* this) { if (ABS(relYawTowardsPlayer) <= 0x4000) { Animation_MorphToPlayOnce(&this->skelAnime, &gEnMbSpearDamagedFromFrontAnim, -4.0f); - this->actor.speedXZ = -8.0f; + this->actor.speed = -8.0f; } else { Animation_MorphToPlayOnce(&this->skelAnime, &gEnMbSpearDamagedFromBehindAnim, -4.0f); - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; } this->timer1 = 30; @@ -1260,7 +1260,7 @@ void EnMb_SetupSpearDamaged(EnMb* this) { } void EnMb_SpearDamaged(EnMb* this, PlayState* play) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); if (SkelAnime_Update(&this->skelAnime)) { if (this->actor.params <= ENMB_TYPE_SPEAR_GUARD) { EnMb_SetupSpearGuardLookAround(this); @@ -1275,11 +1275,11 @@ void EnMb_SetupSpearDead(EnMb* this) { if (ABS(relYawTowardsPlayer) <= 0x4000) { Animation_MorphToPlayOnce(&this->skelAnime, &gEnMbSpearFallOnItsBackAnim, -4.0f); - this->actor.speedXZ = -8.0f; + this->actor.speed = -8.0f; } else { /* The gEnMbSpearFallFaceDownAnim animation was probably meant to be used here */ Animation_MorphToPlayOnce(&this->skelAnime, &gEnMbSpearFallOnItsBackAnim, -4.0f); - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; } this->actor.world.rot.y = this->actor.shape.rot.y; @@ -1293,7 +1293,7 @@ void EnMb_SetupSpearDead(EnMb* this) { void EnMb_SpearDead(EnMb* this, PlayState* play) { Player* player = GET_PLAYER(play); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); if ((player->stateFlags2 & PLAYER_STATE2_7) && player->actor.parent == &this->actor) { player->stateFlags2 &= ~PLAYER_STATE2_7; diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c index 860057a1a0..dc9dd72996 100644 --- a/src/overlays/actors/ovl_En_Md/z_en_md.c +++ b/src/overlays/actors/ovl_En_Md/z_en_md.c @@ -752,7 +752,7 @@ void func_80AAB948(EnMd* this, PlayState* play) { this->waypoint = 1; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->actionFunc = func_80AABD0C; - this->actor.speedXZ = 1.5f; + this->actor.speed = 1.5f; return; } @@ -764,7 +764,7 @@ void func_80AAB948(EnMd* this, PlayState* play) { if (player->stateFlags2 & PLAYER_STATE2_24) { player->stateFlags2 |= PLAYER_STATE2_25; player->unk_6A8 = &this->actor; - func_8010BD58(play, OCARINA_ACTION_CHECK_SARIA); + Message_StartOcarina(play, OCARINA_ACTION_CHECK_SARIA); this->actionFunc = func_80AABC10; return; } @@ -814,7 +814,7 @@ void func_80AABD0C(EnMd* this, PlayState* play) { func_80AAA92C(this, 11); this->skelAnime.playSpeed = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.home.pos = this->actor.world.pos; this->actionFunc = func_80AAB8F8; } diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c index 26b46aed67..ca7e506e0c 100644 --- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c +++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c @@ -387,7 +387,7 @@ s32 func_80AADEF0(EnMm* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->yawToWaypoint, 1, 2500, 0); this->actor.world.rot.y = this->actor.shape.rot.y; - Math_SmoothStepToF(&this->actor.speedXZ, this->speedXZ, 0.6f, this->distToWaypoint, 0.0f); + Math_SmoothStepToF(&this->actor.speed, this->speedXZ, 0.6f, this->distToWaypoint, 0.0f); Actor_MoveForward(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); @@ -401,7 +401,7 @@ void func_80AAE224(EnMm* this, PlayState* play) { this->mouthTexIndex = RM_MOUTH_CLOSED; this->unk_254 |= 1; this->unk_1E0 = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnMm_ChangeAnim(this, RM_ANIM_SIT_WAIT, &this->curAnimIndex); } } diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c index 84bab04770..e1cf27a324 100644 --- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c +++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c @@ -182,7 +182,7 @@ void func_80AAF2BC(EnMm2* this, PlayState* play) { } SkelAnime_Update(&this->skelAnime); this->unk_1F6++; - Math_SmoothStepToF(&this->actor.speedXZ, 10.0f, 0.6f, 2.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 10.0f, 0.6f, 2.0f, 0.0f); } void func_80AAF330(EnMm2* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c index 32352a75e6..7e9eca5bc3 100644 --- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c +++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c @@ -85,7 +85,7 @@ void EnMs_Init(Actor* thisx, PlayState* play) { Actor_SetScale(&this->actor, 0.015f); this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = -1.0f; diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.c b/src/overlays/actors/ovl_En_Nb/z_en_nb.c index cb2473a8e8..cc3aced0c9 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -229,57 +229,65 @@ s32 EnNb_UpdateSkelAnime(EnNb* this) { return SkelAnime_Update(&this->skelAnime); } -CsCmdActorAction* EnNb_GetNpcCsAction(PlayState* play, s32 npcActionIdx) { +CsCmdActorCue* EnNb_GetCue(PlayState* play, s32 cueChannel) { if (play->csCtx.state != CS_STATE_IDLE) { - return play->csCtx.npcActions[npcActionIdx]; + return play->csCtx.actorCues[cueChannel]; } + return NULL; } -void EnNb_SetupCsPosRot(EnNb* this, PlayState* play, s32 npcActionIdx) { - CsCmdActorAction* csCmdNPCAction = EnNb_GetNpcCsAction(play, npcActionIdx); - s16 newRotY; +void EnNb_SetStartPosRotFromCue1(EnNb* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = EnNb_GetCue(play, cueChannel); Actor* thisx = &this->actor; - if (csCmdNPCAction != NULL) { - thisx->world.pos.x = csCmdNPCAction->startPos.x; - thisx->world.pos.y = csCmdNPCAction->startPos.y; - thisx->world.pos.z = csCmdNPCAction->startPos.z; - thisx->world.rot.y = thisx->shape.rot.y = csCmdNPCAction->rot.y; + if (cue != NULL) { + thisx->world.pos.x = cue->startPos.x; + thisx->world.pos.y = cue->startPos.y; + thisx->world.pos.z = cue->startPos.z; + + thisx->world.rot.y = thisx->shape.rot.y = cue->rot.y; } } -s32 func_80AB1390(EnNb* this, PlayState* play, u16 arg2, s32 npcActionIdx) { - CsCmdActorAction* csCmdNPCAction; +s32 func_80AB1390(EnNb* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue; - if ((play->csCtx.state != CS_STATE_IDLE) && - (csCmdNPCAction = play->csCtx.npcActions[npcActionIdx], csCmdNPCAction != NULL) && - (csCmdNPCAction->action == arg2)) { - return true; + if (play->csCtx.state != CS_STATE_IDLE) { + cue = play->csCtx.actorCues[cueChannel]; + + if ((cue != NULL) && (cue->id == cueId)) { + return true; + } } + return false; } -s32 func_80AB13D8(EnNb* this, PlayState* play, u16 arg2, s32 npcActionIdx) { - CsCmdActorAction* csCmdNPCAction; +s32 func_80AB13D8(EnNb* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue; - if ((play->csCtx.state != CS_STATE_IDLE) && - (csCmdNPCAction = play->csCtx.npcActions[npcActionIdx], csCmdNPCAction != NULL) && - (csCmdNPCAction->action != arg2)) { - return true; + if (play->csCtx.state != CS_STATE_IDLE) { + cue = play->csCtx.actorCues[cueChannel]; + + if ((cue != NULL) && (cue->id != cueId)) { + return true; + } } + return false; } -void EnNb_SetInitialCsPosRot(EnNb* this, PlayState* play, s32 npcActionIdx) { - CsCmdActorAction* csCmdNPCAction = EnNb_GetNpcCsAction(play, npcActionIdx); +void EnNb_SetStartPosRotFromCue2(EnNb* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = EnNb_GetCue(play, cueChannel); Actor* thisx = &this->actor; - if (csCmdNPCAction != NULL) { - thisx->world.pos.x = csCmdNPCAction->startPos.x; - thisx->world.pos.y = csCmdNPCAction->startPos.y; - thisx->world.pos.z = csCmdNPCAction->startPos.z; - thisx->world.rot.y = thisx->shape.rot.y = csCmdNPCAction->rot.y; + if (cue != NULL) { + thisx->world.pos.x = cue->startPos.x; + thisx->world.pos.y = cue->startPos.y; + thisx->world.pos.z = cue->startPos.z; + + thisx->world.rot.y = thisx->shape.rot.y = cue->rot.y; } } @@ -336,7 +344,7 @@ void EnNb_SetupChamberCsImpl(EnNb* this, PlayState* play) { if ((gSaveContext.chamberCutsceneNum == 3) && !IS_CUTSCENE_LAYER) { player = GET_PLAYER(play); this->action = NB_CHAMBER_UNDERGROUND; - play->csCtx.segment = D_80AB431C; + play->csCtx.script = D_80AB431C; gSaveContext.cutsceneTrigger = 2; Item_Give(play, ITEM_MEDALLION_SPIRIT); player->actor.world.rot.y = player->actor.shape.rot.y = this->actor.world.rot.y + 0x8000; @@ -345,11 +353,11 @@ void EnNb_SetupChamberCsImpl(EnNb* this, PlayState* play) { void EnNb_SetupChamberWarpImpl(EnNb* this, PlayState* play) { CutsceneContext* csCtx = &play->csCtx; - CsCmdActorAction* csCmdNPCAction; + CsCmdActorCue* cue; if (csCtx->state != CS_STATE_IDLE) { - csCmdNPCAction = csCtx->npcActions[1]; - if (csCmdNPCAction != NULL && csCmdNPCAction->action == 2) { + cue = csCtx->actorCues[1]; + if (cue != NULL && cue->id == 2) { this->action = NB_CHAMBER_APPEAR; this->drawMode = NB_DRAW_DEFAULT; EnNb_SpawnBlueWarp(this, play); @@ -366,11 +374,11 @@ void EnNb_SetupDefaultChamberIdle(EnNb* this) { void EnNb_SetupArmRaise(EnNb* this, PlayState* play) { AnimationHeader* animation = &gNabooruRaisingArmsGivingMedallionAnim; - CsCmdActorAction* csCmdNPCAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - csCmdNPCAction = play->csCtx.npcActions[1]; - if (csCmdNPCAction != NULL && csCmdNPCAction->action == 3) { + cue = play->csCtx.actorCues[1]; + if (cue != NULL && cue->id == 3) { Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_ONCE, 0.0f); this->action = NB_CHAMBER_RAISE_ARM; @@ -389,11 +397,11 @@ void EnNb_SetupRaisedArmTransition(EnNb* this, s32 animFinished) { } void EnNb_SetupMedallion(EnNb* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - csCmdNPCAction = play->csCtx.npcActions[6]; - if (csCmdNPCAction != NULL && csCmdNPCAction->action == 2) { + cue = play->csCtx.actorCues[6]; + if (cue != NULL && cue->id == 2) { this->action = NB_GIVE_MEDALLION; EnNb_GiveMedallion(this, play); } @@ -566,42 +574,43 @@ void EnNb_InitKidnap(EnNb* this, PlayState* play) { } void EnNb_PlayCrySFX(EnNb* this, PlayState* play) { - if (play->csCtx.frames == 3) { + if (play->csCtx.curFrame == 3) { func_80078914(&this->actor.projectedPos, NA_SE_VO_NB_CRY_0); } } void EnNb_PlayAgonySFX(EnNb* this, PlayState* play) { - if (play->csCtx.frames == 420) { + if (play->csCtx.curFrame == 420) { func_80078914(&this->actor.projectedPos, NA_SE_VO_NB_AGONY); } } void EnNb_SetPosInPortal(EnNb* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction = EnNb_GetNpcCsAction(play, 1); + CsCmdActorCue* cue = EnNb_GetCue(play, 1); Vec3f* pos = &this->actor.world.pos; - f32 f0; + f32 lerp; s32 pad; Vec3f startPos; Vec3f endPos; - if (csCmdNPCAction != NULL) { - f0 = Environment_LerpWeightAccelDecel(csCmdNPCAction->endFrame, csCmdNPCAction->startFrame, play->csCtx.frames, - 4, 4); - startPos.x = csCmdNPCAction->startPos.x; - startPos.y = csCmdNPCAction->startPos.y; - startPos.z = csCmdNPCAction->startPos.z; - endPos.x = csCmdNPCAction->endPos.x; - endPos.y = csCmdNPCAction->endPos.y; - endPos.z = csCmdNPCAction->endPos.z; - pos->x = ((endPos.x - startPos.x) * f0) + startPos.x; - pos->y = ((endPos.y - startPos.y) * f0) + startPos.y; - pos->z = ((endPos.z - startPos.z) * f0) + startPos.z; + if (cue != NULL) { + lerp = Environment_LerpWeightAccelDecel(cue->endFrame, cue->startFrame, play->csCtx.curFrame, 4, 4); + startPos.x = cue->startPos.x; + startPos.y = cue->startPos.y; + startPos.z = cue->startPos.z; + + endPos.x = cue->endPos.x; + endPos.y = cue->endPos.y; + endPos.z = cue->endPos.z; + + pos->x = ((endPos.x - startPos.x) * lerp) + startPos.x; + pos->y = ((endPos.y - startPos.y) * lerp) + startPos.y; + pos->z = ((endPos.z - startPos.z) * lerp) + startPos.z; } } void EnNb_SetupCaptureCutsceneState(EnNb* this, PlayState* play) { - EnNb_SetupCsPosRot(this, play, 1); + EnNb_SetStartPosRotFromCue1(this, play, 1); this->action = NB_KIDNAPPED; this->drawMode = NB_DRAW_NOTHING; this->actor.shape.shadowAlpha = 0; @@ -633,15 +642,16 @@ void EnNb_SetupKidnap(EnNb* this) { } void EnNb_CheckKidnapCsMode(EnNb* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction = EnNb_GetNpcCsAction(play, 1); - s32 action; - s32 previousCsAction; + CsCmdActorCue* cue = EnNb_GetCue(play, 1); + s32 nextCueId; + s32 currentCueId; - if (csCmdNPCAction != NULL) { - action = csCmdNPCAction->action; - previousCsAction = this->previousCsAction; - if (action != previousCsAction) { - switch (action) { + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: EnNb_SetupCaptureCutsceneState(this, play); break; @@ -659,7 +669,7 @@ void EnNb_CheckKidnapCsMode(EnNb* this, PlayState* play) { osSyncPrintf("En_Nb_Kidnap_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); break; } - this->previousCsAction = action; + this->cueId = nextCueId; } } } @@ -698,7 +708,7 @@ void EnNb_SetupConfrontation(EnNb* this, PlayState* play) { void EnNb_PlayKnuckleDefeatSFX(EnNb* this, PlayState* play) { s32 pad[2]; - if (play->csCtx.frames == 548) { + if (play->csCtx.curFrame == 548) { func_80078914(&this->actor.projectedPos, NA_SE_VO_NB_CRY_0); func_80078914(&this->actor.projectedPos, NA_SE_EN_FANTOM_HIT_THUNDER); } @@ -750,7 +760,7 @@ void func_80AB26DC(EnNb* this, PlayState* play) { AnimationHeader* animation = &gNabooruCollapseFromStandingToKneelingTransitionAnim; f32 lastFrame = Animation_GetLastFrame(animation); - EnNb_SetupCsPosRot(this, play, 1); + EnNb_SetStartPosRotFromCue1(this, play, 1); Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, 0.0f); this->action = NB_ACTION_14; this->drawMode = NB_DRAW_KNEEL; @@ -840,17 +850,18 @@ void EnNb_SetupConfrontationDestroy(EnNb* this) { } void EnNb_CheckConfrontationCsMode(EnNb* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction; - s32 csAction; - s32 previousCsAction; + CsCmdActorCue* cue; + s32 nextCueId; + s32 currentCueId; - csCmdNPCAction = EnNb_GetNpcCsAction(play, 1); - if (csCmdNPCAction != NULL) { - csAction = csCmdNPCAction->action; - previousCsAction = this->previousCsAction; + cue = EnNb_GetCue(play, 1); - if (csAction != previousCsAction) { - switch (csAction) { + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: func_80AB26C8(this); break; @@ -877,7 +888,7 @@ void EnNb_CheckConfrontationCsMode(EnNb* this, PlayState* play) { osSyncPrintf("En_Nb_Confrontion_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); break; } - this->previousCsAction = csAction; + this->cueId = nextCueId; } } } @@ -1020,7 +1031,7 @@ void EnNb_SetAlphaInCredits(EnNb* this) { } void EnNb_SetupCreditsFadeIn(EnNb* this, PlayState* play) { - EnNb_SetInitialCsPosRot(this, play, 1); + EnNb_SetStartPosRotFromCue2(this, play, 1); this->action = NB_CREDITS_FADEIN; this->drawMode = NB_DRAW_HIDE; } @@ -1044,15 +1055,16 @@ void EnNb_CheckIfLookingUp(EnNb* this, s32 animFinished) { } void EnNb_CheckCreditsCsModeImpl(EnNb* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction = EnNb_GetNpcCsAction(play, 1); - s32 action; - s32 previousCsAction; + CsCmdActorCue* cue = EnNb_GetCue(play, 1); + s32 nextCueId; + s32 currentCueId; - if (csCmdNPCAction != NULL) { - action = csCmdNPCAction->action; - previousCsAction = this->previousCsAction; - if (action != previousCsAction) { - switch (action) { + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { case 15: EnNb_SetupCreditsFadeIn(this, play); break; @@ -1064,7 +1076,7 @@ void EnNb_CheckCreditsCsModeImpl(EnNb* this, PlayState* play) { osSyncPrintf("En_Nb_inEnding_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); break; } - this->previousCsAction = action; + this->cueId = nextCueId; } } } @@ -1123,7 +1135,7 @@ void func_80AB359C(EnNb* this) { PosRot* world = &this->actor.world; Vec3f* initialPos = &this->initialPos; Vec3f* finalPos = &this->finalPos; - f32 f0; + f32 lerp; u16 temp_t1; s16 temp_2; @@ -1133,10 +1145,11 @@ void func_80AB359C(EnNb* this) { temp_t1 += 25; if (temp_t1 >= this->movementTimer) { - f0 = Environment_LerpWeightAccelDecel(temp_t1, 0, this->movementTimer, 3, 3); - world->pos.x = initialPos->x + (f0 * (finalPos->x - initialPos->x)); - world->pos.y = initialPos->y + (f0 * (finalPos->y - initialPos->y)); - world->pos.z = initialPos->z + (f0 * (finalPos->z - initialPos->z)); + lerp = Environment_LerpWeightAccelDecel(temp_t1, 0, this->movementTimer, 3, 3); + + world->pos.x = initialPos->x + (lerp * (finalPos->x - initialPos->x)); + world->pos.y = initialPos->y + (lerp * (finalPos->y - initialPos->y)); + world->pos.z = initialPos->z + (lerp * (finalPos->z - initialPos->z)); } } diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.h b/src/overlays/actors/ovl_En_Nb/z_en_nb.h index c1bc3a01bf..89429df6b9 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.h +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.h @@ -44,7 +44,7 @@ typedef struct EnNb { /* 0x0280 */ f32 alphaTimer; /* 0x0284 */ u32 alpha; /* 0x0288 */ s32 flag; - /* 0x028C */ s32 previousCsAction; + /* 0x028C */ s32 cueId; /* 0x0290 */ f32 timer; /* 0x0294 */ ColliderCylinder collider; /* 0x02E0 */ s32 headTurnFlag; diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb_cutscene_data.inc.c b/src/overlays/actors/ovl_En_Nb/z_en_nb_cutscene_data.inc.c index a9acb6b8ab..5593a51ab7 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb_cutscene_data.inc.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb_cutscene_data.inc.c @@ -6,165 +6,165 @@ static CutsceneData D_80AB431C[] = { CS_BEGIN_CUTSCENE(27, 3011), CS_UNK_DATA_LIST(0x00000020, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(31, 5), - CS_NPC_ACTION(0x0001, 0, 501, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 501, 502, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0004, 502, 573, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 573, 621, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 82, 0, 0.0f, -2.7916667f, 0.0f), - CS_NPC_ACTION(0x0003, 621, 3011, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION_LIST(3), - CS_PLAYER_ACTION(0x000D, 0, 240, 0x0000, 0x1555, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0005, 240, 461, 0x0000, 0x1555, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0013, 461, 1616, 0x0000, 0x9555, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), - CS_NPC_ACTION_LIST(49, 1), - CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -16, -121, 0, -16, -121, 0.0f, 0.0f, 0.0f), - CS_LIGHTING_LIST(1), - CS_LIGHTING(0x0004, 0, 3000, 0x0000, 0x00000000, 0xFFFFFF9E, 0x00000000, 0x0000002F, 0xFFFFFF9E, 0x00000000, 0x0000002F), - CS_NPC_ACTION_LIST(39, 1), - CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, 0, -2, 0, 0, -2, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(40, 3), - CS_NPC_ACTION(0x0001, 0, 145, 0x0000, 0x0000, 0x0000, -97, 6, -167, -97, 6, -167, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 145, 431, 0x0000, 0x0000, 0x0000, -97, 6, -167, -97, 6, -167, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0003, 431, 1399, 0x0000, 0x0000, 0x0000, -97, 6, -167, -97, 6, -167, 0.0f, 0.0f, 0.0f), - CS_SCENE_TRANS_FX(0x0005, 500, 530), - CS_SCENE_TRANS_FX(0x0001, 489, 499), - CS_SCENE_TRANS_FX(0x0001, 765, 795), + CS_ACTOR_CUE_LIST(31, 5), + CS_ACTOR_CUE(0x0001, 0, 501, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 501, 502, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0004, 502, 573, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 573, 621, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 82, 0, 0.0f, -2.7916667f, 0.0f), + CS_ACTOR_CUE(0x0003, 621, 3011, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE_LIST(3), + CS_PLAYER_CUE(0x000D, 0, 240, 0x0000, 0x1555, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0005, 240, 461, 0x0000, 0x1555, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0013, 461, 1616, 0x0000, 0x9555, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 1.401298464324817e-45f), + CS_ACTOR_CUE_LIST(49, 1), + CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -16, -121, 0, -16, -121, 0.0f, 0.0f, 0.0f), + CS_LIGHT_SETTING_LIST(1), + CS_LIGHT_SETTING(0x0003, 0, 3000, 0x0000, 0x00000000, 0xFFFFFF9E, 0x00000000, 0x0000002F, 0xFFFFFF9E, 0x00000000, 0x0000002F), + CS_ACTOR_CUE_LIST(39, 1), + CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, 0, -2, 0, 0, -2, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(40, 3), + CS_ACTOR_CUE(0x0001, 0, 145, 0x0000, 0x0000, 0x0000, -97, 6, -167, -97, 6, -167, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 145, 431, 0x0000, 0x0000, 0x0000, -97, 6, -167, -97, 6, -167, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0003, 431, 1399, 0x0000, 0x0000, 0x0000, -97, 6, -167, -97, 6, -167, 0.0f, 0.0f, 0.0f), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 500, 530), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 489, 499), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 765, 795), CS_TEXT_LIST(10), CS_TEXT_NONE(0, 345), - CS_TEXT_DISPLAY_TEXTBOX(0x6035, 345, 353, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x6035, 345, 353, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(353, 374), - CS_TEXT_DISPLAY_TEXTBOX(0x6039, 374, 399, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x6039, 374, 399, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(399, 400), - CS_TEXT_DISPLAY_TEXTBOX(0x603A, 400, 424, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x603A, 400, 424, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(424, 760), - CS_TEXT_DISPLAY_TEXTBOX(0x003F, 760, 765, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x003F, 760, 765, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(765, 825), - CS_TEXT_DISPLAY_TEXTBOX(0x6036, 825, 835, 0x0000, 0x0000, 0x0000), - CS_NPC_ACTION_LIST(62, 1), - CS_NPC_ACTION(0x0004, 0, 3000, 0x0000, 0x0000, 0x0000, 50, 80, 56, 50, 80, 56, 0.0f, 0.0f, 0.0f), - CS_TERMINATOR(DESERT_COLOSSUS_SPIRIT_BLUE_WARP, 865, 907), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x0044, 575, 576, 0x0000, 0x00000000, 0xFFFFFFEF, 0x00000000, 0x00000034, 0xFFFFFFEF, 0x00000000, 0x00000034), - CS_FADE_BGM_LIST(1), - CS_FADE_BGM(0x0004, 479, 529, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x0000005C, 0x00000000, 0xFFFFFFC7, 0x0000005C), - CS_CAM_EYE_LIST(0, 366), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -269, 89, -454, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -269, 89, -454, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -269, 89, -454, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -223, 75, -377, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -92, 31, -157, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, 13, 15, 19, 0x013D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, 49, 28, 77, 0x013F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, 74, 20, 122, 0x014E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 50.599964f, 74, 20, 122, 0x015F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 74, 20, 122, 0x0161), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 74, 20, 122, 0x300A), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 74, 20, 122, 0x656F), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.399944f, 74, 20, 122, 0x676F), - CS_CAM_EYE_LIST(263, 2484), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 62.004566f, 134, 19, 198, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 62.004566f, 134, 19, 198, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 62.004566f, 134, 43, 198, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 62.004566f, 133, 60, 197, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 62.004566f, 133, 60, 197, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 62.004566f, 133, 60, 197, 0x013D), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 62.004566f, 133, 60, 197, 0x013F), - CS_CAM_EYE_LIST(363, 1595), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.399925f, 116, 21, 45, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.399925f, 116, 21, 45, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.399925f, 116, 21, 45, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.399925f, 117, 24, 69, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.399925f, 105, 46, 117, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.399925f, 105, 46, 117, 0x013D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.399925f, 105, 46, 117, 0x013F), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 40.399925f, 105, 46, 117, 0x002E), - CS_CAM_EYE_LIST(433, 1594), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 139, 33, -108, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 139, 33, -108, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 140, 81, -109, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.599945f, 140, 252, -109, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 140, 252, -109, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 140, 252, -109, 0x013D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 140, 252, -109, 0x013F), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.600002f, 140, 252, -109, 0x002E), - CS_CAM_EYE_LIST(498, 840), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x013D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x013F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x002E), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x0063), - CS_CAM_EYE_REL_TO_PLAYER_LIST(574, 1755), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C6), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C8), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0x00D7), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00E8), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00EA), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013D), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013F), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x002E), - CS_CAM_AT_LIST(0, 395), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.800003f, -141, 51, -239, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.800003f, -141, 51, -239, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.800003f, -141, 52, -239, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.800003f, -96, 32, -164, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.800003f, 34, 19, 56, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.800003f, 138, 2, 230, 0x013D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.800003f, 165, 22, 286, 0x013F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 35, 55.799984f, 181, 116, 315, 0x014E), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 50.599964f, 175, 134, 305, 0x015F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 172, 142, 300, 0x0161), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 171, 142, 300, 0x300A), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 171, 141, 299, 0x656F), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.399944f, 171, 141, 299, 0x676F), - CS_CAM_AT_LIST(263, 2513), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 70, 62.004566f, -67, 36, 17, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 70, 62.004566f, -67, 32, 17, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 62.004566f, -66, 34, 18, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 62.004566f, -60, 24, 23, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 62.004566f, -60, 22, 23, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 62.004566f, -60, 19, 23, 0x013D), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 62.004566f, -60, 18, 23, 0x013F), - CS_CAM_AT_LIST(363, 1624), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.399925f, 34, 58, 269, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.399925f, 34, 58, 269, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 40.399925f, 34, 58, 269, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 40.399925f, 42, 74, 293, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 41, 40.399925f, 22, 93, 336, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 40.399925f, 22, 93, 336, 0x013D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.399925f, 22, 93, 336, 0x013F), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 40.399925f, 22, 93, 336, 0x002E), - CS_CAM_AT_LIST(433, 1623), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, 4, 14, 108, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.599945f, 4, 14, 108, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 50.999966f, 4, 76, 108, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 70.599915f, 111, 501, -62, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.599915f, 111, 500, -62, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 70.599915f, 111, 500, -62, 0x013D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.39992f, 111, 500, -62, 0x013F), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 70.39992f, 111, 500, -62, 0x002E), - CS_CAM_AT_LIST(498, 889), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x002E), - CS_CAM_AT(CS_CMD_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x0063), - CS_CAM_AT_REL_TO_PLAYER_LIST(574, 1784), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x00C6), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x00C8), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0x00D7), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00E8), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00EA), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x013D), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x013F), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x002E), + CS_TEXT(0x6036, 825, 835, 0x0000, 0x0000, 0x0000), + CS_ACTOR_CUE_LIST(62, 1), + CS_ACTOR_CUE(0x0004, 0, 3000, 0x0000, 0x0000, 0x0000, 50, 80, 56, 50, 80, 56, 0.0f, 0.0f, 0.0f), + CS_DESTINATION(CS_DEST_DESERT_COLOSSUS_FROM_CHAMBER_OF_SAGES, 865, 907), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_MEDALLION_GET, 575, 576, 0x0000, 0x00000000, 0xFFFFFFEF, 0x00000000, 0x00000034, 0xFFFFFFEF, 0x00000000, 0x00000034), + CS_FADE_OUT_SEQ_LIST(1), + CS_FADE_OUT_SEQ(CS_FADE_OUT_BGM_MAIN, 479, 529, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x0000005C, 0x00000000, 0xFFFFFFC7, 0x0000005C), + CS_CAM_EYE_SPLINE(0, 366), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -269, 89, -454, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -269, 89, -454, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -269, 89, -454, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -223, 75, -377, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -92, 31, -157, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, 13, 15, 19, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, 49, 28, 77, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, 74, 20, 122, 0x014E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 50.599964f, 74, 20, 122, 0x015F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 74, 20, 122, 0x0161), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 74, 20, 122, 0x300A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 74, 20, 122, 0x656F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.399944f, 74, 20, 122, 0x676F), + CS_CAM_EYE_SPLINE(263, 2484), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 62.004566f, 134, 19, 198, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 62.004566f, 134, 19, 198, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 62.004566f, 134, 43, 198, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 62.004566f, 133, 60, 197, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 62.004566f, 133, 60, 197, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 62.004566f, 133, 60, 197, 0x013D), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 62.004566f, 133, 60, 197, 0x013F), + CS_CAM_EYE_SPLINE(363, 1595), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.399925f, 116, 21, 45, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.399925f, 116, 21, 45, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.399925f, 116, 21, 45, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.399925f, 117, 24, 69, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.399925f, 105, 46, 117, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.399925f, 105, 46, 117, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.399925f, 105, 46, 117, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 40.399925f, 105, 46, 117, 0x002E), + CS_CAM_EYE_SPLINE(433, 1594), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 139, 33, -108, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 139, 33, -108, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 140, 81, -109, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.599945f, 140, 252, -109, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 140, 252, -109, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 140, 252, -109, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 140, 252, -109, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.600002f, 140, 252, -109, 0x002E), + CS_CAM_EYE_SPLINE(498, 840), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x002E), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x0063), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(574, 1755), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x002E), + CS_CAM_AT_SPLINE(0, 395), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.800003f, -141, 51, -239, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.800003f, -141, 51, -239, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.800003f, -141, 52, -239, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.800003f, -96, 32, -164, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.800003f, 34, 19, 56, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.800003f, 138, 2, 230, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.800003f, 165, 22, 286, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 35, 55.799984f, 181, 116, 315, 0x014E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.599964f, 175, 134, 305, 0x015F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 172, 142, 300, 0x0161), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 171, 142, 300, 0x300A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 171, 141, 299, 0x656F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.399944f, 171, 141, 299, 0x676F), + CS_CAM_AT_SPLINE(263, 2513), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 70, 62.004566f, -67, 36, 17, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 70, 62.004566f, -67, 32, 17, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 62.004566f, -66, 34, 18, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 62.004566f, -60, 24, 23, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 62.004566f, -60, 22, 23, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 62.004566f, -60, 19, 23, 0x013D), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 62.004566f, -60, 18, 23, 0x013F), + CS_CAM_AT_SPLINE(363, 1624), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.399925f, 34, 58, 269, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.399925f, 34, 58, 269, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 40.399925f, 34, 58, 269, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 40.399925f, 42, 74, 293, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 41, 40.399925f, 22, 93, 336, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 40.399925f, 22, 93, 336, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.399925f, 22, 93, 336, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 40.399925f, 22, 93, 336, 0x002E), + CS_CAM_AT_SPLINE(433, 1623), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, 4, 14, 108, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.599945f, 4, 14, 108, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 50.999966f, 4, 76, 108, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 70.599915f, 111, 501, -62, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.599915f, 111, 500, -62, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 70.599915f, 111, 500, -62, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.39992f, 111, 500, -62, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 70.39992f, 111, 500, -62, 0x002E), + CS_CAM_AT_SPLINE(498, 889), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x002E), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x0063), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(574, 1784), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x002E), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_En_Niw/z_en_niw.c b/src/overlays/actors/ovl_En_Niw/z_en_niw.c index d8c51ba53d..7598a0b818 100644 --- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c +++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c @@ -425,7 +425,7 @@ void EnNiw_ResetAction(EnNiw* this, PlayState* play) { void func_80AB6324(EnNiw* this, PlayState* play) { if (this->unk_308 != 0) { this->actor.velocity.y = Rand_ZeroFloat(2.0f) + 4.0f; - this->actor.speedXZ = Rand_ZeroFloat(2.0f) + 3.0f; + this->actor.speed = Rand_ZeroFloat(2.0f) + 3.0f; this->actionFunc = func_80AB63A8; } func_80AB5BF8(this, play, 1); @@ -438,8 +438,8 @@ void func_80AB63A8(EnNiw* this, PlayState* play) { this->unk_2AC.z = this->unk_2B8.z = this->actor.world.pos.z; this->timer5 = this->timer4 = this->unk_29E = 0; - this->unk_26C[7] = this->unk_26C[5] = this->unk_26C[6] = this->unk_26C[8] = this->actor.speedXZ = - this->unk_2FC = this->unk_300 = 0.0f; + this->unk_26C[7] = this->unk_26C[5] = this->unk_26C[6] = this->unk_26C[8] = this->actor.speed = this->unk_2FC = + this->unk_300 = 0.0f; this->actionFunc = func_80AB6570; } else { @@ -461,7 +461,7 @@ void func_80AB6450(EnNiw* this, PlayState* play) { this->path = 0; this->timer4 = 30; this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionFunc = func_80AB6BF8; } else { // GI_NONE in this case allows the player to lift the actor @@ -483,7 +483,7 @@ void func_80AB6570(EnNiw* this, PlayState* play) { this->path = 0; this->timer4 = 30; this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionFunc = func_80AB6BF8; return; } @@ -496,7 +496,7 @@ void func_80AB6570(EnNiw* this, PlayState* play) { this->sfxTimer3 = 100; } this->unk_2A0 = Rand_ZeroFloat(1.99f); - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; this->unk_300 = 0.0f; this->unk_2FC = 0.0f; this->actionFunc = func_80AB6A38; @@ -554,7 +554,7 @@ void func_80AB6570(EnNiw* this, PlayState* play) { } else { this->timer4 = 4; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 3.5f; } } @@ -599,8 +599,8 @@ void func_80AB6A38(EnNiw* this, PlayState* play) { this->unk_2AC.y = this->unk_2B8.y = this->actor.world.pos.y; this->unk_2AC.z = this->unk_2B8.z = this->actor.world.pos.z; this->timer5 = this->timer4 = this->unk_29E = 0; - this->unk_26C[7] = this->unk_26C[5] = this->unk_26C[6] = this->unk_26C[8] = this->actor.speedXZ = - this->unk_2FC = this->unk_300 = 0.0f; + this->unk_26C[7] = this->unk_26C[5] = this->unk_26C[6] = this->unk_26C[8] = this->actor.speed = this->unk_2FC = + this->unk_300 = 0.0f; this->actionFunc = EnNiw_ResetAction; } else { path = &play->pathList[pathIndex]; @@ -660,7 +660,7 @@ void func_80AB6D08(EnNiw* this, PlayState* play) { this->unk_2AC.z = this->unk_2B8.z = this->actor.world.pos.z; this->timer5 = this->timer4 = this->unk_29E = 0; - this->unk_26C[7] = this->unk_26C[5] = this->unk_26C[6] = this->unk_26C[8] = this->actor.speedXZ = + this->unk_26C[7] = this->unk_26C[5] = this->unk_26C[6] = this->unk_26C[8] = this->actor.speed = this->unk_2FC = this->unk_300 = 0.0f; this->actionFunc = EnNiw_ResetAction; @@ -669,7 +669,7 @@ void func_80AB6D08(EnNiw* this, PlayState* play) { this->path = 1; this->timer5 = 80; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 4.0f; } else { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { @@ -692,7 +692,7 @@ void func_80AB6D08(EnNiw* this, PlayState* play) { this->path = 0; this->timer4 = 30; this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionFunc = func_80AB6BF8; } else { if (this->timer5 >= 6) { @@ -717,7 +717,7 @@ void func_80AB6F04(EnNiw* this, PlayState* play) { EnNiw_SpawnAttackCucco(this, play); } - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { this->actor.gravity = 0.0f; @@ -733,17 +733,17 @@ void func_80AB6F04(EnNiw* this, PlayState* play) { } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { this->actor.velocity.y = 10.0f; - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; } } else { this->actor.gravity = -2.0f; if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { this->actor.velocity.y = 10.0f; - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; this->actor.gravity = 0.0f; } else { - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->actor.gravity = -2.0f; @@ -810,7 +810,7 @@ void func_80AB7204(EnNiw* this, PlayState* play) { if (this->timer7 < 2) { if (this->timer7 == 1) { - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; this->unk_2A0 = Rand_ZeroFloat(1.99f); this->timer1 = this->timer2 = this->timer3 = this->timer4 = 0; } else { @@ -823,7 +823,7 @@ void func_80AB7290(EnNiw* this, PlayState* play) { Animation_Change(&this->skelAnime, &gCuccoAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gCuccoAnim), ANIMMODE_LOOP, -10.0f); this->unk_2A0 = Rand_ZeroFloat(1.99f); - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; this->actionFunc = func_80AB7328; } @@ -835,8 +835,8 @@ void func_80AB7328(EnNiw* this, PlayState* play) { this->unk_2AC.y = this->unk_2B8.y = this->actor.world.pos.y; this->unk_2AC.z = this->unk_2B8.z = this->actor.world.pos.z; this->timer5 = this->timer4 = this->unk_29E = 0; - this->unk_26C[7] = this->unk_26C[5] = this->unk_26C[6] = this->unk_26C[8] = this->actor.speedXZ = - this->unk_2FC = this->unk_300 = 0.0f; + this->unk_26C[7] = this->unk_26C[5] = this->unk_26C[6] = this->unk_26C[8] = this->actor.speed = this->unk_2FC = + this->unk_300 = 0.0f; if (this->actor.params == 4) { this->actor.params = 0; } @@ -1008,7 +1008,7 @@ void EnNiw_Update(Actor* thisx, PlayState* play) { osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ 修整後Y! ☆☆☆☆☆ %f\n" VT_RST, thisx->world.pos.y); osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ 修整後Z! ☆☆☆☆☆ %f\n" VT_RST, thisx->world.pos.z); osSyncPrintf("\n\n"); - thisx->speedXZ = 0.0f; + thisx->speed = 0.0f; thisx->gravity = -2.0f; Math_Vec3f_Copy(&this->unk_2AC, &thisx->home.pos); Math_Vec3f_Copy(&this->unk_2B8, &thisx->home.pos); @@ -1059,7 +1059,7 @@ void EnNiw_Update(Actor* thisx, PlayState* play) { if (thisx->xzDistToPlayer > 10.0f) { D_80AB85E0 = 1; this->timer5 = this->timer4 = this->unk_29E = 0; - thisx->speedXZ = 0.0f; + thisx->speed = 0.0f; this->unk_2FC = 0.0f; this->unk_300 = 0.0f; this->unk_26C[7] = 0.0f; diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c index e59752e590..1d94c56639 100644 --- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c +++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c @@ -106,7 +106,7 @@ void func_80AB9210(EnNiwGirl* this, PlayState* play) { f32 zDistBetween; SkelAnime_Update(&this->skelAnime); - Math_ApproachF(&this->actor.speedXZ, 3.0f, 0.2f, 0.4f); + Math_ApproachF(&this->actor.speed, 3.0f, 0.2f, 0.4f); // Find the X and Z distance between the girl and the cuckoo she is chasing xDistBetween = this->chasedEnNiw->actor.world.pos.x - this->actor.world.pos.x; @@ -169,7 +169,7 @@ void func_80AB94D0(EnNiwGirl* this, PlayState* play) { if (Message_GetState(&play->msgCtx) != TEXT_STATE_NONE) { this->chasedEnNiw->path = 0; } - Math_ApproachZeroF(&this->actor.speedXZ, 0.8f, 0.2f); + Math_ApproachZeroF(&this->actor.speed, 0.8f, 0.2f); if (Actor_ProcessTalkRequest(&this->actor, play)) { if (this->actor.textId == 0x70EA) { this->unk_27A = 1; diff --git a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c index 83e9e24c69..73cc948ae7 100644 --- a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c +++ b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c @@ -91,7 +91,7 @@ void func_80ABBB34(EnNutsball* this, PlayState* play) { this->actor.shape.rot.y = 0; this->timer = 30; this->actionFunc = func_80ABBBA8; - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; } } diff --git a/src/overlays/actors/ovl_En_Ny/z_en_ny.c b/src/overlays/actors/ovl_En_Ny/z_en_ny.c index fcbf303355..dc1c52686f 100644 --- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c +++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c @@ -115,7 +115,7 @@ void EnNy_Init(Actor* thisx, PlayState* play) { this->unk_1CA = 0; this->unk_1D0 = 0; Actor_SetScale(&this->actor, 0.01f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.shape.rot.y = 0; this->actor.gravity = -0.4f; this->hitPlayer = 0; @@ -237,7 +237,7 @@ void EnNy_Move(EnNy* this, PlayState* play) { Math_ApproachF(&this->unk_1F4, 2000.0f, 1.0f, 100.0f); this->actor.world.rot.y = this->actor.shape.rot.y; yawDiff = Math_FAtan2F(this->actor.yDistToPlayer, this->actor.xzDistToPlayer); - this->actor.speedXZ = fabsf(cosf(yawDiff) * this->unk_1E8); + this->actor.speed = fabsf(cosf(yawDiff) * this->unk_1E8); if (this->unk_1F0 < this->actor.yDistToWater) { this->unk_1EC = sinf(yawDiff) * this->unk_1E8; } @@ -256,7 +256,7 @@ void EnNy_TurnToStone(EnNy* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); } this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; func_80ABCE38(this); } @@ -295,7 +295,7 @@ s32 EnNy_CollisionCheck(EnNy* this, PlayState* play) { this->collider.base.atFlags &= ~AT_BOUNCED; this->hitPlayer = 1; this->actor.world.rot.y = this->actor.yawTowardsPlayer; - this->actor.speedXZ = -4.0f; + this->actor.speed = -4.0f; return 0; } if (this->collider.base.atFlags & AT_HIT) { diff --git a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c index 0719a3be72..687401745e 100644 --- a/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c +++ b/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c @@ -70,7 +70,8 @@ void EnOkarinaEffect_TriggerStorm(EnOkarinaEffect* this, PlayState* play) { } void EnOkarinaEffect_ManageStorm(EnOkarinaEffect* this, PlayState* play) { - Flags_UnsetEnv(play, 5); // clear storms env flag + CutsceneFlags_Unset(play, 5); + if (((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) && (play->msgCtx.msgLength == 0) && (!FrameAdvance_IsEnabled(play)) && ((play->transitionMode == TRANS_MODE_OFF) || (gSaveContext.gameMode != GAMEMODE_NORMAL))) || @@ -81,7 +82,7 @@ void EnOkarinaEffect_ManageStorm(EnOkarinaEffect* this, PlayState* play) { osSyncPrintf("\nthis->timer=[%d]", this->timer); if (this->timer == 308) { osSyncPrintf("\n\n\n豆よ のびろ 指定\n\n\n"); // "Let's grow some beans" - Flags_SetEnv(play, 5); // set storms env flag + CutsceneFlags_Set(play, 5); } } diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c index 49204610da..315d6e261e 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c @@ -127,7 +127,7 @@ void func_80ABEF2C(EnOkarinaTag* this, PlayState* play) { ocarinaSong = 0xA; } player->stateFlags2 |= PLAYER_STATE2_23; - func_8010BD58(play, ocarinaSong + OCARINA_ACTION_CHECK_SARIA); + Message_StartOcarina(play, ocarinaSong + OCARINA_ACTION_CHECK_SARIA); this->actionFunc = func_80ABF0CC; } else if ((this->actor.xzDistToPlayer < (50.0f + this->interactRange) && ((fabsf(player->actor.world.pos.y - this->actor.world.pos.y) < 40.0f)))) { @@ -197,16 +197,16 @@ void func_80ABF28C(EnOkarinaTag* this, PlayState* play) { if (player->stateFlags2 & PLAYER_STATE2_24) { switch (this->type) { case 1: - func_8010BD58(play, OCARINA_ACTION_CHECK_LULLABY); + Message_StartOcarina(play, OCARINA_ACTION_CHECK_LULLABY); break; case 2: - func_8010BD58(play, OCARINA_ACTION_CHECK_STORMS); + Message_StartOcarina(play, OCARINA_ACTION_CHECK_STORMS); break; case 4: - func_8010BD58(play, OCARINA_ACTION_CHECK_TIME); + Message_StartOcarina(play, OCARINA_ACTION_CHECK_TIME); break; case 6: - func_8010BD58(play, OCARINA_ACTION_CHECK_LULLABY); + Message_StartOcarina(play, OCARINA_ACTION_CHECK_LULLABY); break; default: // "Ocarina Invisible-kun demo start check error source" @@ -242,19 +242,19 @@ void func_80ABF4C8(EnOkarinaTag* this, PlayState* play) { SET_EVENTCHKINF(EVENTCHKINF_39); break; case 2: - play->csCtx.segment = D_80ABF9D0; + play->csCtx.script = D_80ABF9D0; gSaveContext.cutsceneTrigger = 1; // Increase pitch by 3 semitones i.e. 2^(3/12), scale tempo by same ratio // Applies to the windmill bgm once the song of storms fanfare is complete Audio_SetMainBgmTempoFreqAfterFanfare(1.18921f, 90); break; case 4: - play->csCtx.segment = D_80ABFB40; + play->csCtx.script = D_80ABFB40; gSaveContext.cutsceneTrigger = 1; break; case 6: - play->csCtx.segment = LINK_IS_ADULT ? SEGMENTED_TO_VIRTUAL(spot02_scene_Cs_003C80) - : SEGMENTED_TO_VIRTUAL(spot02_scene_Cs_005020); + play->csCtx.script = LINK_IS_ADULT ? SEGMENTED_TO_VIRTUAL(spot02_scene_Cs_003C80) + : SEGMENTED_TO_VIRTUAL(spot02_scene_Cs_005020); gSaveContext.cutsceneTrigger = 1; SET_EVENTCHKINF(EVENTCHKINF_1D); func_80078884(NA_SE_SY_CORRECT_CHIME); @@ -307,7 +307,7 @@ void func_80ABF7CC(EnOkarinaTag* this, PlayState* play) { if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) { Message_CloseTextbox(play); if (!CHECK_QUEST_ITEM(QUEST_SONG_SUN)) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gSunSongGraveSunSongTeachCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gSunSongGraveSunSongTeachCs); gSaveContext.cutsceneTrigger = 1; } this->actionFunc = func_80ABF708; diff --git a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag_cutscene_data.c b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag_cutscene_data.c index f25593c4b0..3d2c0a0ff0 100644 --- a/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag_cutscene_data.c +++ b/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag_cutscene_data.c @@ -4,27 +4,27 @@ // clang-format off CutsceneData D_80ABF9D0[] = { CS_BEGIN_CUTSCENE(4, 360), - CS_TERMINATOR(KAKARIKO_VILLAGE_DRAIN_WELL, 200, 201), - CS_CAM_EYE_LIST(0, 331), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3100, 201, -100, 0x3235), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3100, 201, -100, 0x3336), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3100, 201, -100, 0x392C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x2C20), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x3235), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x3238), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x3639), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, 3178, 201, 113, 0x2C20), - CS_CAM_AT_LIST(0, 360), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 3054, 137, -64, 0x3235), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 3054, 137, -64, 0x3336), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 90, 60.0f, 3054, 137, -64, 0x392C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 90, 60.0f, 3118, 142, 96, 0x2C20), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 3118, 142, 96, 0x3235), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 3118, 142, 96, 0x3238), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 3118, 142, 96, 0x3639), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.0f, 3118, 142, 96, 0x2C20), + CS_DESTINATION(CS_DEST_KAKARIKO_VILLAGE_DRAIN_WELL, 200, 201), + CS_CAM_EYE_SPLINE(0, 331), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 3100, 201, -100, 0x3235), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 3100, 201, -100, 0x3336), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 3100, 201, -100, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x3235), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x3238), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 3178, 201, 113, 0x3639), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, 3178, 201, 113, 0x2C20), + CS_CAM_AT_SPLINE(0, 360), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 3054, 137, -64, 0x3235), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 3054, 137, -64, 0x3336), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 90, 60.0f, 3054, 137, -64, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 90, 60.0f, 3118, 142, 96, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 3118, 142, 96, 0x3235), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 3118, 142, 96, 0x3238), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 3118, 142, 96, 0x3639), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.0f, 3118, 142, 96, 0x2C20), CS_MISC_LIST(1), - CS_MISC(0x0013, 30, 31, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0x00000002, 0xFFFFFFFE, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000000), + CS_MISC(CS_MISC_SET_FLAG_FAST_WINDMILL, 30, 31, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0x00000002, 0xFFFFFFFE, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000000), CS_END(), }; @@ -32,106 +32,106 @@ CutsceneData D_80ABFB40[] = { CS_BEGIN_CUTSCENE(18, 3000), CS_UNK_DATA_LIST(0x00000021, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFAA, 0xFFFFFFAE, 0x00000000, 0xFFFFFFAA, 0xFFFFFFAE, 0x00000000, 0x00000000, 0x00000000), - CS_PLAYER_ACTION_LIST(3), - CS_PLAYER_ACTION(0x0011, 0, 80, 0x0000, 0x8000, 0x0000, 0, -40, 1400, 0, -40, 1400, 0.0f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0012, 80, 201, 0x0000, 0x8000, 0x0000, 0, -40, 1400, 0, -40, 1400, 0.0f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0005, 201, 662, 0x0000, 0x8000, 0x0000, 0, -40, 1400, 0, -40, 1400, 0.0f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE_LIST(3), + CS_PLAYER_CUE(0x0011, 0, 80, 0x0000, 0x8000, 0x0000, 0, -40, 1400, 0, -40, 1400, 0.0f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0012, 80, 201, 0x0000, 0x8000, 0x0000, 0, -40, 1400, 0, -40, 1400, 0.0f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0005, 201, 662, 0x0000, 0x8000, 0x0000, 0, -40, 1400, 0, -40, 1400, 0.0f, 0.0f, 1.401298464324817e-45f), CS_MISC_LIST(1), - CS_MISC(0x000D, 510, 611, 0x0000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(48, 1), - CS_NPC_ACTION(0x0003, 160, 289, 0x0000, 0x0000, 0x0000, 0, 20, 1400, 0, 60, 1400, 0.0f, 0.31007752f, 0.0f), - CS_NPC_ACTION_LIST(48, 3), - CS_NPC_ACTION(0x0004, 340, 420, 0x0000, 0x0000, 0x0000, 0, 120, 1335, 0, 40, 1335, 0.0f, -1.0f, 0.0f), - CS_NPC_ACTION(0x0004, 420, 465, 0x0000, 0x0000, 0x0000, 0, 40, 1335, 0, 16, 1335, 0.0f, -0.53333336f, 0.0f), - CS_NPC_ACTION(0x0002, 465, 519, 0x0000, 0x0000, 0x0000, 0, 16, 1335, 0, 16, 1335, 0.0f, 0.0f, 0.0f), + CS_MISC(CS_MISC_TRIFORCE_FLASH, 510, 611, 0x0000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000), + CS_ACTOR_CUE_LIST(48, 1), + CS_ACTOR_CUE(0x0003, 160, 289, 0x0000, 0x0000, 0x0000, 0, 20, 1400, 0, 60, 1400, 0.0f, 0.31007752f, 0.0f), + CS_ACTOR_CUE_LIST(48, 3), + CS_ACTOR_CUE(0x0004, 340, 420, 0x0000, 0x0000, 0x0000, 0, 120, 1335, 0, 40, 1335, 0.0f, -1.0f, 0.0f), + CS_ACTOR_CUE(0x0004, 420, 465, 0x0000, 0x0000, 0x0000, 0, 40, 1335, 0, 16, 1335, 0.0f, -0.53333336f, 0.0f), + CS_ACTOR_CUE(0x0002, 465, 519, 0x0000, 0x0000, 0x0000, 0, 16, 1335, 0, 16, 1335, 0.0f, 0.0f, 0.0f), CS_MISC_LIST(1), - CS_MISC(0x0003, 620, 621, 0x0000, 0x00000000, 0x00000001, 0x00000000, 0xFFFFFFFF, 0x00000001, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000), - CS_SCENE_TRANS_FX(0x0001, 338, 341), - CS_SCENE_TRANS_FX(0x0005, 344, 349), + CS_MISC(CS_MISC_SET_CSFLAG_0, 620, 621, 0x0000, 0x00000000, 0x00000001, 0x00000000, 0xFFFFFFFF, 0x00000001, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 338, 341), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 344, 349), CS_MISC_LIST(1), - CS_MISC(0x000C, 790, 791, 0x0000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000000), - CS_SCENE_TRANS_FX(0x0001, 157, 160), - CS_SCENE_TRANS_FX(0x0005, 159, 166), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x005A, 560, 561, 0x0000, 0x00000000, 0x00000003, 0x00000000, 0x00000004, 0x00000003, 0x00000000, 0x00000004), - CS_CAM_EYE_LIST(0, 451), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 2, 11, 1397, 0xA220), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 2, 11, 1397, 0xB820), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 2, 11, 1397, 0xD0A1), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 27, 1445, 0xBAEE), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 56, 27, 1385, 0xA5AF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -19, 27, 1341, 0xAE0A), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA8A5), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5ED), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA220), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5A4), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xC9A5), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5A2), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5BB), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xAE0A), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -44, -4, 1429, 0xB3A5), - CS_CAM_EYE_LIST(340, 1461), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xA220), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xB820), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xD0A1), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xBAEE), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xA5AF), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -6, 15, 1560, 0xAE0A), - CS_CAM_EYE_LIST(490, 941), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xA220), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xB820), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xD0A1), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xBAEE), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 0, 153, 1379, 0xA5AF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 55, 32, 1398, 0xAE0A), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA8A5), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5ED), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA220), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5A4), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xC9A5), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5A2), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5BB), - CS_CAM_AT_LIST(0, 480), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 2, 36, 1335, 0xA220), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 2, 36, 1335, 0xB820), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 2, 36, 1335, 0xD0A1), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 0, -8, 1391, 0xBAEE), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 1, -5, 1398, 0xA5AF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -2, -3, 1394, 0xAE0A), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 5, 0, 1399, 0xA8A5), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 1, 14, 1399, 0xA5ED), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -9, 33, 1402, 0xA220), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xA5A4), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xC9A5), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xA5A2), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xA5BB), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xAE0A), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.0f, -14, 41, 1409, 0xB3A5), - CS_CAM_AT_LIST(340, 1490), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -3, 48, 1414, 0xA220), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -3, 48, 1414, 0xB820), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 60.0f, -3, 48, 1414, 0xD0A1), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -3, 48, 1414, 0xBAEE), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -3, 47, 1414, 0xA5AF), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.0f, -3, 47, 1414, 0xAE0A), - CS_CAM_AT_LIST(490, 970), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 0, 264, 1274, 0xA220), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 60, 60.0f, 0, 264, 1274, 0xB820), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 60, 60.0f, 0, 264, 1274, 0xD0A1), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 0, 264, 1274, 0xBAEE), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 0, 170, 1275, 0xA5AF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 10, 51, 1306, 0xAE0A), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA8A5), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5ED), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA220), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5A4), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xC9A5), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5A2), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5BB), + CS_MISC(CS_MISC_STOP_CUTSCENE, 790, 791, 0x0000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000000), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 157, 160), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 159, 166), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_DOOR_OF_TIME, 560, 561, 0x0000, 0x00000000, 0x00000003, 0x00000000, 0x00000004, 0x00000003, 0x00000000, 0x00000004), + CS_CAM_EYE_SPLINE(0, 451), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 2, 11, 1397, 0xA220), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 2, 11, 1397, 0xB820), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 2, 11, 1397, 0xD0A1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 0, 27, 1445, 0xBAEE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 56, 27, 1385, 0xA5AF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -19, 27, 1341, 0xAE0A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA8A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5ED), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA220), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5A4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xC9A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5A2), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xA5BB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -44, -4, 1429, 0xAE0A), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -44, -4, 1429, 0xB3A5), + CS_CAM_EYE_SPLINE(340, 1461), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xA220), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xB820), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xD0A1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xBAEE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -6, 15, 1560, 0xA5AF), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -6, 15, 1560, 0xAE0A), + CS_CAM_EYE_SPLINE(490, 941), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xA220), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xB820), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xD0A1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 0, 264, 1379, 0xBAEE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 0, 153, 1379, 0xA5AF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 55, 32, 1398, 0xAE0A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA8A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5ED), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA220), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5A4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xC9A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5A2), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, 111, -38, 1511, 0xA5BB), + CS_CAM_AT_SPLINE(0, 480), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 2, 36, 1335, 0xA220), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 2, 36, 1335, 0xB820), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 2, 36, 1335, 0xD0A1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 0, -8, 1391, 0xBAEE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 1, -5, 1398, 0xA5AF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -2, -3, 1394, 0xAE0A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 5, 0, 1399, 0xA8A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 1, 14, 1399, 0xA5ED), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -9, 33, 1402, 0xA220), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xA5A4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xC9A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xA5A2), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xA5BB), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -14, 41, 1409, 0xAE0A), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.0f, -14, 41, 1409, 0xB3A5), + CS_CAM_AT_SPLINE(340, 1490), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -3, 48, 1414, 0xA220), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -3, 48, 1414, 0xB820), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.0f, -3, 48, 1414, 0xD0A1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -3, 48, 1414, 0xBAEE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -3, 47, 1414, 0xA5AF), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.0f, -3, 47, 1414, 0xAE0A), + CS_CAM_AT_SPLINE(490, 970), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 0, 264, 1274, 0xA220), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 60, 60.0f, 0, 264, 1274, 0xB820), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 60, 60.0f, 0, 264, 1274, 0xD0A1), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 0, 264, 1274, 0xBAEE), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 0, 170, 1275, 0xA5AF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 10, 51, 1306, 0xAE0A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA8A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5ED), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA220), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5A4), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xC9A5), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5A2), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.0f, 68, -2, 1424, 0xA5BB), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c index 80136b32ac..6c54384518 100644 --- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c +++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c @@ -153,7 +153,7 @@ void EnOkuta_Init(Actor* thisx, PlayState* play) { this->timer = 30; thisx->shape.rot.y = 0; this->actionFunc = EnOkuta_ProjectileFly; - thisx->speedXZ = 10.0f; + thisx->speed = 10.0f; } } @@ -478,8 +478,8 @@ void EnOkuta_ProjectileFly(EnOkuta* this, PlayState* play) { this->actor.home.rot.z += 0x1554; if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { this->actor.gravity = -1.0f; - this->actor.speedXZ -= 0.1f; - this->actor.speedXZ = CLAMP_MIN(this->actor.speedXZ, 1.0f); + this->actor.speed -= 0.1f; + this->actor.speed = CLAMP_MIN(this->actor.speed, 1.0f); } if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (this->collider.base.atFlags & AT_HIT) || this->collider.base.acFlags & AC_HIT || diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index 21a538f606..3843558f32 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -743,20 +743,20 @@ void func_80ACB748(EnOwl* this, PlayState* play) { switch (owlType) { case 7: func_800F436C(&D_80ACD62C, NA_SE_EV_FLYING_AIR - SFX_FLAG, weight * 2.0f); - if ((play->csCtx.frames > 324) || ((play->csCtx.frames >= 142 && (play->csCtx.frames <= 266)))) { + if ((play->csCtx.curFrame > 324) || ((play->csCtx.curFrame >= 142 && (play->csCtx.curFrame <= 266)))) { func_800F4414(&D_80ACD62C, NA_SE_EN_OWL_FLUTTER, weight * 2.0f); } - if (play->csCtx.frames == 85) { + if (play->csCtx.curFrame == 85) { func_800F436C(&D_80ACD62C, NA_SE_EV_PASS_AIR, weight * 2.0f); } break; case 8: case 9: func_800F436C(&D_80ACD62C, NA_SE_EV_FLYING_AIR - SFX_FLAG, weight * 2.0f); - if ((play->csCtx.frames >= 420) || ((0xC1 < play->csCtx.frames && (play->csCtx.frames <= 280)))) { + if ((play->csCtx.curFrame >= 420) || ((0xC1 < play->csCtx.curFrame && (play->csCtx.curFrame <= 280)))) { func_800F4414(&D_80ACD62C, NA_SE_EN_OWL_FLUTTER, weight * 2.0f); } - if (play->csCtx.frames == 217) { + if (play->csCtx.curFrame == 217) { func_800F436C(&D_80ACD62C, NA_SE_EV_PASS_AIR, weight * 2.0f); } break; @@ -764,8 +764,8 @@ void func_80ACB748(EnOwl* this, PlayState* play) { } void func_80ACB904(EnOwl* this, PlayState* play) { - if (play->csCtx.state != CS_STATE_IDLE && (play->csCtx.npcActions[7] != NULL)) { - if (this->unk_40A != play->csCtx.npcActions[7]->action) { + if (play->csCtx.state != CS_STATE_IDLE && (play->csCtx.actorCues[7] != NULL)) { + if (this->unk_40A != play->csCtx.actorCues[7]->id) { func_80ACD130(this, play, 7); func_80ACBAB8(this, play); } @@ -778,8 +778,8 @@ void func_80ACB904(EnOwl* this, PlayState* play) { } void func_80ACB994(EnOwl* this, PlayState* play) { - if (play->csCtx.state != CS_STATE_IDLE && (play->csCtx.npcActions[7] != NULL)) { - if (this->unk_40A != play->csCtx.npcActions[7]->action) { + if (play->csCtx.state != CS_STATE_IDLE && (play->csCtx.actorCues[7] != NULL)) { + if (this->unk_40A != play->csCtx.actorCues[7]->id) { func_80ACD130(this, play, 7); func_80ACBAB8(this, play); } @@ -792,13 +792,13 @@ void func_80ACB994(EnOwl* this, PlayState* play) { } void EnOwl_WaitDefault(EnOwl* this, PlayState* play) { - if (play->csCtx.state != CS_STATE_IDLE && (play->csCtx.npcActions[7] != NULL)) { - if (this->unk_40A != play->csCtx.npcActions[7]->action) { + if (play->csCtx.state != CS_STATE_IDLE && (play->csCtx.actorCues[7] != NULL)) { + if (this->unk_40A != play->csCtx.actorCues[7]->id) { this->actionFlags |= 4; func_80ACD130(this, play, 7); func_80ACBAB8(this, play); } else { - this->actor.world.rot.z = play->csCtx.npcActions[7]->urot.y; + this->actor.world.rot.z = play->csCtx.actorCues[7]->rot.y; } } @@ -808,28 +808,28 @@ void EnOwl_WaitDefault(EnOwl* this, PlayState* play) { } void func_80ACBAB8(EnOwl* this, PlayState* play) { - switch (play->csCtx.npcActions[7]->action - 1) { - case 0: - EnOwl_ChangeMode(this, func_80ACB904, func_80ACC540, &this->skelAnime, &gOwlFlyAnim, 0.0f); - break; + switch (play->csCtx.actorCues[7]->id) { case 1: - this->actor.draw = EnOwl_Draw; - EnOwl_ChangeMode(this, EnOwl_WaitDefault, func_80ACC540, &this->skelAnime, &gOwlPerchAnim, 0.0f); + EnOwl_ChangeMode(this, func_80ACB904, func_80ACC540, &this->skelAnime, &gOwlFlyAnim, 0.0f); break; case 2: this->actor.draw = EnOwl_Draw; - EnOwl_ChangeMode(this, func_80ACB994, func_80ACC540, &this->skelAnime, &gOwlFlyAnim, 0.0f); + EnOwl_ChangeMode(this, EnOwl_WaitDefault, func_80ACC540, &this->skelAnime, &gOwlPerchAnim, 0.0f); break; case 3: + this->actor.draw = EnOwl_Draw; + EnOwl_ChangeMode(this, func_80ACB994, func_80ACC540, &this->skelAnime, &gOwlFlyAnim, 0.0f); + break; + case 4: this->actor.draw = NULL; this->actionFunc = EnOwl_WaitDefault; break; - case 4: + case 5: Actor_Kill(&this->actor); break; } - this->unk_40A = play->csCtx.npcActions[7]->action; + this->unk_40A = play->csCtx.actorCues[7]->id; } void func_80ACBC0C(EnOwl* this, PlayState* play) { @@ -842,8 +842,8 @@ void func_80ACBC0C(EnOwl* this, PlayState* play) { Math_SmoothStepToS(&this->actor.world.rot.y, this->unk_400, 2, 0x80, 0x40); this->actor.shape.rot.y = this->actor.world.rot.y; - if (this->actor.speedXZ < 16.0f) { - this->actor.speedXZ += 0.5f; + if (this->actor.speed < 16.0f) { + this->actor.speed += 0.5f; } if ((this->unk_3F8 + 1000.0f) < this->actor.world.pos.y) { @@ -866,11 +866,11 @@ void func_80ACBD4C(EnOwl* this, PlayState* play) { if (this->skelAnime.curFrame > 45.0f) { this->actor.velocity.y = 2.0f; this->actor.gravity = 0.0f; - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; } else if (this->skelAnime.curFrame > 17.0f) { this->actor.velocity.y = 6.0f; this->actor.gravity = 0.0f; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; } if (this->actionFlags & 1) { @@ -911,7 +911,7 @@ void func_80ACBF50(EnOwl* this, PlayState* play) { this->unk_3FE = 6; this->actor.velocity.y = 2.0f; this->actor.gravity = 0.0f; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; } this->actionFlags |= 8; } @@ -935,12 +935,12 @@ void func_80ACC00C(EnOwl* this, PlayState* play) { osSyncPrintf(VT_FGCOL(CYAN)); osSyncPrintf("SPOT 06 の デモがはしった\n"); // "Demo of SPOT 06 has been completed" osSyncPrintf(VT_RST); - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gLakeHyliaOwlCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gLakeHyliaOwlCs); this->actor.draw = NULL; break; case 8: case 9: - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gDMTOwlCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gDMTOwlCs); this->actor.draw = NULL; break; default: @@ -972,9 +972,9 @@ void func_80ACC00C(EnOwl* this, PlayState* play) { void func_80ACC23C(EnOwl* this, PlayState* play) { if (this->skelAnime.curFrame < 20.0f) { - this->actor.speedXZ = 1.5f; + this->actor.speed = 1.5f; } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Math_SmoothStepToS(&this->actor.world.rot.y, this->unk_400, 2, 0x384, 0x258); this->actor.shape.rot.y = this->actor.world.rot.y; } @@ -985,7 +985,7 @@ void func_80ACC23C(EnOwl* this, PlayState* play) { this->unk_3FE = 5; this->actor.velocity.y = 0.0f; this->actor.gravity = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } this->actionFlags |= 8; @@ -1063,9 +1063,9 @@ s32 func_80ACC624(EnOwl* this, PlayState* play) { return true; } else if (switchFlag == 0xA) { return true; - } else if (play->csCtx.frames >= 300 && play->csCtx.frames <= 430) { + } else if (play->csCtx.curFrame >= 300 && play->csCtx.curFrame <= 430) { return true; - } else if (play->csCtx.frames >= 1080 && play->csCtx.frames <= 1170) { + } else if (play->csCtx.curFrame >= 1080 && play->csCtx.curFrame <= 1170) { return true; } else { return false; @@ -1335,17 +1335,17 @@ void EnOwl_ChangeMode(EnOwl* this, EnOwlActionFunc actionFunc, OwlFunc arg2, Ske void func_80ACD130(EnOwl* this, PlayState* play, s32 idx) { Vec3f startPos; - startPos.x = play->csCtx.npcActions[idx]->startPos.x; - startPos.y = play->csCtx.npcActions[idx]->startPos.y; - startPos.z = play->csCtx.npcActions[idx]->startPos.z; + startPos.x = play->csCtx.actorCues[idx]->startPos.x; + startPos.y = play->csCtx.actorCues[idx]->startPos.y; + startPos.z = play->csCtx.actorCues[idx]->startPos.z; this->actor.world.pos = startPos; - this->actor.world.rot.y = this->actor.shape.rot.y = play->csCtx.npcActions[idx]->rot.y; - this->actor.shape.rot.z = play->csCtx.npcActions[idx]->urot.z; + this->actor.world.rot.y = this->actor.shape.rot.y = play->csCtx.actorCues[idx]->rot.y; + this->actor.shape.rot.z = play->csCtx.actorCues[idx]->rot.z; } f32 func_80ACD1C4(PlayState* play, s32 idx) { - f32 ret = Environment_LerpWeight(play->csCtx.npcActions[idx]->endFrame, play->csCtx.npcActions[idx]->startFrame, - play->csCtx.frames); + f32 ret = Environment_LerpWeight(play->csCtx.actorCues[idx]->endFrame, play->csCtx.actorCues[idx]->startFrame, + play->csCtx.curFrame); ret = CLAMP_MAX(ret, 1.0f); return ret; @@ -1359,7 +1359,7 @@ void func_80ACD220(EnOwl* this, Vec3f* arg1, f32 arg2) { rpy.z = (arg1->z - this->actor.world.pos.z) * arg2; Math_StepToF(&this->actor.velocity.y, rpy.y, 1.0f); - this->actor.speedXZ = sqrtf(SQ(rpy.x) + SQ(rpy.z)); + this->actor.speed = sqrtf(SQ(rpy.x) + SQ(rpy.z)); this->actor.world.rot.y = Math_Vec3f_Yaw(&this->actor.world.pos, arg1); this->actor.shape.rot.y = this->actor.world.rot.y; } @@ -1369,17 +1369,17 @@ void func_80ACD2CC(EnOwl* this, PlayState* play) { s32 angle; f32 t = func_80ACD1C4(play, 7); - pos.x = play->csCtx.npcActions[7]->startPos.x; - pos.y = play->csCtx.npcActions[7]->startPos.y; - pos.z = play->csCtx.npcActions[7]->startPos.z; - angle = (s16)play->csCtx.npcActions[7]->rot.y - this->actor.world.rot.z; + pos.x = play->csCtx.actorCues[7]->startPos.x; + pos.y = play->csCtx.actorCues[7]->startPos.y; + pos.z = play->csCtx.actorCues[7]->startPos.z; + angle = (s16)play->csCtx.actorCues[7]->rot.y - this->actor.world.rot.z; if (angle < 0) { angle += 0x10000; } angle = (s16)((t * angle) + this->actor.world.rot.z); angle = (u16)angle; if (this->actionFlags & 4) { - f32 phi_f2 = play->csCtx.npcActions[7]->urot.x; + f32 phi_f2 = play->csCtx.actorCues[7]->rot.x; phi_f2 *= 10.0f * (360.0f / 0x10000); if (phi_f2 < 0.0f) { @@ -1391,7 +1391,7 @@ void func_80ACD2CC(EnOwl* this, PlayState* play) { this->actor.world.pos = pos; this->actor.draw = EnOwl_Draw; this->actionFlags &= ~4; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } else { pos.x -= Math_SinS(angle) * this->unk_3F8; pos.z += Math_CosS(angle) * this->unk_3F8; @@ -1404,12 +1404,12 @@ void func_80ACD4D4(EnOwl* this, PlayState* play) { Vec3f endPosf; f32 temp_ret = func_80ACD1C4(play, 7); - pos.x = play->csCtx.npcActions[7]->startPos.x; - pos.y = play->csCtx.npcActions[7]->startPos.y; - pos.z = play->csCtx.npcActions[7]->startPos.z; - endPosf.x = play->csCtx.npcActions[7]->endPos.x; - endPosf.y = play->csCtx.npcActions[7]->endPos.y; - endPosf.z = play->csCtx.npcActions[7]->endPos.z; + pos.x = play->csCtx.actorCues[7]->startPos.x; + pos.y = play->csCtx.actorCues[7]->startPos.y; + pos.z = play->csCtx.actorCues[7]->startPos.z; + endPosf.x = play->csCtx.actorCues[7]->endPos.x; + endPosf.y = play->csCtx.actorCues[7]->endPos.y; + endPosf.z = play->csCtx.actorCues[7]->endPos.z; pos.x = (endPosf.x - pos.x) * temp_ret + pos.x; pos.y = (endPosf.y - pos.y) * temp_ret + pos.y; pos.z = (endPosf.z - pos.z) * temp_ret + pos.z; diff --git a/src/overlays/actors/ovl_En_Part/z_en_part.c b/src/overlays/actors/ovl_En_Part/z_en_part.c index 68aa79e5ba..2c8098446a 100644 --- a/src/overlays/actors/ovl_En_Part/z_en_part.c +++ b/src/overlays/actors/ovl_En_Part/z_en_part.c @@ -45,13 +45,13 @@ void func_80ACDDE8(EnPart* this, PlayState* play) { this->actor.gravity = -0.3f - Rand_ZeroOne() * 0.5f; this->rotZSpeed = 0.3f; this->timer = 25; - this->actor.speedXZ = (Rand_ZeroOne() - 0.5f) * 2.0f; + this->actor.speed = (Rand_ZeroOne() - 0.5f) * 2.0f; break; case 13: this->timer = 400; FALLTHROUGH; case 12: - this->actor.speedXZ = Rand_CenteredFloat(6.0f); + this->actor.speed = Rand_CenteredFloat(6.0f); this->actor.home.pos = this->actor.world.pos; this->timer += 60; this->actor.velocity.y = Rand_ZeroOne() * 5.0f + 4.0f; @@ -76,7 +76,7 @@ void func_80ACDDE8(EnPart* this, PlayState* play) { EffectSsEnFire_SpawnVec3f(play, &this->actor, &this->actor.world.pos, 40, 0x8001, 0, -1); FALLTHROUGH; case 3: - this->actor.speedXZ = (Rand_ZeroOne() - 0.5f) * 3.0f; + this->actor.speed = (Rand_ZeroOne() - 0.5f) * 3.0f; this->timer = (s16)(Rand_ZeroOne() * 17.0f) + 10; this->actor.velocity.y = Rand_ZeroOne() * 3.0f + 8.0f; this->actor.gravity = -0.6f - Rand_ZeroOne() * 0.3f; @@ -91,7 +91,7 @@ void func_80ACDDE8(EnPart* this, PlayState* play) { sign = -1.0f; } this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 6.0f * sign; + this->actor.speed = 6.0f * sign; this->actor.gravity = -1.2f; this->rotZSpeed = 0.15f * sign; ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f); @@ -114,7 +114,7 @@ void func_80ACE13C(EnPart* this, PlayState* play) { if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (this->actor.world.pos.y <= this->actor.floorHeight)) { this->action = 4; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = 0.0f; this->actor.velocity.y = 0.0f; } @@ -252,7 +252,7 @@ void EnPart_Update(Actor* thisx, PlayState* play) { if ((this->actor.params > 4 && this->actor.params < 9) || this->actor.params < 0) { Actor_UpdateBgCheckInfo(play, &this->actor, 5.0f, 15.0f, 0.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2); if (this->actor.params >= 0) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); if (thisx->bgCheckFlags & BGCHECKFLAG_GROUND) { thisx->bgCheckFlags &= ~BGCHECKFLAG_GROUND; thisx->velocity.y = 6.0f; diff --git a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c index 5c80917cc6..ea1c502d9d 100644 --- a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c +++ b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c @@ -496,7 +496,7 @@ void EnPeehat_Ground_SetStateSeekPlayer(EnPeehat* this) { void EnPeehat_Ground_StateSeekPlayer(EnPeehat* this, PlayState* play) { Player* player = GET_PLAYER(play); - Math_SmoothStepToF(&this->actor.speedXZ, 3.0f, 1.0f, 0.25f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 3.0f, 1.0f, 0.25f, 0.0f); Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.floorHeight + 80.0f, 1.0f, 3.0f, 0.0f); if (this->seekPlayerTimer <= 0) { EnPeehat_Ground_SetStateLanding(this); @@ -537,7 +537,7 @@ void EnPeehat_Larva_StateSeekPlayer(EnPeehat* this, PlayState* play) { if (this->actor.parent != NULL && this->actor.parent->update == NULL) { this->actor.parent = NULL; } - this->actor.speedXZ = speedXZ; + this->actor.speed = speedXZ; if (this->actor.world.pos.y - this->actor.floorHeight >= 70.0f) { Math_SmoothStepToF(&this->actor.velocity.y, -1.3f, 1.0f, 0.5f, 0.0f); } else { @@ -598,7 +598,7 @@ void EnPeehat_Ground_SetStateLanding(EnPeehat* this) { void EnPeehat_Ground_StateLanding(EnPeehat* this, PlayState* play) { Math_SmoothStepToF(&this->actor.shape.yOffset, -1000.0f, 1.0f, 50.0f, 0.0f); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 1.0f, 0.0f); Math_SmoothStepToS(&this->actor.shape.rot.x, 0, 1, 50, 0); if (SkelAnime_Update(&this->skelAnime)) { EnPeehat_Ground_SetStateGround(this); @@ -625,7 +625,7 @@ void EnPeehat_Flying_SetStateLanding(EnPeehat* this) { void EnPeehat_Flying_StateLanding(EnPeehat* this, PlayState* play) { Math_SmoothStepToF(&this->actor.shape.yOffset, -1000.0f, 1.0f, 50.0f, 0.0f); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 1.0f, 0.0f); Math_SmoothStepToS(&this->actor.shape.rot.x, 0, 1, 50, 0); if (SkelAnime_Update(&this->skelAnime)) { EnPeehat_Flying_SetStateGround(this); @@ -646,7 +646,7 @@ void EnPeehat_Flying_StateLanding(EnPeehat* this, PlayState* play) { void EnPeehat_Ground_SetStateHover(EnPeehat* this) { Animation_PlayLoop(&this->skelAnime, &gPeehatFlyingAnim); - this->actor.speedXZ = Rand_ZeroOne() * 0.5f + 2.5f; + this->actor.speed = Rand_ZeroOne() * 0.5f + 2.5f; this->unk_2D4 = Rand_ZeroOne() * 10 + 10; this->state = PEAHAT_STATE_15; EnPeehat_SetupAction(this, EnPeehat_Ground_StateHover); @@ -665,7 +665,7 @@ void EnPeehat_Ground_StateHover(EnPeehat* this, PlayState* play) { this->unk_2E0 += ((0.0f <= cos) ? cos : -cos) + 0.07f; this->unk_2D4--; if (this->unk_2D4 <= 0) { - this->actor.speedXZ = Rand_ZeroOne() * 0.5f + 2.5f; + this->actor.speed = Rand_ZeroOne() * 0.5f + 2.5f; this->unk_2D4 = Rand_ZeroOne() * 10.0f + 10.0f; this->unk_2F4 = (Rand_ZeroOne() - 0.5f) * 1000.0f; } @@ -694,7 +694,7 @@ void EnPeehat_Ground_StateHover(EnPeehat* this, PlayState* play) { void EnPeehat_Ground_SetStateReturnHome(EnPeehat* this) { this->state = PEAHAT_STATE_RETURN_HOME; - this->actor.speedXZ = 2.5f; + this->actor.speed = 2.5f; EnPeehat_SetupAction(this, EnPeehat_Ground_StateReturnHome); } @@ -732,7 +732,7 @@ void EnPeehat_Ground_StateReturnHome(EnPeehat* this, PlayState* play) { void EnPeehat_SetStateAttackRecoil(EnPeehat* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gPeehatRecoilAnim, -4.0f); this->state = PEAHAT_STATE_ATTACK_RECOIL; - this->actor.speedXZ = -9.0f; + this->actor.speed = -9.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer; EnPeehat_SetupAction(this, EnPeehat_StateAttackRecoil); } @@ -740,8 +740,8 @@ void EnPeehat_SetStateAttackRecoil(EnPeehat* this) { void EnPeehat_StateAttackRecoil(EnPeehat* this, PlayState* play) { this->bladeRot += this->bladeRotVel; SkelAnime_Update(&this->skelAnime); - this->actor.speedXZ += 0.5f; - if (this->actor.speedXZ == 0.0f) { + this->actor.speed += 0.5f; + if (this->actor.speed == 0.0f) { // Is PEAHAT_TYPE_LARVA if (this->actor.params > 0) { Vec3f zeroVec = { 0, 0, 0 }; @@ -768,7 +768,7 @@ void EnPeehat_StateAttackRecoil(EnPeehat* this, PlayState* play) { void EnPeehat_SetStateBoomerangStunned(EnPeehat* this) { this->state = PEAHAT_STATE_STUNNED; if (this->actor.floorHeight < this->actor.world.pos.y) { - this->actor.speedXZ = -9.0f; + this->actor.speed = -9.0f; } this->bladeRotVel = 0; this->actor.world.rot.y = this->actor.yawTowardsPlayer; @@ -778,7 +778,7 @@ void EnPeehat_SetStateBoomerangStunned(EnPeehat* this) { } void EnPeehat_StateBoomerangStunned(EnPeehat* this, PlayState* play) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 1.0f, 0.0f); Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.floorHeight, 1.0f, 8.0f, 0.0f); if (this->actor.colorFilterTimer == 0) { EnPeehat_Ground_SetStateRise(this); @@ -788,7 +788,7 @@ void EnPeehat_StateBoomerangStunned(EnPeehat* this, PlayState* play) { void EnPeehat_Adult_SetStateDie(EnPeehat* this) { this->bladeRotVel = 0; this->isStateDieFirstUpdate = 1; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8); this->state = PEAHAT_STATE_DYING; this->scaleShift = 0.0f; @@ -803,7 +803,7 @@ void EnPeehat_Adult_StateDie(EnPeehat* this, PlayState* play) { Animation_MorphToPlayOnce(&this->skelAnime, &gPeehatRecoilAnim, -4.0f); this->bladeRotVel = 4000; this->unk_2D4 = 14; - this->actor.speedXZ = 0; + this->actor.speed = 0; this->actor.velocity.y = 6; this->isStateDieFirstUpdate = 0; this->actor.shape.rot.z = this->actor.shape.rot.x = 0; @@ -827,8 +827,8 @@ void EnPeehat_Adult_StateDie(EnPeehat* this, PlayState* play) { func_80033480(play, &pos, 80.0f, 1, 150, 100, 1); EnPeehat_SpawnDust(play, this, &pos, 75.0f, 2, 1.05f, 2.0f); } - if (this->actor.speedXZ < 0) { - this->actor.speedXZ += 0.25f; + if (this->actor.speed < 0) { + this->actor.speed += 0.25f; } this->unk_2D4--; if (this->unk_2D4 <= 0) { @@ -925,7 +925,7 @@ void EnPeehat_Update(Actor* thisx, PlayState* play) { EnPeehat_Adult_CollisionCheck(this, play); } if (thisx->colChkInfo.damageEffect != PEAHAT_DMG_EFF_LIGHT_ICE_ARROW) { - if (thisx->speedXZ != 0.0f || thisx->velocity.y != 0.0f) { + if (thisx->speed != 0.0f || thisx->velocity.y != 0.0f) { Actor_MoveForward(thisx); Actor_UpdateBgCheckInfo(play, thisx, 25.0f, 30.0f, 30.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2); } @@ -1067,7 +1067,7 @@ void EnPeehat_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); SkelAnime_DrawOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, EnPeehat_OverrideLimbDraw, EnPeehat_PostLimbDraw, this); - if (this->actor.speedXZ != 0.0f || this->actor.velocity.y != 0.0f) { + if (this->actor.speed != 0.0f || this->actor.velocity.y != 0.0f) { Matrix_MultVec3f(&D_80AD285C[0], &this->colQuad.dim.quad[1]); Matrix_MultVec3f(&D_80AD285C[1], &this->colQuad.dim.quad[0]); Matrix_MultVec3f(&D_80AD285C[2], &this->colQuad.dim.quad[3]); diff --git a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c index 978b12386c..10a2748cb6 100644 --- a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c +++ b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c @@ -99,7 +99,7 @@ void EnPoDesert_SetNextPathPoint(EnPoDesert* this, PlayState* play) { this->initDistToNextPoint = CLAMP_MIN(this->initDistToNextPoint, 1.0f); this->currentPathPoint++; this->yDiff = this->actor.home.pos.y - this->actor.world.pos.y; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (path->count == this->currentPathPoint) { this->currentPathPoint = 0; } @@ -114,7 +114,7 @@ void EnPoDesert_SetupMoveToNextPoint(EnPoDesert* this) { void EnPoDesert_SetupDisappear(EnPoDesert* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gPoeFieldDisappearAnim, -6.0f); this->actionTimer = 16; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_PO_DISAPPEAR); this->actionFunc = EnPoDesert_Disappear; } @@ -160,7 +160,7 @@ void EnPoDesert_MoveToNextPoint(EnPoDesert* this, PlayState* play) { temp_f20 = Actor_WorldDistXZToPoint(&this->actor, &this->actor.home.pos); this->actor.world.rot.y = Actor_WorldYawTowardPoint(&this->actor, &this->actor.home.pos); Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y + 0x8000, 5, 0x400); - this->actor.speedXZ = sinf(this->speedModifier * (M_PI / 32.0f)) * 2.5f + 5.5f; + this->actor.speed = sinf(this->speedModifier * (M_PI / 32.0f)) * 2.5f + 5.5f; func_8002F974(&this->actor, NA_SE_EN_PO_FLY - SFX_FLAG); this->targetY = this->actor.home.pos.y - ((temp_f20 * this->yDiff) / this->initDistToNextPoint); if (temp_f20 < 40.0f) { diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index 89a874d4f4..3c6487867c 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -213,7 +213,7 @@ void EnPoField_SetupAppear(EnPoField* this) { Actor_PlaySfx(&this->actor, NA_SE_EN_PO_APPEAR); this->actor.home.pos.y = this->actor.world.pos.y; if (this->actor.params == EN_PO_FIELD_BIG) { - this->actor.speedXZ = 12.0f; + this->actor.speed = 12.0f; this->collider.dim.radius = 35; this->collider.dim.height = 100; this->collider.dim.yShift = 10; @@ -221,7 +221,7 @@ void EnPoField_SetupAppear(EnPoField* this) { this->scaleModifier = 0.014f; this->actor.naviEnemyId = NAVI_ENEMY_BIG_POE; } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->collider.dim.radius = D_80AD7080.dim.radius; this->collider.dim.height = D_80AD7080.dim.height; this->collider.dim.yShift = D_80AD7080.dim.yShift; @@ -252,7 +252,7 @@ void EnPoField_SetupFlee(EnPoField* this) { Animation_MorphToLoop(&this->skelAnime, &gPoeFieldFleeAnim, -5.0f); this->collider.base.acFlags |= AC_ON; this->actionFunc = EnPoField_Flee; - this->actor.speedXZ = 12.0f; + this->actor.speed = 12.0f; if (this->actionFunc != EnPoField_Damage) { this->actor.flags |= ACTOR_FLAG_0; this->actor.world.rot.y = this->actor.shape.rot.y + 0x8000; @@ -269,7 +269,7 @@ void EnPoField_SetupDamage(EnPoField* this) { this->actor.world.rot.y = Actor_WorldYawTowardActor(&this->actor, this->collider.base.ac) + 0x8000; } this->collider.base.acFlags &= ~(AC_HIT | AC_ON); - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 16); this->actionFunc = EnPoField_Damage; } @@ -277,7 +277,7 @@ void EnPoField_SetupDamage(EnPoField* this) { void EnPoField_SetupDeath(EnPoField* this) { this->actionTimer = 0; this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; this->actor.naviEnemyId = NAVI_ENEMY_NONE; if (this->flameTimer >= 20) { @@ -290,7 +290,7 @@ void EnPoField_SetupDisappear(EnPoField* this) { Animation_MorphToLoop(&this->skelAnime, &gPoeFieldDisappearAnim, -6.0f); this->actionTimer = 16; this->collider.base.acFlags &= ~(AC_HIT | AC_ON); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_PO_LAUGH); Actor_PlaySfx(&this->actor, NA_SE_EN_PO_DISAPPEAR); this->actionFunc = EnPoField_Disappear; @@ -379,18 +379,18 @@ void EnPoField_CorrectYPos(EnPoField* this, PlayState* play) { void EnPoField_SetFleeSpeed(EnPoField* this, PlayState* play) { Player* player = GET_PLAYER(play); f32 speed = - ((player->stateFlags1 & PLAYER_STATE1_23) && player->rideActor != NULL) ? player->rideActor->speedXZ : 12.0f; + ((player->stateFlags1 & PLAYER_STATE1_23) && player->rideActor != NULL) ? player->rideActor->speed : 12.0f; if (this->actor.xzDistToPlayer < 300.0f) { - this->actor.speedXZ = speed * 1.5f + 2.0f; + this->actor.speed = speed * 1.5f + 2.0f; } else if (this->actor.xzDistToPlayer < 400.0f) { - this->actor.speedXZ = speed * 1.25f + 2.0f; + this->actor.speed = speed * 1.25f + 2.0f; } else if (this->actor.xzDistToPlayer < 500.0f) { - this->actor.speedXZ = speed + 2.0f; + this->actor.speed = speed + 2.0f; } else { - this->actor.speedXZ = 12.0f; + this->actor.speed = 12.0f; } - this->actor.speedXZ = CLAMP_MIN(this->actor.speedXZ, 12.0f); + this->actor.speed = CLAMP_MIN(this->actor.speed, 12.0f); } void EnPoField_WaitForSpawn(EnPoField* this, PlayState* play) { @@ -526,7 +526,7 @@ void EnPoField_Flee(EnPoField* this, PlayState* play) { } void EnPoField_Damage(EnPoField* this, PlayState* play) { - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.5f); + Math_StepToF(&this->actor.speed, 0.0f, 0.5f); if (SkelAnime_Update(&this->skelAnime)) { if (this->actor.colChkInfo.health == 0) { EnPoField_SetupDeath(this); diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c index 083a4d1e16..1b11926bd9 100644 --- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c +++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c @@ -148,7 +148,7 @@ void EnPoRelay_SetupRace(EnPoRelay* this) { void EnPoRelay_SetupEndRace(EnPoRelay* this) { this->actor.world.rot.y = this->actor.home.rot.y + 0xC000; this->actor.flags &= ~ACTOR_FLAG_27; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionFunc = EnPoRelay_EndRace; } @@ -183,7 +183,7 @@ void EnPoRelay_Talk(EnPoRelay* this, PlayState* play) { void EnPoRelay_Race(EnPoRelay* this, PlayState* play) { Player* player = GET_PLAYER(play); Vec3f vec; - f32 speed; + f32 speedXZ; f32 multiplier; if (this->actionTimer != 0) { @@ -192,18 +192,18 @@ void EnPoRelay_Race(EnPoRelay* this, PlayState* play) { if (this->actionTimer == 0 && Rand_ZeroOne() < 0.03f) { this->actionTimer = 32; if (this->pathIndex < 23) { - speed = Rand_ZeroOne() * 3.0f; - if (speed < 1.0f) { + speedXZ = Rand_ZeroOne() * 3.0f; + if (speedXZ < 1.0f) { multiplier = 1.0f; - } else if (speed < 2.0f) { + } else if (speedXZ < 2.0f) { multiplier = -1.0f; } else { multiplier = 0.0f; } - speed = 30.0f * multiplier; + speedXZ = 30.0f * multiplier; Actor_Spawn(&play->actorCtx, play, ACTOR_EN_HONOTRAP, - Math_CosS(this->unk_19A) * speed + this->actor.world.pos.x, this->actor.world.pos.y, - Math_SinS(this->unk_19A) * speed + this->actor.world.pos.z, 0, + Math_CosS(this->unk_19A) * speedXZ + this->actor.world.pos.x, this->actor.world.pos.y, + Math_SinS(this->unk_19A) * speedXZ + this->actor.world.pos.z, 0, (this->unk_19A + 0x8000) - (0x2000 * multiplier), 0, HONOTRAP_FLAME_DROP); } } @@ -217,22 +217,22 @@ void EnPoRelay_Race(EnPoRelay* this, PlayState* play) { player->actor.world.pos.z) != 0) || (Math3D_PointInSquare2D(1580.0f, 2090.0f, -3030.0f, -2500.0f, player->actor.world.pos.x, player->actor.world.pos.z) != 0)) { - speed = (this->hookshotSlotFull) ? player->actor.speedXZ * 1.4f : player->actor.speedXZ * 1.2f; + speedXZ = (this->hookshotSlotFull) ? player->actor.speed * 1.4f : player->actor.speed * 1.2f; } else if (this->actor.xzDistToPlayer < 150.0f) { - speed = (this->hookshotSlotFull) ? player->actor.speedXZ * 1.2f : player->actor.speedXZ; + speedXZ = (this->hookshotSlotFull) ? player->actor.speed * 1.2f : player->actor.speed; } else if (this->actor.xzDistToPlayer < 300.0f) { - speed = (this->hookshotSlotFull) ? player->actor.speedXZ : player->actor.speedXZ * 0.8f; + speedXZ = (this->hookshotSlotFull) ? player->actor.speed : player->actor.speed * 0.8f; } else if (this->hookshotSlotFull) { - speed = 4.5f; + speedXZ = 4.5f; } else { - speed = 3.5f; + speedXZ = 3.5f; } multiplier = 250.0f - this->actor.xzDistToPlayer; multiplier = CLAMP_MIN(multiplier, 0.0f); - speed += multiplier * 0.02f + 1.0f; - Math_ApproachF(&this->actor.speedXZ, speed, 0.5f, 1.5f); + speedXZ += multiplier * 0.02f + 1.0f; + Math_ApproachF(&this->actor.speed, speedXZ, 0.5f, 1.5f); } else { - Math_ApproachF(&this->actor.speedXZ, 3.5f, 0.5f, 1.5f); + Math_ApproachF(&this->actor.speed, 3.5f, 0.5f, 1.5f); } EnPoRelay_Vec3sToVec3f(&vec, &D_80AD8C30[this->pathIndex]); if (Actor_WorldDistXZToPoint(&this->actor, &vec) < 40.0f) { diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c index 1378326b46..e607d17f90 100644 --- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c +++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c @@ -247,7 +247,7 @@ void func_80AD9368(EnPoSisters* this) { Animation_MorphToLoop(&this->skelAnime, &gPoeSistersSwayAnim, -3.0f); this->unk_19A = Rand_S16Offset(2, 3); this->actionFunc = func_80ADA4A8; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void func_80AD93C4(EnPoSisters* this) { @@ -269,14 +269,14 @@ void func_80AD944C(EnPoSisters* this) { this->collider.base.acFlags |= AC_HARD; } Animation_MorphToLoop(&this->skelAnime, &gPoeSistersAttackAnim, -5.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_19A = Animation_GetLastFrame(&gPoeSistersAttackAnim) * 3 + 3; this->unk_199 &= ~2; this->actionFunc = func_80ADA7F0; } void func_80AD94E0(EnPoSisters* this) { - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; if (this->unk_194 == 0) { this->collider.base.colType = COLTYPE_METAL; this->collider.base.acFlags |= AC_HARD; @@ -306,7 +306,7 @@ void func_80AD95D8(EnPoSisters* this) { : Actor_WorldYawTowardActor(&this->actor, this->collider.base.ac) + 0x8000; } if (this->unk_194 != 0) { - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; } this->unk_199 &= ~0xB; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 16); @@ -318,14 +318,14 @@ void func_80AD96A4(EnPoSisters* this) { this->actor.world.rot.y = this->actor.shape.rot.y + 0x8000; this->unk_19A = 5; this->unk_199 |= 0xB; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actionFunc = func_80ADAC70; } void func_80AD9718(EnPoSisters* this) { Animation_Change(&this->skelAnime, &gPoeSistersAppearDisappearAnim, 1.5f, 0.0f, Animation_GetLastFrame(&gPoeSistersAppearDisappearAnim), ANIMMODE_ONCE, -3.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_19C = 100; this->actor.world.rot.y = this->actor.shape.rot.y; this->unk_199 &= ~5; @@ -365,7 +365,7 @@ void func_80AD98F4(EnPoSisters* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; } this->unk_19A = 15; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_PO_APPEAR); this->unk_199 &= ~1; this->actionFunc = func_80ADAE6C; @@ -373,7 +373,7 @@ void func_80AD98F4(EnPoSisters* this, PlayState* play) { void func_80AD99D4(EnPoSisters* this, PlayState* play) { this->unk_19A = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.pos.y += 42.0f; this->actor.shape.yOffset = -6000.0f; this->actor.flags &= ~ACTOR_FLAG_0; @@ -500,7 +500,7 @@ void func_80AD9F90(EnPoSisters* this) { Animation_PlayLoop(&this->skelAnime, &gPoeSistersFloatAnim); this->unk_199 |= 0xA; this->actionFunc = func_80ADBB6C; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; } void func_80ADA028(EnPoSisters* this) { @@ -509,7 +509,7 @@ void func_80ADA028(EnPoSisters* this) { this->unk_199 |= 0x15; this->actor.flags |= ACTOR_FLAG_0; this->actionFunc = func_80ADBBF4; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void func_80ADA094(EnPoSisters* this, PlayState* play) { @@ -608,13 +608,13 @@ void func_80ADA4A8(EnPoSisters* this, PlayState* play) { void func_80ADA530(EnPoSisters* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); - Math_StepToF(&this->actor.speedXZ, 1.0f, 0.2f); + Math_StepToF(&this->actor.speed, 1.0f, 0.2f); if (Animation_OnFrame(&this->skelAnime, 0.0f) && this->unk_19A != 0) { this->unk_19A--; } if (this->actor.xzDistToPlayer < 200.0f && fabsf(this->actor.yDistToPlayer + 5.0f) < 30.0f) { func_80AD943C(this); - } else if (this->unk_19A == 0 && Math_StepToF(&this->actor.speedXZ, 0.0f, 0.2f) != 0) { + } else if (this->unk_19A == 0 && Math_StepToF(&this->actor.speed, 0.0f, 0.2f) != 0) { func_80AD9368(this); } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { @@ -632,7 +632,7 @@ void func_80ADA6A0(EnPoSisters* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); temp_v0 = this->actor.yawTowardsPlayer - player->actor.shape.rot.y; - Math_StepToF(&this->actor.speedXZ, 2.0f, 0.2f); + Math_StepToF(&this->actor.speed, 2.0f, 0.2f); if (temp_v0 > 0x3000) { Math_ScaledStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer + 0x3000, 0x71C); } else if (temp_v0 < -0x3000) { @@ -686,8 +686,8 @@ void func_80ADA8C0(EnPoSisters* this, PlayState* play) { void func_80ADA9E8(EnPoSisters* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); - this->actor.shape.rot.y -= (this->actor.speedXZ * 10.0f) * 128.0f; - if (Math_StepToF(&this->actor.speedXZ, 0.0f, 0.1f) != 0) { + this->actor.shape.rot.y -= (this->actor.speed * 10.0f) * 128.0f; + if (Math_StepToF(&this->actor.speed, 0.0f, 0.1f) != 0) { this->actor.world.rot.y = this->actor.shape.rot.y; if (this->unk_194 != 0) { func_80AD93C4(this); @@ -719,7 +719,7 @@ void func_80ADAAA4(EnPoSisters* this, PlayState* play) { this->actor.world.pos.y = this->actor.parent->world.pos.y; func_80AD97C8(this, play); } else if (this->unk_194 != 0) { - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.5f); + Math_StepToF(&this->actor.speed, 0.0f, 0.5f); } } @@ -1097,7 +1097,7 @@ void func_80ADBF58(EnPoSisters* this, PlayState* play) { play->envCtx.lightSettingOverride = 4; } if (this->unk_19A < 0) { - Math_StepToF(&this->actor.speedXZ, 5.0f, 0.2f); + Math_StepToF(&this->actor.speed, 5.0f, 0.2f); } if (this->unk_19A == -70 && this->unk_194 == 1) { SfxSource_PlaySfxAtFixedWorldPos(play, &D_80ADD7BC, 40, NA_SE_EN_PO_LAUGH); diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c index d39b573005..52c6b25db9 100644 --- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c +++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c @@ -213,7 +213,7 @@ void EnPoh_Init(Actor* thisx, PlayState* play) { } else { collectible = Item_DropCollectible(play, &this->actor.world.pos, 0x4000 | ITEM00_RUPEE_BLUE); if (collectible != NULL) { - collectible->actor.speedXZ = 0.0f; + collectible->actor.speed = 0.0f; } } } else if (this->actor.params == EN_POH_FLAT) { @@ -259,7 +259,7 @@ void func_80ADE114(EnPoh* this) { Animation_PlayLoop(&this->skelAnime, this->info->idleAnim); this->unk_198 = Rand_S16Offset(2, 3); this->actionFunc = func_80ADEAC4; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnPoh_SetupIdle(EnPoh* this) { @@ -272,7 +272,7 @@ void func_80ADE1BC(EnPoh* this) { Animation_PlayLoop(&this->skelAnime, this->info->idleAnim2); this->actionFunc = func_80ADEC9C; this->unk_198 = 0; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; } void EnPoh_SetupAttack(EnPoh* this) { @@ -282,7 +282,7 @@ void EnPoh_SetupAttack(EnPoh* this) { Animation_PlayLoop(&this->skelAnime, &gPoeComposerAttackAnim); } this->unk_198 = 12; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_PO_LAUGH); this->actionFunc = EnPoh_Attack; } @@ -299,14 +299,14 @@ void func_80ADE28C(EnPoh* this) { this->actor.world.rot.y = Actor_WorldYawTowardActor(&this->actor, this->colliderCyl.base.ac) + 0x8000; } this->colliderCyl.base.acFlags &= ~AC_ON; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 16); this->actionFunc = func_80ADEECC; } void func_80ADE368(EnPoh* this) { Animation_MorphToLoop(&this->skelAnime, this->info->fleeAnim, -5.0f); - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actor.world.rot.y = this->actor.shape.rot.y + 0x8000; this->colliderCyl.base.acFlags |= AC_ON; this->unk_198 = 200; @@ -329,7 +329,7 @@ void EnPoh_SetupInitialAction(EnPoh* this) { } void func_80ADE48C(EnPoh* this) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; this->unk_198 = 0; this->actor.naviEnemyId = NAVI_ENEMY_NONE; @@ -340,19 +340,19 @@ void func_80ADE48C(EnPoh* this) { void func_80ADE4C8(EnPoh* this) { Animation_PlayOnce(&this->skelAnime, this->info->idleAnim2); this->actionFunc = func_80ADF574; - this->actor.speedXZ = -5.0f; + this->actor.speed = -5.0f; } void func_80ADE514(EnPoh* this) { Animation_PlayLoop(&this->skelAnime, this->info->idleAnim); this->unk_19C = this->actor.world.rot.y + 0x8000; this->actionFunc = func_80ADF5E0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnPoh_SetupDisappear(EnPoh* this) { this->unk_194 = 32; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; Actor_PlaySfx(&this->actor, NA_SE_EN_PO_DISAPPEAR); Actor_PlaySfx(&this->actor, NA_SE_EN_PO_LAUGH); @@ -361,7 +361,7 @@ void EnPoh_SetupDisappear(EnPoh* this) { void EnPoh_SetupAppear(EnPoh* this) { this->unk_194 = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_PO_APPEAR); Actor_PlaySfx(&this->actor, NA_SE_EN_PO_LAUGH); this->actionFunc = EnPoh_Appear; @@ -494,7 +494,7 @@ void func_80ADEAC4(EnPoh* this, PlayState* play) { void EnPoh_Idle(EnPoh* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); - Math_StepToF(&this->actor.speedXZ, 1.0f, 0.2f); + Math_StepToF(&this->actor.speed, 1.0f, 0.2f); if (Animation_OnFrame(&this->skelAnime, 0.0f) && this->unk_198 != 0) { this->unk_198--; } @@ -555,7 +555,7 @@ void EnPoh_Attack(EnPoh* this, PlayState* play) { if (this->unk_198 >= 10) { Math_ScaledStepToS(&this->actor.world.rot.y, this->actor.yawTowardsPlayer, 0xE38); } else if (this->unk_198 == 9) { - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->skelAnime.playSpeed = 2.0f; } else if (this->unk_198 == 0) { EnPoh_SetupIdle(this); @@ -564,7 +564,7 @@ void EnPoh_Attack(EnPoh* this, PlayState* play) { } void func_80ADEECC(EnPoh* this, PlayState* play) { - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.5f); + Math_StepToF(&this->actor.speed, 0.0f, 0.5f); if (SkelAnime_Update(&this->skelAnime)) { if (this->actor.colChkInfo.health != 0) { func_80ADE368(this); @@ -654,7 +654,7 @@ void func_80ADF574(EnPoh* this, PlayState* play) { EnPoh_SetupIdle(this); this->unk_198 = 23; } else { - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.5f); + Math_StepToF(&this->actor.speed, 0.0f, 0.5f); this->actor.shape.rot.y += 0x1000; } } diff --git a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c index 73473d8351..c057e36adc 100644 --- a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c +++ b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c @@ -68,11 +68,11 @@ void EnPubox_Destroy(Actor* thisx, PlayState* play) { void EnPubox_Update(Actor* thisx, PlayState* play) { EnPubox* this = (EnPubox*)thisx; - thisx->speedXZ += this->dyna.unk_150; + thisx->speed += this->dyna.unk_150; thisx->world.rot.y = this->dyna.unk_158; - thisx->speedXZ = (thisx->speedXZ < -2.5f) ? -2.5f : ((thisx->speedXZ > 2.5f) ? 2.5f : thisx->speedXZ); - Math_SmoothStepToF(&thisx->speedXZ, 0.0f, 1.0f, 1.0f, 0.0f); - if (thisx->speedXZ != 0.0f) { + thisx->speed = CLAMP(thisx->speed, -2.5f, 2.5f); + Math_SmoothStepToF(&thisx->speed, 0.0f, 1.0f, 1.0f, 0.0f); + if (thisx->speed != 0.0f) { Audio_PlaySfxGeneral(NA_SE_EV_ROCK_SLIDE - SFX_FLAG, &thisx->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c index 0073e560b6..77559e0ced 100644 --- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c +++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c @@ -234,7 +234,7 @@ void EnRd_SetupIdle(EnRd* this) { this->action = REDEAD_ACTION_IDLE; this->timer = (Rand_ZeroOne() * 10.0f) + 5.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; EnRd_SetupAction(this, EnRd_Idle); } @@ -300,7 +300,7 @@ void EnRd_SetupRiseFromCoffin(EnRd* this) { this->actor.shape.rot.x = -0x4000; this->actor.gravity = 0.0f; this->actor.shape.yOffset = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnRd_SetupAction(this, EnRd_RiseFromCoffin); } @@ -319,8 +319,8 @@ void EnRd_RiseFromCoffin(EnRd* this, PlayState* play) { if (Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.home.pos.y + 50.0f, 0.3f, 2.0f, 0.3f) == 0.0f) { if (this->timer != 0) { this->timer--; - Math_SmoothStepToF(&this->actor.speedXZ, 6.0f, 0.3f, 1.0f, 0.3f); - } else if (Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.3f, 1.0f, 0.3f) == 0.0f) { + Math_SmoothStepToF(&this->actor.speed, 6.0f, 0.3f, 1.0f, 0.3f); + } else if (Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.3f, 1.0f, 0.3f) == 0.0f) { Math_SmoothStepToS(&this->actor.shape.rot.x, 0, 1, 0x7D0, 0); } } @@ -330,7 +330,7 @@ void EnRd_RiseFromCoffin(EnRd* this, PlayState* play) { void EnRd_SetupWalkToPlayer(EnRd* this, PlayState* play) { Animation_Change(&this->skelAnime, &gGibdoRedeadWalkAnim, 1.0f, 4.0f, Animation_GetLastFrame(&gGibdoRedeadWalkAnim), ANIMMODE_LOOP_INTERP, -4.0f); - this->actor.speedXZ = 0.4f; + this->actor.speed = 0.4f; this->action = REDEAD_ACTION_WALK_TO_PLAYER_OR_RELEASE_GRAB; EnRd_SetupAction(this, EnRd_WalkToPlayer); } @@ -343,7 +343,7 @@ void EnRd_WalkToPlayer(EnRd* this, PlayState* play) { s32 pad; s16 yaw = this->actor.yawTowardsPlayer - this->actor.shape.rot.y - this->headYRotation - this->upperBodyYRotation; - this->skelAnime.playSpeed = this->actor.speedXZ; + this->skelAnime.playSpeed = this->actor.speed; Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 0xFA, 0); Math_SmoothStepToS(&this->headYRotation, 0, 1, 0x64, 0); Math_SmoothStepToS(&this->upperBodyYRotation, 0, 1, 0x64, 0); @@ -415,7 +415,7 @@ void EnRd_WalkToHome(EnRd* this, PlayState* play) { if (Actor_WorldDistXYZToPoint(&this->actor, &this->actor.home.pos) >= 5.0f) { Math_SmoothStepToS(&this->actor.shape.rot.y, targetY, 1, 0x1C2, 0); } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.home.rot.y, 1, 0x1C2, 0) == 0) { if (this->actor.params != REDEAD_TYPE_CRYING) { EnRd_SetupIdle(this); @@ -476,9 +476,9 @@ void EnRd_WalkToParent(EnRd* this, PlayState* play) { Math_SmoothStepToS(&this->actor.shape.rot.y, targetY, 1, 0xFA, 0); if (Actor_WorldDistXYZToPoint(&this->actor, &parentPos) >= 45.0f) { - this->actor.speedXZ = 0.4f; + this->actor.speed = 0.4f; } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->actor.params != REDEAD_TYPE_CRYING) { EnRd_SetupIdle(this); @@ -508,7 +508,7 @@ void EnRd_SetupGrab(EnRd* this) { this->timer = this->grabState = 0; this->grabDamageTimer = 200; this->action = REDEAD_ACTION_GRAB; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnRd_SetupAction(this, EnRd_Grab); } @@ -645,7 +645,7 @@ void EnRd_SetupDamaged(EnRd* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gGibdoRedeadDamageAnim, -6.0f); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->actor.speedXZ = -2.0f; + this->actor.speed = -2.0f; } this->actor.flags |= ACTOR_FLAG_0; @@ -657,8 +657,8 @@ void EnRd_SetupDamaged(EnRd* this) { void EnRd_Damaged(EnRd* this, PlayState* play) { Player* player = GET_PLAYER(play); - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 0.15f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 0.15f; } this->actor.world.rot.y = this->actor.yawTowardsPlayer; @@ -684,7 +684,7 @@ void EnRd_SetupDead(EnRd* this) { this->action = REDEAD_ACTION_DEAD; this->timer = 300; this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_REDEAD_DEAD); EnRd_SetupAction(this, EnRd_Dead); } @@ -723,7 +723,7 @@ void EnRd_Dead(EnRd* this, PlayState* play) { void EnRd_SetupStunned(EnRd* this) { this->action = REDEAD_ACTION_STUNNED; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; if (gSaveContext.sunsSongState != SUNSSONG_INACTIVE) { this->stunnedBySunsSong = true; @@ -857,11 +857,11 @@ void EnRd_Update(Actor* thisx, PlayState* play) { } this->actionFunc(this, play); - if (this->action != REDEAD_ACTION_GRAB && this->actor.speedXZ != 0.0f) { + if (this->action != REDEAD_ACTION_GRAB && this->actor.speed != 0.0f) { Actor_MoveForward(&this->actor); } - if ((this->actor.shape.rot.x == 0) && (this->action != REDEAD_ACTION_GRAB) && (this->actor.speedXZ != 0.0f)) { + if ((this->actor.shape.rot.x == 0) && (this->action != REDEAD_ACTION_GRAB) && (this->actor.speed != 0.0f)) { Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 20.0f, 35.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2 | UPDBGCHECKINFO_FLAG_3 | UPDBGCHECKINFO_FLAG_4); diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c index d981235b87..a35075a784 100644 --- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c +++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c @@ -194,7 +194,6 @@ void EnReeba_SetupSurface(EnReeba* this, PlayState* play) { this->actor.flags &= ~ACTOR_FLAG_27; this->actor.world.pos.y = this->actor.floorHeight; - if (this->type != LEEVER_TYPE_SMALL) { Actor_PlaySfx(&this->actor, NA_SE_EN_RIVA_BIG_APPEAR); } else { @@ -247,7 +246,7 @@ void EnReeba_Surface(EnReeba* this, PlayState* play) { this->actionfunc = EnReeba_SetupMoveBig; } else { this->moveTimer = 130; - this->actor.speedXZ = Rand_ZeroFloat(4.0f) + 6.0f; + this->actor.speed = Rand_ZeroFloat(4.0f) + 6.0f; this->actionfunc = EnReeba_Move; } } @@ -266,7 +265,7 @@ void EnReeba_Move(EnReeba* this, PlayState* play) { surfaceType = SurfaceType_GetFloorType(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); if ((surfaceType != FLOOR_TYPE_4) && (surfaceType != FLOOR_TYPE_7)) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actionfunc = EnReeba_SetupSink; } else if ((this->moveTimer == 0) || (this->actor.xzDistToPlayer < 30.0f) || (this->actor.xzDistToPlayer > 400.0f) || (this->actor.bgCheckFlags & BGCHECKFLAG_WALL)) { @@ -283,7 +282,7 @@ void EnReeba_SetupMoveBig(EnReeba* this, PlayState* play) { } void EnReeba_MoveBig(EnReeba* this, PlayState* play) { - f32 speed; + f32 accel; s16 yawDiff; s16 yaw; s32 surfaceType; @@ -304,13 +303,14 @@ void EnReeba_MoveBig(EnReeba* this, PlayState* play) { this->bigLeeverTimer = 30; } - speed = (this->actor.xzDistToPlayer - 20.0f) / ((Rand_ZeroOne() * 50.0f) + 150.0f); - this->actor.speedXZ += speed * 1.8f; - if (this->actor.speedXZ >= 3.0f) { - this->actor.speedXZ = 3.0f; + accel = (this->actor.xzDistToPlayer - 20.0f) / ((Rand_ZeroOne() * 50.0f) + 150.0f); + this->actor.speed += accel * 1.8f; + + if (this->actor.speed >= 3.0f) { + this->actor.speed = 3.0f; } - if (this->actor.speedXZ < -3.0f) { - this->actor.speedXZ = -3.0f; + if (this->actor.speed < -3.0f) { + this->actor.speed = -3.0f; } yawDiff = (this->bigLeeverTimer == 0) ? this->actor.yawTowardsPlayer : -this->actor.yawTowardsPlayer; @@ -326,7 +326,7 @@ void EnReeba_MoveBig(EnReeba* this, PlayState* play) { } void EnReeba_Bumped(EnReeba* this, PlayState* play) { - Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 0.3f); + Math_ApproachZeroF(&this->actor.speed, 1.0f, 0.3f); if (this->moveTimer == 0) { if (this->type != LEEVER_TYPE_SMALL) { @@ -347,7 +347,7 @@ void EnReeba_SetupSink(EnReeba* this, PlayState* play) { void EnReeba_Sink(EnReeba* this, PlayState* play) { Math_ApproachZeroF(&this->actor.shape.shadowScale, 1.0f, 0.3f); - Math_ApproachZeroF(&this->actor.speedXZ, 0.1f, 0.3f); + Math_ApproachZeroF(&this->actor.speed, 0.1f, 0.3f); SkelAnime_Update(&this->skelanime); if ((this->yOffsetTarget + 10.0f) <= this->actor.shape.yOffset) { @@ -365,7 +365,7 @@ void EnReeba_Sink(EnReeba* this, PlayState* play) { void EnReeba_SetupDamaged(EnReeba* this, PlayState* play) { this->damagedTimer = 14; - this->actor.speedXZ = -8.0f; + this->actor.speed = -8.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8); this->actionfunc = EnReeba_Damaged; @@ -374,8 +374,8 @@ void EnReeba_SetupDamaged(EnReeba* this, PlayState* play) { void EnReeba_Damaged(EnReeba* this, PlayState* play) { SkelAnime_Update(&this->skelanime); - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 1.0f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 1.0f; } if (this->damagedTimer == 0) { @@ -391,7 +391,7 @@ void EnReeba_Damaged(EnReeba* this, PlayState* play) { void EnReeba_SetupStunned(EnReeba* this, PlayState* play) { this->waitTimer = 14; this->actor.world.rot.y = this->actor.yawTowardsPlayer; - this->actor.speedXZ = -8.0f; + this->actor.speed = -8.0f; this->actor.flags |= ACTOR_FLAG_27; this->actor.flags &= ~(ACTOR_FLAG_0 | ACTOR_FLAG_2); this->actionfunc = EnReeba_Stunned; @@ -402,11 +402,11 @@ void EnReeba_Stunned(EnReeba* this, PlayState* play) { f32 scale; if (this->waitTimer != 0) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 1.0f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 1.0f; } } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if ((this->stunType == LEEVER_STUN_OTHER) || (this->actor.colChkInfo.health != 0)) { if (this->stunType == LEEVER_STUN_ICE) { @@ -456,7 +456,7 @@ void EnReeba_StunDie(EnReeba* this, PlayState* play) { } void EnReeba_SetupDie(EnReeba* this, PlayState* play) { - this->actor.speedXZ = -8.0f; + this->actor.speed = -8.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8); this->waitTimer = 14; @@ -470,11 +470,11 @@ void EnReeba_Die(EnReeba* this, PlayState* play) { Vec3f velocity = { 0.0f, 0.0f, 0.0f }; if (this->waitTimer != 0) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 1.0f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 1.0f; } } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Math_ApproachZeroF(&this->scale, 0.1f, 0.01f); if (this->scale < 0.01f) { @@ -635,7 +635,7 @@ void EnReeba_Update(Actor* thisx, PlayState* play2) { this->collider.base.atFlags &= ~AT_BOUNCED; if ((this->actionfunc == EnReeba_Move) || (this->actionfunc == EnReeba_MoveBig)) { - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; this->actor.world.rot.y *= -1.0f; this->moveTimer = 14; this->actionfunc = EnReeba_Bumped; diff --git a/src/overlays/actors/ovl_En_Rl/z_en_rl.c b/src/overlays/actors/ovl_En_Rl/z_en_rl.c index 9e5e2247e9..a32d9c7f43 100644 --- a/src/overlays/actors/ovl_En_Rl/z_en_rl.c +++ b/src/overlays/actors/ovl_En_Rl/z_en_rl.c @@ -84,28 +84,30 @@ s32 func_80AE7494(EnRl* this) { return SkelAnime_Update(&this->skelAnime); } -s32 func_80AE74B4(EnRl* this, PlayState* play, u16 arg2, s32 arg3) { - CsCmdActorAction* csCmdActorAction; +s32 func_80AE74B4(EnRl* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - csCmdActorAction = play->csCtx.npcActions[arg3]; - if (csCmdActorAction != NULL && csCmdActorAction->action == arg2) { - return 1; + cue = play->csCtx.actorCues[cueChannel]; + + if (cue != NULL && cue->id == cueId) { + return true; } } - return 0; + return false; } -s32 func_80AE74FC(EnRl* this, PlayState* play, u16 arg2, s32 arg3) { - CsCmdActorAction* csCmdActorAction; +s32 func_80AE74FC(EnRl* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - csCmdActorAction = play->csCtx.npcActions[arg3]; - if (csCmdActorAction != NULL && csCmdActorAction->action != arg2) { - return 1; + cue = play->csCtx.actorCues[cueChannel]; + + if (cue != NULL && cue->id != cueId) { + return true; } } - return 0; + return false; } void func_80AE7544(EnRl* this, PlayState* play) { @@ -118,8 +120,9 @@ void func_80AE7590(EnRl* this, PlayState* play) { Vec3f pos; s16 sceneId = play->sceneId; - if (gSaveContext.sceneLayer == 4 && sceneId == SCENE_CHAMBER_OF_THE_SAGES && play->csCtx.state != CS_STATE_IDLE && - play->csCtx.npcActions[6] != NULL && play->csCtx.npcActions[6]->action == 2 && !this->lightMedallionGiven) { + if ((gSaveContext.sceneLayer == 4) && (sceneId == SCENE_CHAMBER_OF_THE_SAGES) && + (play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[6] != NULL) && + (play->csCtx.actorCues[6]->id == 2) && !this->lightMedallionGiven) { player = GET_PLAYER(play); pos.x = player->actor.world.pos.x; pos.y = player->actor.world.pos.y + 80.0f; @@ -139,11 +142,12 @@ void func_80AE7668(EnRl* this, PlayState* play) { } void func_80AE7698(EnRl* this, PlayState* play) { - CsCmdActorAction* csCmdActorAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - csCmdActorAction = play->csCtx.npcActions[0]; - if (csCmdActorAction != NULL && csCmdActorAction->action == 3) { + cue = play->csCtx.actorCues[0]; + + if (cue != NULL && cue->id == 3) { Animation_Change(&this->skelAnime, &object_rl_Anim_00040C, 1.0f, 0.0f, Animation_GetLastFrame(&object_rl_Anim_00040C), ANIMMODE_ONCE, 0.0f); this->action = 2; diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c index 8677b04181..668765ff09 100644 --- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c +++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c @@ -176,7 +176,7 @@ void EnRr_Init(Actor* thisx, PlayState* play2) { this->actor.scale.y = 0.013f; this->actor.scale.x = this->actor.scale.z = 0.014f; this->actor.colChkInfo.mass = MASS_IMMOVABLE; - this->actor.velocity.y = this->actor.speedXZ = 0.0f; + this->actor.velocity.y = this->actor.speed = 0.0f; this->actor.gravity = -0.4f; this->actionTimer = 0; this->eatenShield = 0; @@ -205,8 +205,8 @@ void EnRr_Destroy(Actor* thisx, PlayState* play) { Collider_DestroyCylinder(play, &this->collider2); } -void EnRr_SetSpeed(EnRr* this, f32 speed) { - this->actor.speedXZ = speed; +void EnRr_Move(EnRr* this, f32 speedXZ) { + this->actor.speed = speedXZ; Actor_PlaySfx(&this->actor, NA_SE_EN_LIKE_WALK); } @@ -256,7 +256,7 @@ void EnRr_SetupGrabPlayer(EnRr* this, Player* player) { this->ocTimer = 8; this->hasPlayer = true; this->reachState = 0; - this->segMoveRate = this->swallowOffset = this->actor.speedXZ = 0.0f; + this->segMoveRate = this->swallowOffset = this->actor.speed = 0.0f; this->pulseSizeTarget = 0.15f; this->segPhaseVelTarget = 5000.0f; this->wobbleSizeTarget = 512.0f; @@ -578,8 +578,8 @@ void EnRr_Approach(EnRr* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y; if ((this->actionTimer == 0) && (this->actor.xzDistToPlayer < 160.0f)) { EnRr_SetupReach(this); - } else if ((this->actor.xzDistToPlayer < 400.0f) && (this->actor.speedXZ == 0.0f)) { - EnRr_SetSpeed(this, 2.0f); + } else if ((this->actor.xzDistToPlayer < 400.0f) && (this->actor.speed == 0.0f)) { + EnRr_Move(this, 2.0f); } } @@ -741,8 +741,8 @@ void EnRr_Retreat(EnRr* this, PlayState* play) { } else { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer + 0x8000, 0xA, 0x3E8, 0); this->actor.world.rot.y = this->actor.shape.rot.y; - if (this->actor.speedXZ == 0.0f) { - EnRr_SetSpeed(this, 2.0f); + if (this->actor.speed == 0.0f) { + EnRr_Move(this, 2.0f); } } } @@ -796,7 +796,7 @@ void EnRr_Update(Actor* thisx, PlayState* play) { ASSERT(0, "0", "../z_en_rr.c", 1355); } - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.1f); + Math_StepToF(&this->actor.speed, 0.0f, 0.1f); Actor_MoveForward(&this->actor); Collider_UpdateCylinder(&this->actor, &this->collider1); this->collider2.dim.pos.x = this->mouthPos.x; diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c index e8c590b8bb..60b8342ee3 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -246,29 +246,29 @@ s32 EnRu1_IsCsStateIdle(PlayState* play) { return false; } -CsCmdActorAction* func_80AEAF58(PlayState* play, s32 npcActionIdx) { +CsCmdActorCue* EnRu1_GetCue(PlayState* play, s32 cueChannel) { s32 pad[2]; - CsCmdActorAction* ret = NULL; + CsCmdActorCue* cue = NULL; if (!EnRu1_IsCsStateIdle(play)) { - ret = play->csCtx.npcActions[npcActionIdx]; + cue = play->csCtx.actorCues[cueChannel]; } - return ret; + return cue; } -s32 func_80AEAFA0(PlayState* play, u16 action, s32 npcActionIdx) { - CsCmdActorAction* csCmdNPCAction = func_80AEAF58(play, npcActionIdx); +s32 func_80AEAFA0(PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = EnRu1_GetCue(play, cueChannel); - if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action == action)) { + if ((cue != NULL) && (cue->id == cueId)) { return true; } return false; } -s32 func_80AEAFE0(PlayState* play, u16 action, s32 npcActionIdx) { - CsCmdActorAction* csCmdNPCAction = func_80AEAF58(play, npcActionIdx); +s32 func_80AEAFE0(PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = EnRu1_GetCue(play, cueChannel); - if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action != action)) { + if ((cue != NULL) && (cue->id != cueId)) { return true; } return false; @@ -346,7 +346,7 @@ void func_80AEB1D8(EnRu1* this) { this->actor.velocity.x = 0.0f; this->actor.velocity.y = 0.0f; this->actor.velocity.z = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = 0.0f; this->actor.minVelocityY = 0.0f; func_80AEB0EC(this, 0); @@ -410,16 +410,16 @@ void func_80AEB3DC(EnRu1* this, PlayState* play) { EnRu1_SetMouthIndex(this, 0); } -CsCmdActorAction* func_80AEB438(PlayState* play) { - return func_80AEAF58(play, 3); +CsCmdActorCue* EnRu1_GetCueChannel3(PlayState* play) { + return EnRu1_GetCue(play, 3); } -s32 func_80AEB458(PlayState* play, u16 action) { - return func_80AEAFA0(play, action, 3); +s32 func_80AEB458(PlayState* play, u16 cueId) { + return func_80AEAFA0(play, cueId, 3); } -s32 func_80AEB480(PlayState* play, u16 action) { - return func_80AEAFE0(play, action, 3); +s32 func_80AEB480(PlayState* play, u16 cueId) { + return func_80AEAFE0(play, cueId, 3); } void EnRu1_SpawnRipple(EnRu1* this, PlayState* play, s16 radiusMax, s16 life) { @@ -480,13 +480,11 @@ void func_80AEB7D0(EnRu1* this) { this->skelAnime.moveFlags &= ~0x3; } -f32 func_80AEB7E0(CsCmdActorAction* csCmdNPCAction, PlayState* play) { - s32 csCtxFrames = play->csCtx.frames; +f32 func_80AEB7E0(CsCmdActorCue* cue, PlayState* play) { + s32 csCurFrame = play->csCtx.curFrame; - if ((csCtxFrames < csCmdNPCAction->endFrame) && (csCmdNPCAction->endFrame - csCmdNPCAction->startFrame > 0)) { - return (Math_CosS(((csCtxFrames - csCmdNPCAction->startFrame) / - (f32)(csCmdNPCAction->endFrame - csCmdNPCAction->startFrame)) * - 32768.0f) * + if ((csCurFrame < cue->endFrame) && (cue->endFrame - cue->startFrame > 0)) { + return (Math_CosS(((csCurFrame - cue->startFrame) / (f32)(cue->endFrame - cue->startFrame)) * 32768.0f) * -0.5f) + 0.5f; } @@ -498,16 +496,14 @@ f32 func_80AEB87C(f32 arg0, s32 arg1, s32 arg2) { } void func_80AEB89C(EnRu1* this, PlayState* play) { - CsCmdActorAction* npcAction = func_80AEB438(play); - s16 npcActionRotY; + CsCmdActorCue* cue = EnRu1_GetCueChannel3(play); - if (npcAction != NULL) { - npcActionRotY = npcAction->rot.y; - this->actor.shape.rot.y = npcActionRotY; - this->actor.world.rot.y = npcActionRotY; - this->actor.world.pos.x = npcAction->startPos.x; - this->actor.world.pos.y = npcAction->startPos.y; - this->actor.world.pos.z = npcAction->startPos.z; + if (cue != NULL) { + this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y; + + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; } } @@ -526,15 +522,15 @@ void func_80AEB954(EnRu1* this, PlayState* play) { void func_80AEB974(EnRu1* this, PlayState* play) { Vec3f* thisPos; f32 sp30; - CsCmdActorAction* csCmdNPCAction = func_80AEB438(play); + CsCmdActorCue* cue = EnRu1_GetCueChannel3(play); s32 pad; - if (csCmdNPCAction != NULL) { - sp30 = func_80AEB7E0(csCmdNPCAction, play); + if (cue != NULL) { + sp30 = func_80AEB7E0(cue, play); thisPos = &this->actor.world.pos; - thisPos->x = func_80AEB87C(sp30, csCmdNPCAction->startPos.x, csCmdNPCAction->endPos.x); - thisPos->y = func_80AEB87C(sp30, csCmdNPCAction->startPos.y, csCmdNPCAction->endPos.y); - thisPos->z = func_80AEB87C(sp30, csCmdNPCAction->startPos.z, csCmdNPCAction->endPos.z); + thisPos->x = func_80AEB87C(sp30, cue->startPos.x, cue->endPos.x); + thisPos->y = func_80AEB87C(sp30, cue->startPos.y, cue->endPos.y); + thisPos->z = func_80AEB87C(sp30, cue->startPos.z, cue->endPos.z); } } @@ -547,15 +543,15 @@ void func_80AEBA2C(EnRu1* this, PlayState* play) { Vec3f* unk_364 = &this->unk_364; Vec3f* thisPos; f32 temp_ret_2; - CsCmdActorAction* csCmdNPCAction = func_80AEB438(play); + CsCmdActorCue* cue = EnRu1_GetCueChannel3(play); s32 pad2; - if (csCmdNPCAction != NULL) { - temp_ret_2 = func_80AEB7E0(csCmdNPCAction, play); + if (cue != NULL) { + temp_ret_2 = func_80AEB7E0(cue, play); thisPos = &this->actor.world.pos; - thisPos->x = func_80AEB87C(temp_ret_2, unk_364->x, csCmdNPCAction->endPos.x); - thisPos->y = func_80AEB87C(temp_ret_2, unk_364->y, csCmdNPCAction->endPos.y); - thisPos->z = func_80AEB87C(temp_ret_2, unk_364->z, csCmdNPCAction->endPos.z); + thisPos->x = func_80AEB87C(temp_ret_2, unk_364->x, cue->endPos.x); + thisPos->y = func_80AEB87C(temp_ret_2, unk_364->y, cue->endPos.y); + thisPos->z = func_80AEB87C(temp_ret_2, unk_364->z, cue->endPos.z); } } @@ -590,7 +586,7 @@ void func_80AEBBF4(EnRu1* this) { void func_80AEBC30(PlayState* play) { Player* player; - if (play->csCtx.frames == 0xCD) { + if (play->csCtx.curFrame == 0xCD) { player = GET_PLAYER(play); Audio_PlaySfxGeneral(NA_SE_EV_DIVE_INTO_WATER, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -598,7 +594,7 @@ void func_80AEBC30(PlayState* play) { } void func_80AEBC84(EnRu1* this, PlayState* play) { - if (play->csCtx.frames == 0x82) { + if (play->csCtx.curFrame == 0x82) { func_80078914(&this->actor.projectedPos, NA_SE_VO_RT_LAUGH_0); } } @@ -673,15 +669,16 @@ void func_80AEBF60(EnRu1* this, PlayState* play) { } void func_80AEBFD8(EnRu1* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction = func_80AEB438(play); + CsCmdActorCue* cue = EnRu1_GetCueChannel3(play); f32 frameCount; - u16 csCtxFrames; + u16 csCurFrame; u16 endFrame; - if (csCmdNPCAction != NULL) { - csCtxFrames = play->csCtx.frames; - endFrame = csCmdNPCAction->endFrame; - if (csCtxFrames >= endFrame - 2) { + if (cue != NULL) { + csCurFrame = play->csCtx.curFrame; + endFrame = cue->endFrame; + + if (csCurFrame >= endFrame - 2) { frameCount = Animation_GetLastFrame(&gRutoChildTransitionFromSwimOnBackAnim); Animation_Change(&this->skelAnime, &gRutoChildTransitionFromSwimOnBackAnim, 1.0, 0, frameCount, ANIMMODE_ONCE, -8.0f); @@ -789,9 +786,9 @@ void func_80AEC40C(EnRu1* this) { f32 unk_26C = this->unk_26C; if (unk_26C < 8.0f) { - this->actor.speedXZ = (((kREG(3) * 0.01f) + 2.7f) / 8.0f) * unk_26C; + this->actor.speed = (((kREG(3) * 0.01f) + 2.7f) / 8.0f) * unk_26C; } else { - this->actor.speedXZ = (kREG(3) * 0.01f) + 2.7f; + this->actor.speed = (kREG(3) * 0.01f) + 2.7f; } this->actor.velocity.y = -1.0f; Actor_MoveForward(&this->actor); @@ -803,7 +800,7 @@ void func_80AEC4CC(EnRu1* this) { } void func_80AEC4F4(EnRu1* this) { - f32* speedXZ = &this->actor.speedXZ; + f32* speedXZ = &this->actor.speed; f32* unk_26C = &this->unk_26C; if (this->unk_26C < 8.0f) { @@ -860,7 +857,7 @@ void func_80AEC780(EnRu1* this, PlayState* play) { (!(player->stateFlags1 & (PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_21))) && (player->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { - play->csCtx.segment = D_80AF0880; + play->csCtx.script = D_80AF0880; gSaveContext.cutsceneTrigger = 1; player->linearVelocity = 0.0f; this->action = 8; @@ -868,15 +865,15 @@ void func_80AEC780(EnRu1* this, PlayState* play) { } void func_80AEC81C(EnRu1* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction; + CsCmdActorCue* cue; s16 newRotY; if (func_80AEAFE0(play, 1, 3)) { - csCmdNPCAction = play->csCtx.npcActions[3]; - this->actor.world.pos.x = csCmdNPCAction->startPos.x; - this->actor.world.pos.y = csCmdNPCAction->startPos.y; - this->actor.world.pos.z = csCmdNPCAction->startPos.z; - newRotY = csCmdNPCAction->rot.y; + cue = play->csCtx.actorCues[3]; + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + newRotY = cue->rot.y; this->actor.shape.rot.y = newRotY; this->actor.world.rot.y = newRotY; this->action = 9; @@ -1050,7 +1047,7 @@ s32 func_80AECF6C(EnRu1* this, PlayState* play) { s32 pad2[5]; this->unk_26C += 1.0f; - if ((player->actor.speedXZ == 0.0f) && (this->unk_26C >= 3.0f)) { + if ((player->actor.speed == 0.0f) && (this->unk_26C >= 3.0f)) { otherPlayer = GET_PLAYER(play); player->actor.world.pos.x = otherPlayer->unk_450.x; player->actor.world.pos.y = otherPlayer->unk_450.y; @@ -1203,7 +1200,7 @@ void func_80AED520(EnRu1* this, PlayState* play) { } void func_80AED57C(EnRu1* this) { - if (this->actor.speedXZ != 0.0f) { + if (this->actor.speed != 0.0f) { func_80078914(&this->actor.projectedPos, NA_SE_VO_RT_THROW); } } @@ -1337,7 +1334,7 @@ void func_80AEDB30(EnRu1* this, PlayState* play) { velocityY = &this->actor.velocity.y; dynaPolyActor = DynaPoly_GetActor(&play->colCtx, this->actor.floorBgId); if (*velocityY <= 0.0f) { - speedXZ = &this->actor.speedXZ; + speedXZ = &this->actor.speed; if (dynaPolyActor != NULL) { if (dynaPolyActor->actor.id != ACTOR_EN_BOX) { *speedXZ = 0.0f; @@ -1370,7 +1367,7 @@ void func_80AEDB30(EnRu1* this, PlayState* play) { } } if (this->actor.bgCheckFlags & BGCHECKFLAG_CEILING) { - speedXZ = &this->actor.speedXZ; + speedXZ = &this->actor.speed; velocityY = &this->actor.velocity.y; if (*speedXZ >= (kREG(27) * 0.01f) + 3.0f) { *speedXZ *= (kREG(19) * 0.01f) + 0.8f; @@ -1383,7 +1380,7 @@ void func_80AEDB30(EnRu1* this, PlayState* play) { } } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - speedXZ = &this->actor.speedXZ; + speedXZ = &this->actor.speed; if (*speedXZ != 0.0f) { rotY = this->actor.world.rot.y; wallYaw = this->actor.wallYaw; @@ -1409,7 +1406,7 @@ void func_80AEDB30(EnRu1* this, PlayState* play) { } void func_80AEDEF4(EnRu1* this, PlayState* play) { - f32* speedXZ = &this->actor.speedXZ; + f32* speedXZ = &this->actor.speed; DynaPolyActor* dynaPolyActor = DynaPoly_GetActor(&play->colCtx, this->actor.floorBgId); if (dynaPolyActor != NULL && dynaPolyActor->actor.id == ACTOR_EN_BOX) { @@ -1436,7 +1433,7 @@ void func_80AEE02C(EnRu1* this) { this->actor.velocity.x = 0.0f; this->actor.velocity.y = 0.0f; this->actor.velocity.z = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = 0.0f; this->actor.minVelocityY = 0.0f; } @@ -1449,7 +1446,7 @@ void func_80AEE050(EnRu1* this) { EnRu1* thisx = this; // necessary to match if (this->unk_350 == 0) { - if ((this->actor.minVelocityY == 0.0f) && (this->actor.speedXZ == 0.0f)) { + if ((this->actor.minVelocityY == 0.0f) && (this->actor.speed == 0.0f)) { this->unk_350 = 1; func_80AEE02C(this); this->unk_35C = 0; @@ -1463,12 +1460,12 @@ void func_80AEE050(EnRu1* this) { this->actor.minVelocityY = 0.0f; this->actor.velocity.y = 0.0f; } - this->actor.speedXZ *= 0.5f; - if (this->actor.speedXZ <= 0.1f) { - this->actor.speedXZ = 0.0f; + this->actor.speed *= 0.5f; + if (this->actor.speed <= 0.1f) { + this->actor.speed = 0.0f; } - this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speedXZ; - this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speedXZ; + this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speed; + this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speed; func_8002D7EC(&this->actor); } } else { @@ -1542,7 +1539,7 @@ s32 func_80AEE394(EnRu1* this, PlayState* play) { if (dynaPolyActor != NULL && dynaPolyActor->actor.id == ACTOR_BG_BDAN_OBJECTS && dynaPolyActor->actor.params == 0 && !Player_InCsMode(play) && play->msgCtx.msgLength == 0) { func_80AEE02C(this); - play->csCtx.segment = D_80AF10A4; + play->csCtx.script = D_80AF10A4; gSaveContext.cutsceneTrigger = 1; this->action = 36; this->drawConfig = 0; @@ -1571,7 +1568,7 @@ void func_80AEE488(EnRu1* this, PlayState* play) { void func_80AEE568(EnRu1* this, PlayState* play) { if (!func_80AEE394(this, play)) { - if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && (this->actor.speedXZ == 0.0f) && + if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && (this->actor.speed == 0.0f) && (this->actor.minVelocityY == 0.0f)) { func_80AEE02C(this); Actor_OfferCarry(&this->actor, play); @@ -1608,7 +1605,7 @@ s32 func_80AEE6D0(EnRu1* this, PlayState* play) { func_80AED600(this); this->action = 34; this->unk_26C = 0.0f; - play->csCtx.segment = D_80AF1728; + play->csCtx.script = D_80AF1728; gSaveContext.cutsceneTrigger = 1; } this->roomNum3 = curRoomNum; @@ -1628,7 +1625,7 @@ void func_80AEE7C4(EnRu1* this, PlayState* play) { frameCount = Animation_GetLastFrame(&gRutoChildSittingAnim); Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f); func_80AED6DC(this, play); - this->actor.speedXZ *= (kREG(25) * 0.01f) + 1.0f; + this->actor.speed *= (kREG(25) * 0.01f) + 1.0f; this->actor.velocity.y *= (kREG(26) * 0.01f) + 1.0f; this->actor.minVelocityY = -((kREG(24) * 0.01f) + 6.8f); this->actor.gravity = -((kREG(23) * 0.01f) + 1.3f); @@ -1944,25 +1941,25 @@ void func_80AEF5B8(EnRu1* this) { void func_80AEF624(EnRu1* this, PlayState* play) { f32 frameCount; - CsCmdActorAction* csCmdNPCAction; - CsCmdActorAction* csCmdNPCAction2; + CsCmdActorCue* cue; + CsCmdActorCue* cue2; s16 newRotTmp; if (func_80AEAFE0(play, 1, 3)) { frameCount = Animation_GetLastFrame(&gRutoChildWalkToAndHoldUpSapphireAnim); // this weird part with the redundant variable is necessary to match for some reason - csCmdNPCAction2 = play->csCtx.npcActions[3]; - csCmdNPCAction = csCmdNPCAction2; - this->actor.world.pos.x = csCmdNPCAction->startPos.x; - this->actor.world.pos.y = csCmdNPCAction->startPos.y; - this->actor.world.pos.z = csCmdNPCAction->startPos.z; - newRotTmp = csCmdNPCAction->rot.x; + cue2 = play->csCtx.actorCues[3]; + cue = cue2; + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + newRotTmp = cue->rot.x; this->actor.shape.rot.x = newRotTmp; this->actor.world.rot.x = newRotTmp; - newRotTmp = csCmdNPCAction->rot.y; + newRotTmp = cue->rot.y; this->actor.shape.rot.y = newRotTmp; this->actor.world.rot.y = newRotTmp; - newRotTmp = csCmdNPCAction->rot.z; + newRotTmp = cue->rot.z; this->actor.shape.rot.z = newRotTmp; this->actor.world.rot.z = newRotTmp; Animation_Change(&this->skelAnime, &gRutoChildWalkToAndHoldUpSapphireAnim, 1.0f, 0.0f, frameCount, diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1_cutscene_data.inc.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1_cutscene_data.inc.c index 4c7a008e5d..93b710cd9e 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1_cutscene_data.inc.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1_cutscene_data.inc.c @@ -4,109 +4,109 @@ // clang-format off static CutsceneData D_80AF0880[] = { CS_BEGIN_CUTSCENE(15, 1306), - CS_PLAYER_ACTION_LIST(10), - CS_PLAYER_ACTION(0x0027, 0, 50, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 12, -340, -2810, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0003, 50, 70, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 12, -340, -2810, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0005, 70, 109, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 12, -340, -2810, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0002, 109, 135, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 100, -340, -2991, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0005, 135, 199, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0003, 199, 219, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0005, 219, 259, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0003, 259, 276, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0002, 276, 297, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 182, -340, -3132, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0005, 297, 843, 0x0000, 0x6C16, 0x0000, 182, -340, -3132, 182, -340, -3132, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_NPC_ACTION_LIST(63, 4), - CS_NPC_ACTION(0x0002, 0, 178, 0x0000, 0xEC16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_NPC_ACTION(0x0003, 178, 245, 0x0000, 0x6C16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_NPC_ACTION(0x0004, 245, 260, 0x0000, 0x6C16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_NPC_ACTION(0x0005, 260, 396, 0x0000, 0x6C16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE_LIST(10), + CS_PLAYER_CUE(0x0027, 0, 50, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 12, -340, -2810, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0003, 50, 70, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 12, -340, -2810, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0005, 70, 109, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 12, -340, -2810, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0002, 109, 135, 0x0000, 0x6C16, 0x0000, 12, -340, -2810, 100, -340, -2991, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0005, 135, 199, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0003, 199, 219, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0005, 219, 259, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0003, 259, 276, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 100, -340, -2991, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0002, 276, 297, 0x0000, 0x6C16, 0x0000, 100, -340, -2991, 182, -340, -3132, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0005, 297, 843, 0x0000, 0x6C16, 0x0000, 182, -340, -3132, 182, -340, -3132, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_ACTOR_CUE_LIST(63, 4), + CS_ACTOR_CUE(0x0002, 0, 178, 0x0000, 0xEC16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_ACTOR_CUE(0x0003, 178, 245, 0x0000, 0x6C16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_ACTOR_CUE(0x0004, 245, 260, 0x0000, 0x6C16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_ACTOR_CUE(0x0005, 260, 396, 0x0000, 0x6C16, 0x0000, 127, -340, -3041, 127, -340, -3041, 1.1393037e-29f, 0.0f, 1.4e-45f), CS_MISC_LIST(1), - CS_MISC(0x000C, 315, 345, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000), + CS_MISC(CS_MISC_STOP_CUTSCENE, 315, 345, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000), CS_TEXT_LIST(4), CS_TEXT_NONE(0, 157), - CS_TEXT_DISPLAY_TEXTBOX(0x404B, 157, 175, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT(0x404B, 157, 175, 0x0000, 0xFFFF, 0xFFFF), CS_TEXT_NONE(175, 252), - CS_TEXT_DISPLAY_TEXTBOX(0x401E, 252, 300, 0x0000, 0xFFFF, 0xFFFF), - CS_CAM_EYE_LIST(0, 247), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0x44B8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0x8080), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0xE243), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0x005E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0xFFFF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0x5B80), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 30.799889f, 55, -290, -2749, 0x49B4), - CS_CAM_EYE_LIST(73, 208), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x44B8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x8080), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0xE243), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x005E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0xFFFF), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.399944f, 99, -307, -2985, 0x0000), - CS_CAM_EYE_LIST(116, 1207), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0x44B8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0x8080), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0xE243), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.799946f, 155, -276, -2911, 0x005E), - CS_CAM_EYE_LIST(186, 1277), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0x44B8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0x8080), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0xE243), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.39995f, 77, -315, -2992, 0x005E), - CS_CAM_EYE_LIST(256, 425), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0x20BA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0x44B8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0x8080), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0xE243), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 46.799953f, 350, -237, -3314, 0x005E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 46.799953f, 350, -237, -3314, 0xFFFF), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 46.799953f, 350, -237, -3314, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 46.799953f, 350, -237, -3314, 0x5B80), - CS_CAM_AT_LIST(0, 276), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 45.399944f, 40, -256, -2823, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 45.399944f, 40, -256, -2823, 0x44B8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 45.399944f, 22, -313, -2823, 0x8080), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 45.399944f, 23, -313, -2823, 0xE243), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 6, 30.799889f, 73, -298, -2828, 0x005E), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 30.799889f, 73, -298, -2828, 0xFFFF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 30.799889f, 73, -298, -2828, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 30.799889f, 73, -298, -2828, 0x5B80), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 30.799889f, 73, -298, -2828, 0x49B4), - CS_CAM_AT_LIST(73, 237), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.2f, 136, -314, -3060, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 7, 60.600002f, 136, -314, -3060, 0x44B8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 7, 45.399944f, 136, -314, -3060, 0x8080), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 136, -314, -3060, 0xE243), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 136, -314, -3060, 0x005E), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.399944f, 135, -313, -3060, 0xFFFF), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.399944f, 135, -313, -3059, 0x0000), - CS_CAM_AT_LIST(116, 1236), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.799946f, 132, -305, -2969, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.799946f, 132, -304, -2969, 0x44B8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.799946f, 133, -304, -2969, 0x8080), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.799946f, 133, -304, -2969, 0xE243), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.799946f, 133, -304, -2969, 0x005E), - CS_CAM_AT_LIST(186, 1306), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39995f, 138, -301, -3032, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39995f, 138, -301, -3032, 0x44B8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.39995f, 138, -301, -3032, 0x8080), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.39995f, 138, -301, -3032, 0xE243), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.39995f, 138, -301, -3032, 0x005E), - CS_CAM_AT_LIST(256, 454), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 28.199883f, 307, -254, -3258, 0x20BA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 28.199883f, 307, -254, -3258, 0x44B8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 9, 28.199883f, 307, -254, -3258, 0x8080), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 9, 46.799953f, 304, -273, -3273, 0xE243), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 46.799953f, 304, -272, -3274, 0x005E), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 46.799953f, 304, -272, -3274, 0xFFFF), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 46.799953f, 304, -272, -3274, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 46.799953f, 305, -272, -3274, 0x5B80), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x0052, 74, 75, 0x0000, 0x00000000, 0xFFFFFFF1, 0x00000000, 0x0000004E, 0xFFFFFFF1, 0x00000000, 0x0000004E), + CS_TEXT(0x401E, 252, 300, 0x0000, 0xFFFF, 0xFFFF), + CS_CAM_EYE_SPLINE(0, 247), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 55, -290, -2749, 0xE243), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0x005E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 30.799889f, 55, -290, -2749, 0x5B80), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 30.799889f, 55, -290, -2749, 0x49B4), + CS_CAM_EYE_SPLINE(73, 208), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0xE243), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0x005E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.399944f, 99, -307, -2985, 0xFFFF), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.399944f, 99, -307, -2985, 0x0000), + CS_CAM_EYE_SPLINE(116, 1207), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.799946f, 155, -276, -2911, 0xE243), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.799946f, 155, -276, -2911, 0x005E), + CS_CAM_EYE_SPLINE(186, 1277), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.39995f, 77, -315, -2992, 0xE243), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.39995f, 77, -315, -2992, 0x005E), + CS_CAM_EYE_SPLINE(256, 425), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 28.199883f, 350, -237, -3314, 0xE243), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 46.799953f, 350, -237, -3314, 0x005E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 46.799953f, 350, -237, -3314, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 46.799953f, 350, -237, -3314, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 46.799953f, 350, -237, -3314, 0x5B80), + CS_CAM_AT_SPLINE(0, 276), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 45.399944f, 40, -256, -2823, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 45.399944f, 40, -256, -2823, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 45.399944f, 22, -313, -2823, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 45.399944f, 23, -313, -2823, 0xE243), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 6, 30.799889f, 73, -298, -2828, 0x005E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 30.799889f, 73, -298, -2828, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 30.799889f, 73, -298, -2828, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 30.799889f, 73, -298, -2828, 0x5B80), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 30.799889f, 73, -298, -2828, 0x49B4), + CS_CAM_AT_SPLINE(73, 237), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.2f, 136, -314, -3060, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 60.600002f, 136, -314, -3060, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 45.399944f, 136, -314, -3060, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 136, -314, -3060, 0xE243), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 136, -314, -3060, 0x005E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.399944f, 135, -313, -3060, 0xFFFF), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.399944f, 135, -313, -3059, 0x0000), + CS_CAM_AT_SPLINE(116, 1236), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.799946f, 132, -305, -2969, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.799946f, 132, -304, -2969, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.799946f, 133, -304, -2969, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.799946f, 133, -304, -2969, 0xE243), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.799946f, 133, -304, -2969, 0x005E), + CS_CAM_AT_SPLINE(186, 1306), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39995f, 138, -301, -3032, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39995f, 138, -301, -3032, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.39995f, 138, -301, -3032, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.39995f, 138, -301, -3032, 0xE243), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.39995f, 138, -301, -3032, 0x005E), + CS_CAM_AT_SPLINE(256, 454), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 28.199883f, 307, -254, -3258, 0x20BA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 28.199883f, 307, -254, -3258, 0x44B8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 9, 28.199883f, 307, -254, -3258, 0x8080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 9, 46.799953f, 304, -273, -3273, 0xE243), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 46.799953f, 304, -272, -3274, 0x005E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 46.799953f, 304, -272, -3274, 0xFFFF), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 46.799953f, 304, -272, -3274, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 46.799953f, 305, -272, -3274, 0x5B80), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_APPEAR, 74, 75, 0x0000, 0x00000000, 0xFFFFFFF1, 0x00000000, 0x0000004E, 0xFFFFFFF1, 0x00000000, 0x0000004E), CS_END(), }; @@ -114,88 +114,88 @@ static u32 D_80AF10A0 = 0; static CutsceneData D_80AF10A4[] = { CS_BEGIN_CUTSCENE(14, 1299), - CS_PLAYER_ACTION_LIST(3), - CS_PLAYER_ACTION(0x0005, 0, 272, 0x0000, 0xC000, 0x0000, -1085, -1025, -3347, -1085, -1025, -3347, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0003, 272, 292, 0x0000, 0xC000, 0x0000, -1085, -1025, -3347, -1085, -1025, -3347, 1.1393037e-29f, 0.0f, 1.4e-45f), - CS_PLAYER_ACTION(0x0005, 292, 777, 0x0000, 0xC000, 0x0000, -1085, -1025, -3347, -1085, -1025, -3347, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE_LIST(3), + CS_PLAYER_CUE(0x0005, 0, 272, 0x0000, 0xC000, 0x0000, -1085, -1025, -3347, -1085, -1025, -3347, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0003, 272, 292, 0x0000, 0xC000, 0x0000, -1085, -1025, -3347, -1085, -1025, -3347, 1.1393037e-29f, 0.0f, 1.4e-45f), + CS_PLAYER_CUE(0x0005, 292, 777, 0x0000, 0xC000, 0x0000, -1085, -1025, -3347, -1085, -1025, -3347, 1.1393037e-29f, 0.0f, 1.4e-45f), CS_MISC_LIST(1), - CS_MISC(0x000C, 330, 627, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(66, 3), - CS_NPC_ACTION(0x0001, 0, 40, 0x0000, 0x4000, 0x0000, -1352, -969, -3341, -1352, -969, -3341, 0.0f, 0.0f, 1.4e-45f), - CS_NPC_ACTION(0x0002, 40, 213, 0x0000, 0x4000, 0x0000, -1352, -969, -3341, -1360, -969, -3343, 0.0f, 0.0f, 1.4e-45f), - CS_NPC_ACTION(0x0003, 213, 1000, 0x0000, 0x4000, 0x0000, -1360, -969, -3343, -1360, -969, -3343, 0.0f, 0.0f, 1.4e-45f), - CS_NPC_ACTION_LIST(48, 1), - CS_NPC_ACTION(0x0002, 0, 90, 0x0000, 0x0000, 0x0000, -1360, -963, -3343, -1360, -963, -3343, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(48, 2), - CS_NPC_ACTION(0x0002, 90, 211, 0x0000, 0x0000, 0x0000, -1352, -922, -3341, -1352, -922, -3341, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0006, 211, 311, 0x0000, 0x0000, 0x0000, -1352, -922, -3341, -1352, -922, -3341, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(62, 3), - CS_NPC_ACTION(0x0004, 0, 210, 0x0000, 0x0000, 0x0000, -1065, -972, -3305, -1065, -978, -3305, 0.0f, -0.028571429f, 0.0f), - CS_NPC_ACTION(0x0004, 210, 220, 0x8000, 0x0000, 0x0000, -1065, -978, -3305, -1065, -973, -3344, 0.0f, 0.5f, 0.0f), - CS_NPC_ACTION(0x0004, 220, 410, 0x0000, 0x0000, 0x0000, -1065, -973, -3344, -1065, -976, -3344, 0.0f, -0.015789473f, 0.0f), + CS_MISC(CS_MISC_STOP_CUTSCENE, 330, 627, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000), + CS_ACTOR_CUE_LIST(66, 3), + CS_ACTOR_CUE(0x0001, 0, 40, 0x0000, 0x4000, 0x0000, -1352, -969, -3341, -1352, -969, -3341, 0.0f, 0.0f, 1.4e-45f), + CS_ACTOR_CUE(0x0002, 40, 213, 0x0000, 0x4000, 0x0000, -1352, -969, -3341, -1360, -969, -3343, 0.0f, 0.0f, 1.4e-45f), + CS_ACTOR_CUE(0x0003, 213, 1000, 0x0000, 0x4000, 0x0000, -1360, -969, -3343, -1360, -969, -3343, 0.0f, 0.0f, 1.4e-45f), + CS_ACTOR_CUE_LIST(48, 1), + CS_ACTOR_CUE(0x0002, 0, 90, 0x0000, 0x0000, 0x0000, -1360, -963, -3343, -1360, -963, -3343, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(48, 2), + CS_ACTOR_CUE(0x0002, 90, 211, 0x0000, 0x0000, 0x0000, -1352, -922, -3341, -1352, -922, -3341, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0006, 211, 311, 0x0000, 0x0000, 0x0000, -1352, -922, -3341, -1352, -922, -3341, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(62, 3), + CS_ACTOR_CUE(0x0004, 0, 210, 0x0000, 0x0000, 0x0000, -1065, -972, -3305, -1065, -978, -3305, 0.0f, -0.028571429f, 0.0f), + CS_ACTOR_CUE(0x0004, 210, 220, 0x8000, 0x0000, 0x0000, -1065, -978, -3305, -1065, -973, -3344, 0.0f, 0.5f, 0.0f), + CS_ACTOR_CUE(0x0004, 220, 410, 0x0000, 0x0000, 0x0000, -1065, -973, -3344, -1065, -976, -3344, 0.0f, -0.015789473f, 0.0f), CS_TEXT_LIST(6), CS_TEXT_NONE(0, 162), - CS_TEXT_DISPLAY_TEXTBOX(0x4050, 162, 211, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT(0x4050, 162, 211, 0x0000, 0xFFFF, 0xFFFF), CS_TEXT_NONE(211, 232), - CS_TEXT_DISPLAY_TEXTBOX(0x4051, 232, 241, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT(0x4051, 232, 241, 0x0000, 0xFFFF, 0xFFFF), CS_TEXT_NONE(241, 247), - CS_TEXT_DISPLAY_TEXTBOX(0x4052, 247, 299, 0x0000, 0xFFFF, 0xFFFF), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x0023, 112, 113, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x000000B1, 0x00000000, 0xFFFFFFC7, 0x000000B1), - CS_CAM_EYE_LIST(0, 1176), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 41.9066f, -1390, -948, -3339, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.706596f, -1390, -948, -3339, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.706596f, -1390, -948, -3339, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.706596f, -1418, -938, -3337, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x013D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x013F), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x006D), - CS_CAM_EYE_LIST(91, 1270), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 44.906612f, -1319, -934, -3343, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 44.70661f, -1319, -936, -3344, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 44.70661f, -1319, -936, -3344, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 44.70661f, -1319, -936, -3344, 0x00E8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 44.70661f, -1326, -904, -3342, 0x00EA), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x013D), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x013F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x014E), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x015F), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x0161), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.906673f, -1326, -1024, -3342, 0x652E), - CS_CAM_EYE_LIST(211, 332), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00C6), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00C8), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00D7), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00E8), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00EA), - CS_CAM_AT_LIST(0, 1205), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.706596f, -1295, -1003, -3352, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 40.706596f, -1296, -1003, -3352, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 40.706596f, -1296, -1003, -3352, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 45.10661f, -1314, -969, -3346, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.10661f, -1313, -970, -3346, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.10661f, -1313, -969, -3346, 0x013D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.10661f, -1313, -970, -3346, 0x013F), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.10661f, -1313, -970, -3346, 0x006D), - CS_CAM_AT_LIST(91, 1299), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 44.70661f, -1405, -988, -3343, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 7, 44.70661f, -1406, -989, -3344, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 7, 44.70661f, -1406, -989, -3344, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 7, 44.70661f, -1406, -989, -3344, 0x00E8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 7, 60.906673f, -1393, -978, -3342, 0x00EA), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x013D), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x013F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 60.906673f, -1393, -977, -3342, 0x014E), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x015F), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x0161), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.906673f, -1401, -1094, -3347, 0x652E), - CS_CAM_AT_LIST(211, 361), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00C6), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00C8), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00D7), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00E8), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00EA), + CS_TEXT(0x4052, 247, 299, 0x0000, 0xFFFF, 0xFFFF), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_ITEM_GET, 112, 113, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x000000B1, 0x00000000, 0xFFFFFFC7, 0x000000B1), + CS_CAM_EYE_SPLINE(0, 1176), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 41.9066f, -1390, -948, -3339, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.706596f, -1390, -948, -3339, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.706596f, -1390, -948, -3339, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.706596f, -1418, -938, -3337, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.10661f, -1418, -938, -3337, 0x006D), + CS_CAM_EYE_SPLINE(91, 1270), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 44.906612f, -1319, -934, -3343, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 44.70661f, -1319, -936, -3344, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 44.70661f, -1319, -936, -3344, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 44.70661f, -1319, -936, -3344, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 44.70661f, -1326, -904, -3342, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x014E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x015F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.906673f, -1326, -904, -3342, 0x0161), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.906673f, -1326, -1024, -3342, 0x652E), + CS_CAM_EYE_SPLINE(211, 332), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 30.306555f, -1471, -819, -3149, 0x00EA), + CS_CAM_AT_SPLINE(0, 1205), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.706596f, -1295, -1003, -3352, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 40.706596f, -1296, -1003, -3352, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 40.706596f, -1296, -1003, -3352, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 45.10661f, -1314, -969, -3346, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.10661f, -1313, -970, -3346, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.10661f, -1313, -969, -3346, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.10661f, -1313, -970, -3346, 0x013F), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.10661f, -1313, -970, -3346, 0x006D), + CS_CAM_AT_SPLINE(91, 1299), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 44.70661f, -1405, -988, -3343, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 44.70661f, -1406, -989, -3344, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 44.70661f, -1406, -989, -3344, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 44.70661f, -1406, -989, -3344, 0x00E8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 7, 60.906673f, -1393, -978, -3342, 0x00EA), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x013D), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x013F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.906673f, -1393, -977, -3342, 0x014E), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x015F), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.906673f, -1393, -977, -3342, 0x0161), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.906673f, -1401, -1094, -3347, 0x652E), + CS_CAM_AT_SPLINE(211, 361), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00C6), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00C8), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00D7), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 30.306555f, -1426, -857, -3190, 0x00EA), CS_END(), }; @@ -204,36 +204,36 @@ static u32 D_80AF1724 = 0; static CutsceneData D_80AF1728[] = { CS_BEGIN_CUTSCENE(7, 1160), CS_MISC_LIST(1), - CS_MISC(0x000C, 75, 627, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(48, 1), - CS_NPC_ACTION(0x0002, 0, 90, 0x0000, 0x0000, 0x0000, -1360, -963, -3343, -1360, -963, -3343, 0.0f, 0.0f, 0.0f), - CS_CAM_EYE_LIST(0, 1091), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x8BC0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x2200), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0xD0E8), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER_LIST(40, 1131), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0x8BC0), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0x2200), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0xD0E8), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 50.800022f, 19, 40, 53, 0x0000), - CS_CAM_AT_LIST(0, 1120), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.599983f, -1224, -979, -3366, 0x8BC0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.599983f, -1224, -979, -3366, 0x2200), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 40.599983f, -1224, -979, -3366, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 40.599983f, -1224, -979, -3366, 0xD0E8), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 40.599983f, -1224, -979, -3366, 0x0000), - CS_CAM_AT_REL_TO_PLAYER_LIST(40, 1160), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 50.800022f, -35, 56, -93, 0x8BC0), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 50.800022f, -35, 56, -93, 0x2200), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 50.800022f, -35, 56, -93, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 50.800022f, -35, 56, -93, 0xD0E8), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 50.800022f, -35, 56, -93, 0x0000), + CS_MISC(CS_MISC_STOP_CUTSCENE, 75, 627, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0xFFFFFFC0, 0x00000032, 0x00000000, 0x00000000, 0x00000000), + CS_ACTOR_CUE_LIST(48, 1), + CS_ACTOR_CUE(0x0002, 0, 90, 0x0000, 0x0000, 0x0000, -1360, -963, -3343, -1360, -963, -3343, 0.0f, 0.0f, 0.0f), + CS_CAM_EYE_SPLINE(0, 1091), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x8BC0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x2200), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 40.599983f, -1381, -958, -3331, 0xD0E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 40.599983f, -1381, -958, -3331, 0x0000), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(40, 1131), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0x8BC0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0x2200), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 50.800022f, 19, 40, 53, 0xD0E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 50.800022f, 19, 40, 53, 0x0000), + CS_CAM_AT_SPLINE(0, 1120), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.599983f, -1224, -979, -3366, 0x8BC0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.599983f, -1224, -979, -3366, 0x2200), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 40.599983f, -1224, -979, -3366, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 40.599983f, -1224, -979, -3366, 0xD0E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 40.599983f, -1224, -979, -3366, 0x0000), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(40, 1160), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.800022f, -35, 56, -93, 0x8BC0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.800022f, -35, 56, -93, 0x2200), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 50.800022f, -35, 56, -93, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.800022f, -35, 56, -93, 0xD0E8), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 50.800022f, -35, 56, -93, 0x0000), CS_TEXT_LIST(2), CS_TEXT_NONE(0, 35), - CS_TEXT_DISPLAY_TEXTBOX(0x404F, 35, 70, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT(0x404F, 35, 70, 0x0000, 0xFFFF, 0xFFFF), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c index f1476abd99..c140b24269 100644 --- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c +++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c @@ -173,43 +173,41 @@ s32 EnRu2_UpdateSkelAnime(EnRu2* this) { return SkelAnime_Update(&this->skelAnime); } -CsCmdActorAction* func_80AF27AC(PlayState* play, s32 npcActionIdx) { +CsCmdActorCue* EnRu2_GetCue(PlayState* play, s32 cueChannel) { if (play->csCtx.state != CS_STATE_IDLE) { - return play->csCtx.npcActions[npcActionIdx]; + return play->csCtx.actorCues[cueChannel]; } return NULL; } -s32 func_80AF27D0(EnRu2* this, PlayState* play, u16 arg2, s32 npcActionIdx) { - CsCmdActorAction* csCmdActorAction = func_80AF27AC(play, npcActionIdx); +s32 func_80AF27D0(EnRu2* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = EnRu2_GetCue(play, cueChannel); - if ((csCmdActorAction != NULL) && (csCmdActorAction->action == arg2)) { + if ((cue != NULL) && (cue->id == cueId)) { return true; } return false; } -s32 func_80AF281C(EnRu2* this, PlayState* play, u16 arg2, s32 npcActionIdx) { - CsCmdActorAction* csCmdNPCAction = func_80AF27AC(play, npcActionIdx); +s32 func_80AF281C(EnRu2* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = EnRu2_GetCue(play, cueChannel); - if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action != arg2)) { + if ((cue != NULL) && (cue->id != cueId)) { return true; } return false; } -void func_80AF2868(EnRu2* this, PlayState* play, u32 npcActionIdx) { - CsCmdActorAction* csCmdNPCAction = func_80AF27AC(play, npcActionIdx); - s16 newRotY; +void func_80AF2868(EnRu2* this, PlayState* play, u32 cueChannel) { + CsCmdActorCue* cue = EnRu2_GetCue(play, cueChannel); Actor* thisx = &this->actor; - if (csCmdNPCAction != NULL) { - thisx->world.pos.x = csCmdNPCAction->startPos.x; - thisx->world.pos.y = csCmdNPCAction->startPos.y; - thisx->world.pos.z = csCmdNPCAction->startPos.z; - newRotY = csCmdNPCAction->rot.y; - thisx->shape.rot.y = newRotY; - thisx->world.rot.y = newRotY; + if (cue != NULL) { + thisx->world.pos.x = cue->startPos.x; + thisx->world.pos.y = cue->startPos.y; + thisx->world.pos.z = cue->startPos.z; + + thisx->world.rot.y = thisx->shape.rot.y = cue->rot.y; } } @@ -268,7 +266,7 @@ void func_80AF2AB4(EnRu2* this, PlayState* play) { if ((gSaveContext.chamberCutsceneNum == 2) && !IS_CUTSCENE_LAYER) { player = GET_PLAYER(play); this->action = 1; - play->csCtx.segment = D_80AF411C; + play->csCtx.script = D_80AF411C; gSaveContext.cutsceneTrigger = 2; Item_Give(play, ITEM_MEDALLION_WATER); temp = this->actor.world.rot.y + 0x8000; @@ -279,11 +277,12 @@ void func_80AF2AB4(EnRu2* this, PlayState* play) { void func_80AF2B44(EnRu2* this, PlayState* play) { CutsceneContext* csCtx = &play->csCtx; - CsCmdActorAction* csCmdNPCAction; + CsCmdActorCue* cue; if (csCtx->state != CS_STATE_IDLE) { - csCmdNPCAction = csCtx->npcActions[3]; - if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action == 2)) { + cue = csCtx->actorCues[3]; + + if ((cue != NULL) && (cue->id == 2)) { this->action = 2; this->drawConfig = 1; func_80AF29DC(this, play); @@ -300,11 +299,12 @@ void func_80AF2B94(EnRu2* this) { void func_80AF2BC0(EnRu2* this, PlayState* play) { AnimationHeader* animation = &gAdultRutoRaisingArmsUpAnim; - CsCmdActorAction* csCmdNPCAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - csCmdNPCAction = play->csCtx.npcActions[3]; - if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action == 3)) { + cue = play->csCtx.actorCues[3]; + + if ((cue != NULL) && (cue->id == 3)) { Animation_Change(&this->skelAnime, animation, 1.0f, 0.0f, Animation_GetLastFrame(animation), ANIMMODE_ONCE, 0.0f); this->action = 4; @@ -319,11 +319,12 @@ void func_80AF2C54(EnRu2* this, s32 arg1) { } void func_80AF2C68(EnRu2* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction; + CsCmdActorCue* cue; if (play->csCtx.state != CS_STATE_IDLE) { - csCmdNPCAction = play->csCtx.npcActions[6]; - if ((csCmdNPCAction != NULL) && (csCmdNPCAction->action == 2)) { + cue = play->csCtx.actorCues[6]; + + if ((cue != NULL) && (cue->id == 2)) { this->action = 6; func_80AF2A38(this, play); } @@ -536,15 +537,16 @@ void func_80AF3530(EnRu2* this, s32 arg1) { } void func_80AF3564(EnRu2* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction = func_80AF27AC(play, 3); - s32 action; - s32 unk_2BC; + CsCmdActorCue* cue = EnRu2_GetCue(play, 3); + s32 nextCueId; + s32 currentCueId; - if (csCmdNPCAction != NULL) { - action = csCmdNPCAction->action; - unk_2BC = this->unk_2BC; - if (action != unk_2BC) { - switch (action) { + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { case 7: func_80AF346C(this, play); break; @@ -556,7 +558,7 @@ void func_80AF3564(EnRu2* this, PlayState* play) { osSyncPrintf("En_Ru2_inEnding_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); break; } - this->unk_2BC = action; + this->cueId = nextCueId; } } } diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.h b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.h index cf2e894ced..530f0c4a57 100644 --- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.h +++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.h @@ -21,7 +21,7 @@ typedef struct EnRu2 { /* 0x02B0 */ f32 unk_2B0; /* 0x02B4 */ u32 alpha; /* 0x02B8 */ s32 unk_2B8; - /* 0x02BC */ s32 unk_2BC; + /* 0x02BC */ s32 cueId; /* 0x02C0 */ u16 unk_2C0; /* 0x02C2 */ u8 unk_2C2; /* 0x02C3 */ u8 unk_2C3; diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2_cutscene_data.inc.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2_cutscene_data.inc.c index e265d10a9a..cd1cfcdf11 100644 --- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2_cutscene_data.inc.c +++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2_cutscene_data.inc.c @@ -6,219 +6,219 @@ static CutsceneData D_80AF411C[] = { CS_BEGIN_CUTSCENE(35, 3338), CS_UNK_DATA_LIST(0x00000020, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0xFFFFFFFC, 0x00000002, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(31, 5), - CS_NPC_ACTION(0x0001, 0, 829, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 829, 830, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0004, 830, 898, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 898, 948, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 82, 0, 0.0f, -2.68f, 0.0f), - CS_NPC_ACTION(0x0003, 948, 3338, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION_LIST(5), - CS_PLAYER_ACTION(0x000D, 0, 240, 0x0000, 0x0000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION(0x0005, 240, 520, 0x0000, 0x4000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION(0x0003, 520, 550, 0x0000, 0x4000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION(0x0005, 550, 801, 0x0000, 0x4000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_PLAYER_ACTION(0x0013, 801, 1956, 0x0000, 0xC000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(49, 1), - CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -16, -121, 0, -16, -121, 0.0f, 0.0f, 0.0f), - CS_LIGHTING_LIST(5), - CS_LIGHTING(0x0005, 0, 384, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), - CS_LIGHTING(0x0006, 384, 454, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), - CS_LIGHTING(0x0005, 454, 554, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), - CS_LIGHTING(0x0006, 554, 624, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), - CS_LIGHTING(0x0005, 624, 3001, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), - CS_NPC_ACTION_LIST(39, 1), - CS_NPC_ACTION(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, 0, -2, 0, 0, -2, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION_LIST(42, 3), - CS_NPC_ACTION(0x0001, 0, 146, 0x0000, 0x0000, 0x0000, 195, 6, 0, 195, 6, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0002, 146, 754, 0x0000, 0x0000, 0x0000, 195, 6, 0, 195, 6, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0003, 754, 2628, 0x0000, 0x0000, 0x0000, 195, 6, 0, 195, 6, 0, 0.0f, 0.0f, 0.0f), - CS_SCENE_TRANS_FX(0x0001, 810, 823), - CS_SCENE_TRANS_FX(0x0005, 825, 855), - CS_SCENE_TRANS_FX(0x0001, 1090, 1121), - CS_CAM_EYE_LIST(0, 301), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x1FBC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x1F98), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 145.79877f, -456, 107, 56, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -76, 54, 71, 0x0164), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 116, 54, 96, 0x2100), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 236, 11, 64, 0x0049), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 236, 11, 64, 0x204C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, 236, 11, 64, 0xE990), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.600002f, 236, 11, 64, 0x0000), - CS_CAM_EYE_LIST(263, 1484), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 161, 53, 26, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 161, 53, 26, 0x1FBC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 161, 53, 26, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x1F98), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 42.22703f, 130, 9, 96, 0x0164), - CS_CAM_EYE_LIST(383, 1474), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x1FBC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 70.22702f, 207, 45, 34, 0x1F98), - CS_CAM_EYE_LIST(453, 1544), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0x1FBC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.027042f, -58, 90, 70, 0x1F98), - CS_CAM_EYE_LIST(553, 1644), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x1FBC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 70.22702f, 207, 45, 34, 0x1F98), - CS_CAM_EYE_LIST(623, 1714), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0x1FBC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.4271f, 161, 59, 0, 0x1F98), - CS_CAM_EYE_LIST(693, 1784), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0x1FBC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.4271f, 151, 82, 35, 0x1F98), - CS_CAM_EYE_LIST(763, 944), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 230, 7, 24, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 230, 7, 24, 0x1FBC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 230, 7, 24, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.4271f, 207, 62, 15, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.42702f, 230, 240, 24, 0x1F98), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.42702f, 230, 240, 24, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 70.42702f, 230, 240, 24, 0x0000), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 70.42702f, 230, 240, 24, 0x0164), - CS_CAM_EYE_LIST(823, 1165), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x1FBC), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0xD5E0), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x1F98), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x0000), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x0164), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x2100), - CS_CAM_EYE_REL_TO_PLAYER_LIST(899, 2080), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x1FBC), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0xD5E0), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x1F98), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), - CS_CAM_EYE_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x0164), - CS_CAM_AT_LIST(0, 330), - CS_CAM_AT(CS_CMD_CONTINUE, 0x1E, 20, 175.39832f, -649, -75, 101, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0xE2, 20, 175.39832f, -652, -75, 98, 0x1FBC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x1E, 20, 175.39832f, -658, -75, 87, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0xE2, 20, 175.39832f, -678, 127, 71, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 175.39832f, -727, 0, 71, 0x1F98), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 145.79877f, -513, 0, 43, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -349, 89, 47, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, 6, 61, 1, 0x0164), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, 33, 66, 28, 0x2100), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, 158, 42, 1, 0x0049), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, 158, 42, 1, 0x204C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, 158, 42, 1, 0xE990), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.600002f, 158, 42, 1, 0x0000), - CS_CAM_AT_LIST(263, 1513), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 42.22703f, 322, 62, -122, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 42.22703f, 322, 62, -122, 0x1FBC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 42.22703f, 322, 62, -122, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 42.22703f, 232, 63, -83, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 42.22703f, 232, 63, -83, 0x1F98), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 42.22703f, 232, 63, -83, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 42.22703f, 232, 63, -83, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 42.22703f, 232, 63, -83, 0x0164), - CS_CAM_AT_LIST(383, 1503), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x1FBC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 70.22702f, 51, 62, -105, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 70.22702f, 51, 62, -105, 0x1F98), - CS_CAM_AT_LIST(453, 1573), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.027042f, 102, 22, -31, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.027042f, 102, 22, -31, 0x1FBC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 45.027042f, 102, 22, -31, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.027042f, 102, 22, -31, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.027042f, 102, 22, -31, 0x1F98), - CS_CAM_AT_LIST(553, 1673), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x1FBC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 70.22702f, 51, 62, -105, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 70.22702f, 51, 62, -105, 0x1F98), - CS_CAM_AT_LIST(623, 1743), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 347, 22, 0, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 347, 22, 0, 0x1FBC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 60.4271f, 347, 22, 0, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 347, 22, 0, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.4271f, 347, 22, 0, 0x1F98), - CS_CAM_AT_LIST(693, 1813), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 258, -30, -54, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 258, -30, -54, 0x1FBC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 1000, 60.4271f, 258, -30, -54, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 258, -30, -54, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.4271f, 258, -30, -54, 0x1F98), - CS_CAM_AT_LIST(763, 973), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.4271f, 96, 105, -29, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.4271f, 96, 105, -29, 0x1FBC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.4271f, 96, 105, -29, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 15, 60.0271f, 110, 196, -26, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 70.42702f, 185, 399, 6, 0x1F98), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.42702f, 185, 399, 6, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 70.42702f, 185, 399, 6, 0x0000), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 70.42702f, 185, 399, 6, 0x0164), - CS_CAM_AT_LIST(823, 1214), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x1FBC), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0xD5E0), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x1F98), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x0000), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x0164), - CS_CAM_AT(CS_CMD_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x2100), - CS_CAM_AT_REL_TO_PLAYER_LIST(899, 2109), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x1FBC), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0xD5E0), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x1F98), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0000), - CS_CAM_AT_REL_TO_PLAYER(CS_CMD_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x0164), - CS_NPC_ACTION_LIST(62, 1), - CS_NPC_ACTION(0x0004, 0, 3000, 0xC10F, 0x0000, 0x0000, 77, 80, -2, 0, 80, 0, -0.025666667f, 0.0f, 0.025666667f), + CS_ACTOR_CUE_LIST(31, 5), + CS_ACTOR_CUE(0x0001, 0, 829, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 829, 830, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0004, 830, 898, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 216, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 898, 948, 0x0000, 0x0000, 0x0000, 0, 216, 0, 0, 82, 0, 0.0f, -2.68f, 0.0f), + CS_ACTOR_CUE(0x0003, 948, 3338, 0x0000, 0x0000, 0x0000, 0, 82, 0, 0, 82, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE_LIST(5), + CS_PLAYER_CUE(0x000D, 0, 240, 0x0000, 0x0000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE(0x0005, 240, 520, 0x0000, 0x4000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE(0x0003, 520, 550, 0x0000, 0x4000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE(0x0005, 550, 801, 0x0000, 0x4000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_PLAYER_CUE(0x0013, 801, 1956, 0x0000, 0xC000, 0x0000, 0, 6, 0, 0, 6, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(49, 1), + CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, -16, -121, 0, -16, -121, 0.0f, 0.0f, 0.0f), + CS_LIGHT_SETTING_LIST(5), + CS_LIGHT_SETTING(0x0004, 0, 384, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), + CS_LIGHT_SETTING(0x0005, 384, 454, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), + CS_LIGHT_SETTING(0x0004, 454, 554, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), + CS_LIGHT_SETTING(0x0005, 554, 624, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), + CS_LIGHT_SETTING(0x0004, 624, 3001, 0x0000, 0x00000000, 0xFFFFFFA1, 0x00000000, 0x00000058, 0xFFFFFFA1, 0x00000000, 0x00000058), + CS_ACTOR_CUE_LIST(39, 1), + CS_ACTOR_CUE(0x0001, 0, 3000, 0x0000, 0x0000, 0x0000, 0, 0, -2, 0, 0, -2, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(42, 3), + CS_ACTOR_CUE(0x0001, 0, 146, 0x0000, 0x0000, 0x0000, 195, 6, 0, 195, 6, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0002, 146, 754, 0x0000, 0x0000, 0x0000, 195, 6, 0, 195, 6, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0003, 754, 2628, 0x0000, 0x0000, 0x0000, 195, 6, 0, 195, 6, 0, 0.0f, 0.0f, 0.0f), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 810, 823), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 825, 855), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 1090, 1121), + CS_CAM_EYE_SPLINE(0, 301), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x1F98), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 175.39832f, -617, 30, 71, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 145.79877f, -456, 107, 56, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -76, 54, 71, 0x0164), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 116, 54, 96, 0x2100), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 236, 11, 64, 0x0049), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 236, 11, 64, 0x204C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, 236, 11, 64, 0xE990), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.600002f, 236, 11, 64, 0x0000), + CS_CAM_EYE_SPLINE(263, 1484), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 42.22703f, 161, 53, 26, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 42.22703f, 161, 53, 26, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 42.22703f, 161, 53, 26, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x1F98), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 42.22703f, 130, 9, 96, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 42.22703f, 130, 9, 96, 0x0164), + CS_CAM_EYE_SPLINE(383, 1474), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 70.22702f, 207, 45, 34, 0x1F98), + CS_CAM_EYE_SPLINE(453, 1544), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.027042f, -58, 90, 70, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.027042f, -58, 90, 70, 0x1F98), + CS_CAM_EYE_SPLINE(553, 1644), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.22702f, 207, 45, 34, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 70.22702f, 207, 45, 34, 0x1F98), + CS_CAM_EYE_SPLINE(623, 1714), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 161, 59, 0, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.4271f, 161, 59, 0, 0x1F98), + CS_CAM_EYE_SPLINE(693, 1784), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 151, 82, 35, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.4271f, 151, 82, 35, 0x1F98), + CS_CAM_EYE_SPLINE(763, 944), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 230, 7, 24, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 230, 7, 24, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 230, 7, 24, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.4271f, 207, 62, 15, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.42702f, 230, 240, 24, 0x1F98), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.42702f, 230, 240, 24, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 70.42702f, 230, 240, 24, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 70.42702f, 230, 240, 24, 0x0164), + CS_CAM_EYE_SPLINE(823, 1165), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 13, 854, 2, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 853, 5, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -3, 853, 5, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -9, 853, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -2, 852, -17, 0x1F98), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, -17, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 16, 852, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, 9, 852, 5, 0x0164), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -3, 851, 5, 0x2100), + CS_CAM_EYE_SPLINE_REL_TO_PLAYER(899, 2080), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 33, -27, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 68, -26, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x1F98), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 68.599945f, 0, 103, -26, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 68.599945f, 0, 103, -26, 0x0164), + CS_CAM_AT_SPLINE(0, 330), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x1E, 20, 175.39832f, -649, -75, 101, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0xE2, 20, 175.39832f, -652, -75, 98, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x1E, 20, 175.39832f, -658, -75, 87, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0xE2, 20, 175.39832f, -678, 127, 71, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 175.39832f, -727, 0, 71, 0x1F98), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 145.79877f, -513, 0, 43, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -349, 89, 47, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, 6, 61, 1, 0x0164), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, 33, 66, 28, 0x2100), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, 158, 42, 1, 0x0049), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, 158, 42, 1, 0x204C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, 158, 42, 1, 0xE990), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.600002f, 158, 42, 1, 0x0000), + CS_CAM_AT_SPLINE(263, 1513), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 42.22703f, 322, 62, -122, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 42.22703f, 322, 62, -122, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 42.22703f, 322, 62, -122, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 42.22703f, 232, 63, -83, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 42.22703f, 232, 63, -83, 0x1F98), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 42.22703f, 232, 63, -83, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 42.22703f, 232, 63, -83, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 42.22703f, 232, 63, -83, 0x0164), + CS_CAM_AT_SPLINE(383, 1503), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 70.22702f, 51, 62, -105, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 70.22702f, 51, 62, -105, 0x1F98), + CS_CAM_AT_SPLINE(453, 1573), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.027042f, 102, 22, -31, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.027042f, 102, 22, -31, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 45.027042f, 102, 22, -31, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.027042f, 102, 22, -31, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.027042f, 102, 22, -31, 0x1F98), + CS_CAM_AT_SPLINE(553, 1673), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 70.22702f, 51, 62, -105, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.22702f, 51, 62, -105, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 70.22702f, 51, 62, -105, 0x1F98), + CS_CAM_AT_SPLINE(623, 1743), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4271f, 347, 22, 0, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4271f, 347, 22, 0, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.4271f, 347, 22, 0, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4271f, 347, 22, 0, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.4271f, 347, 22, 0, 0x1F98), + CS_CAM_AT_SPLINE(693, 1813), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4271f, 258, -30, -54, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4271f, 258, -30, -54, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 60.4271f, 258, -30, -54, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4271f, 258, -30, -54, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.4271f, 258, -30, -54, 0x1F98), + CS_CAM_AT_SPLINE(763, 973), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.4271f, 96, 105, -29, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.4271f, 96, 105, -29, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.4271f, 96, 105, -29, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 15, 60.0271f, 110, 196, -26, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 70.42702f, 185, 399, 6, 0x1F98), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.42702f, 185, 399, 6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 70.42702f, 185, 399, 6, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 70.42702f, 185, 399, 6, 0x0164), + CS_CAM_AT_SPLINE(823, 1214), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 60.0f, 3, 6, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 40, 60.0f, 3, 6, -6, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 50.999966f, 3, 6, -6, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 20.59985f, 3, 6, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 51, 10.799838f, 3, 6, -6, 0x1F98), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.399838f, 3, 6, -6, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 50, 10.199839f, 3, 6, -6, 0x0164), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 50, 10.999838f, 3, 6, -6, 0x2100), + CS_CAM_AT_SPLINE_REL_TO_PLAYER(899, 2109), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 100, 5, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 101, 6, 0x1FBC), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 1, 99, 41, 0xD5E0), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x1F98), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 1000, 68.599945f, 0, 42, 16, 0x0000), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 68.599945f, 0, 42, 16, 0x0000), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 68.599945f, 0, 42, 16, 0x0164), + CS_ACTOR_CUE_LIST(62, 1), + CS_ACTOR_CUE(0x0004, 0, 3000, 0xC10F, 0x0000, 0x0000, 77, 80, -2, 0, 80, 0, -0.025666667f, 0.0f, 0.025666667f), CS_TEXT_LIST(14), CS_TEXT_NONE(0, 394), - CS_TEXT_DISPLAY_TEXTBOX(0x4041, 394, 444, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x4041, 394, 444, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(444, 464), - CS_TEXT_DISPLAY_TEXTBOX(0x4046, 464, 543, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x4046, 464, 543, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(543, 564), - CS_TEXT_DISPLAY_TEXTBOX(0x4049, 564, 613, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x4049, 564, 613, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(613, 634), - CS_TEXT_DISPLAY_TEXTBOX(0x4047, 634, 684, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x4047, 634, 684, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(684, 704), - CS_TEXT_DISPLAY_TEXTBOX(0x404A, 704, 750, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x404A, 704, 750, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(750, 1085), - CS_TEXT_DISPLAY_TEXTBOX(0x003D, 1085, 1090, 0x0000, 0x0000, 0x0000), + CS_TEXT(0x003D, 1085, 1090, 0x0000, 0x0000, 0x0000), CS_TEXT_NONE(1090, 1150), - CS_TEXT_DISPLAY_TEXTBOX(0x4042, 1150, 1160, 0x0000, 0x0000, 0x0000), - CS_TERMINATOR(LAKE_HYLIA_WATER_RISES, 1190, 1213), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x0044, 900, 901, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x00000034, 0x00000000, 0xFFFFFFC7, 0x00000034), - CS_FADE_BGM_LIST(1), - CS_FADE_BGM(0x0004, 800, 850, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC6, 0x00000030, 0x00000000, 0xFFFFFFC6, 0x00000030), + CS_TEXT(0x4042, 1150, 1160, 0x0000, 0x0000, 0x0000), + CS_DESTINATION(CS_DEST_LAKE_HYLIA_WATER_RESTORED, 1190, 1213), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_MEDALLION_GET, 900, 901, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC7, 0x00000034, 0x00000000, 0xFFFFFFC7, 0x00000034), + CS_FADE_OUT_SEQ_LIST(1), + CS_FADE_OUT_SEQ(CS_FADE_OUT_BGM_MAIN, 800, 850, 0x0000, 0x00000000, 0x00000000, 0xFFFFFFC6, 0x00000030, 0x00000000, 0xFFFFFFC6, 0x00000030), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index 5e7b343470..8c9e3183f0 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -466,16 +466,16 @@ void func_80AF609C(EnSa* this) { } } -void func_80AF6130(CsCmdActorAction* csAction, Vec3f* dst) { - dst->x = csAction->startPos.x; - dst->y = csAction->startPos.y; - dst->z = csAction->startPos.z; +void func_80AF6130(CsCmdActorCue* cue, Vec3f* dst) { + dst->x = cue->startPos.x; + dst->y = cue->startPos.y; + dst->z = cue->startPos.z; } -void func_80AF6170(CsCmdActorAction* csAction, Vec3f* dst) { - dst->x = csAction->endPos.x; - dst->y = csAction->endPos.y; - dst->z = csAction->endPos.z; +void func_80AF6170(CsCmdActorCue* cue, Vec3f* dst) { + dst->x = cue->endPos.x; + dst->y = cue->endPos.y; + dst->z = cue->endPos.z; } void EnSa_Init(Actor* thisx, PlayState* play) { @@ -505,7 +505,7 @@ void EnSa_Init(Actor* thisx, PlayState* play) { case 4: this->unk_210 = 0; this->actor.gravity = -1.0f; - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gSpot04Cs_10E20); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gSpot04Cs_10E20); gSaveContext.cutsceneTrigger = 1; EnSa_ChangeAnim(this, ENSA_ANIM1_4); this->actionFunc = func_80AF68E4; @@ -625,7 +625,7 @@ void func_80AF683C(EnSa* this, PlayState* play) { Player* player = GET_PLAYER(play); if (!(player->actor.world.pos.z >= -2220.0f) && !Play_InCsMode(play)) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(spot05_scene_Cs_005730); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(spot05_scene_Cs_005730); gSaveContext.cutsceneTrigger = 1; this->actionFunc = func_80AF68E4; } @@ -636,7 +636,7 @@ void func_80AF68E4(EnSa* this, PlayState* play) { Vec3f startPos; Vec3f endPos; Vec3f D_80AF7448 = { 0.0f, 0.0f, 0.0f }; - CsCmdActorAction* csAction; + CsCmdActorCue* cue; f32 temp_f0; f32 gravity; @@ -644,16 +644,18 @@ void func_80AF68E4(EnSa* this, PlayState* play) { this->actionFunc = func_80AF6B20; return; } - csAction = play->csCtx.npcActions[1]; - if (csAction != NULL) { - func_80AF6130(csAction, &startPos); - func_80AF6170(csAction, &endPos); + + cue = play->csCtx.actorCues[1]; + + if (cue != NULL) { + func_80AF6130(cue, &startPos); + func_80AF6170(cue, &endPos); if (this->unk_210 == 0) { this->actor.world.pos = startPos; } - if (this->unk_210 != csAction->action) { - switch (csAction->action) { + if (this->unk_210 != cue->id) { + switch (cue->id) { case 2: this->mouthIndex = 1; break; @@ -664,11 +666,13 @@ void func_80AF68E4(EnSa* this, PlayState* play) { this->mouthIndex = 0; break; } - EnSa_ChangeAnim(this, csAction->action); - this->unk_210 = csAction->action; + EnSa_ChangeAnim(this, cue->id); + this->unk_210 = cue->id; } + if (phi_v0) {} - if (csAction->action == 3) { + + if (cue->id == 3) { if (this->unk_20C == 0) { phi_v0 = 0; } else { @@ -681,13 +685,13 @@ void func_80AF68E4(EnSa* this, PlayState* play) { this->unk_20C = 8; } } - this->actor.shape.rot.x = csAction->urot.x; - this->actor.shape.rot.y = csAction->urot.y; - this->actor.shape.rot.z = csAction->urot.z; + this->actor.shape.rot.x = cue->rot.x; + this->actor.shape.rot.y = cue->rot.y; + this->actor.shape.rot.z = cue->rot.z; this->actor.velocity = D_80AF7448; - if (play->csCtx.frames < csAction->endFrame) { - temp_f0 = csAction->endFrame - csAction->startFrame; + if (play->csCtx.curFrame < cue->endFrame) { + temp_f0 = cue->endFrame - cue->startFrame; this->actor.velocity.x = (endPos.x - startPos.x) / temp_f0; this->actor.velocity.y = (endPos.y - startPos.y) / temp_f0; gravity = this->actor.gravity; diff --git a/src/overlays/actors/ovl_En_Sb/z_en_sb.c b/src/overlays/actors/ovl_En_Sb/z_en_sb.c index 9bad036458..0ab42f9180 100644 --- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c +++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c @@ -118,7 +118,7 @@ void EnSb_Init(Actor* thisx, PlayState* play) { this->actor.colChkInfo.mass = 0; Actor_SetScale(&this->actor, 0.006f); this->actor.shape.rot.y = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = -0.35f; this->fire = 0; this->hitByWindArrow = false; @@ -190,12 +190,12 @@ void EnSb_SetupCooldown(EnSb* this, s32 changeSpeed) { this->behavior = SHELLBLADE_WAIT_CLOSED; if (changeSpeed) { if (this->actor.yDistToWater > 0.0f) { - this->actor.speedXZ = -5.0f; + this->actor.speed = -5.0f; if (this->actor.velocity.y < 0.0f) { this->actor.velocity.y = 2.1f; } } else { - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; if (this->actor.velocity.y < 0.0f) { this->actor.velocity.y = 1.4f; } @@ -256,11 +256,11 @@ void EnSb_TurnAround(EnSb* this, PlayState* play) { this->actor.world.rot.y = this->attackYaw; if (this->actor.yDistToWater > 0.0f) { this->actor.velocity.y = 3.0f; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actor.gravity = -0.35f; } else { this->actor.velocity.y = 2.0f; - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; this->actor.gravity = -2.0f; } EnSb_SpawnBubbles(play, this); @@ -272,7 +272,7 @@ void EnSb_TurnAround(EnSb* this, PlayState* play) { } void EnSb_Lunge(EnSb* this, PlayState* play) { - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.2f); + Math_StepToF(&this->actor.speed, 0.0f, 0.2f); if ((this->actor.velocity.y <= -0.1f) || (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH)) { if (!(this->actor.yDistToWater > 0.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); @@ -289,7 +289,7 @@ void EnSb_Bounce(EnSb* this, PlayState* play) { currentFrame = this->skelAnime.curFrame; frameCount = Animation_GetLastFrame(&object_sb_Anim_0000B4); - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.2f); + Math_StepToF(&this->actor.speed, 0.0f, 0.2f); if (currentFrame == frameCount) { if (this->bouncesLeft != 0) { @@ -297,18 +297,18 @@ void EnSb_Bounce(EnSb* this, PlayState* play) { this->timer = 1; if (this->actor.yDistToWater > 0.0f) { this->actor.velocity.y = 3.0f; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actor.gravity = -0.35f; } else { this->actor.velocity.y = 2.0f; - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; this->actor.gravity = -2.0f; } EnSb_SpawnBubbles(play, this); EnSb_SetupLunge(this); } else if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->timer = 1; EnSb_SetupWaitClosed(this); osSyncPrintf(VT_FGCOL(RED) "攻撃終了!!" VT_RST "\n"); // "Attack Complete!" @@ -321,13 +321,13 @@ void EnSb_Cooldown(EnSb* this, PlayState* play) { this->timer--; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } else { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND; this->actionFunc = EnSb_WaitClosed; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } } diff --git a/src/overlays/actors/ovl_En_Skb/z_en_skb.c b/src/overlays/actors/ovl_En_Skb/z_en_skb.c index ccfcbaa70b..9d88348012 100644 --- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c +++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c @@ -238,7 +238,7 @@ void EnSkb_SetupDespawn(EnSkb* this) { this->actionState = SKB_BEHAVIOR_BURIED; this->setColliderAT = false; this->actor.flags &= ~ACTOR_FLAG_0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_AKINDONUTS_HIDE); EnSkb_SetupAction(this, EnSkb_Despawn); } @@ -259,7 +259,7 @@ void EnSkb_SetupWalkForward(EnSkb* this) { Animation_GetLastFrame(&gStalchildWalkingAnim), ANIMMODE_LOOP, -4.0f); this->actionState = SKB_BEHAVIOR_WALKING; this->headlessYawOffset = 0; - this->actor.speedXZ = this->actor.scale.y * 160.0f; + this->actor.speed = this->actor.scale.y * 160.0f; EnSkb_SetupAction(this, EnSkb_WalkForward); } @@ -307,7 +307,7 @@ void EnSkb_SetupAttack(EnSkb* this) { Animation_GetLastFrame(&gStalchildAttackingAnim), ANIMMODE_ONCE_INTERP, 4.0f); this->collider.base.atFlags &= ~AT_BOUNCED; this->actionState = SKB_BEHAVIOR_ATTACKING; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnSkb_SetupAction(this, EnSkb_Attack); } @@ -346,7 +346,7 @@ void EnSkb_Recoil(EnSkb* this, PlayState* play) { void EnSkb_SetupStunned(EnSkb* this) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_JR_FREEZE); this->setColliderAT = false; @@ -356,11 +356,11 @@ void EnSkb_SetupStunned(EnSkb* this) { void EnSkb_Stunned(EnSkb* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 0.05f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 0.05f; } } if ((this->actor.colorFilterTimer == 0) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { @@ -375,7 +375,7 @@ void EnSkb_Stunned(EnSkb* this, PlayState* play) { void EnSkb_SetupTakeDamage(EnSkb* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gStalchildDamagedAnim, -4.0f); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->actor.speedXZ = -4.0f; + this->actor.speed = -4.0f; } this->actor.world.rot.y = this->actor.yawTowardsPlayer; Actor_PlaySfx(&this->actor, NA_SE_EN_STALKID_DAMAGE); @@ -393,11 +393,11 @@ void EnSkb_TakeDamage(EnSkb* this, PlayState* play) { this->breakFlags = (*new_var) | 2; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0; + this->actor.speed = 0; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 0.05f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 0.05f; } } @@ -413,7 +413,7 @@ void EnSkb_SetupDeath(EnSkb* this, PlayState* play) { this->actor.shape.rot.y = this->actor.yawTowardsPlayer; this->actor.world.rot.y = this->actor.yawTowardsPlayer; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; } this->actionState = SKB_BEHAVIOR_DYING; this->actor.flags &= ~ACTOR_FLAG_0; diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c index 8bcc7261d7..5d68dd93ed 100644 --- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c +++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c @@ -440,7 +440,7 @@ void EnSkj_Init(Actor* thisx, PlayState* play2) { this->backflipFlag = 0; this->needlesToShoot = 3; this->hitsUntilDodge = 3; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = -1.0f; EnSkj_CalculateCenter(this); @@ -508,7 +508,7 @@ s32 EnSkj_ShootNeedle(EnSkj* this, PlayState* play) { this->actor.shape.rot.x, this->actor.shape.rot.y, this->actor.shape.rot.z, 0); if (needle != NULL) { needle->killTimer = 100; - needle->actor.speedXZ = 24.0f; + needle->actor.speed = 24.0f; return 1; } return 0; @@ -646,7 +646,7 @@ s32 func_80AFEDF8(EnSkj* this, PlayState* play) { void EnSkj_Backflip(EnSkj* this) { this->actor.velocity.y = 8.0f; - this->actor.speedXZ = -8.0f; + this->actor.speed = -8.0f; EnSkj_ChangeAnim(this, SKJ_ANIM_BACKFLIP); EnSkj_SetupAction(this, SKJ_ACTION_FADE); @@ -764,7 +764,7 @@ void EnSkj_PickNextFightAction(EnSkj* this, PlayState* play) { void func_80AFF2A0(EnSkj* this) { EnSkj_CalculateCenter(this); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnSkj_ChangeAnim(this, SKJ_ANIM_LAND); EnSkj_SetupAction(this, SKJ_ACTION_WAIT_FOR_LAND_ANIM); } @@ -910,7 +910,7 @@ void EnSkj_WaitInRange(EnSkj* this, PlayState* play) { player->actor.world.pos.y = sSmallStumpSkullKid.skullkid->actor.world.pos.y; player->actor.world.pos.z = sSmallStumpSkullKid.skullkid->actor.world.pos.z; EnSkj_TurnPlayer(sSmallStumpSkullKid.skullkid, player); - func_8010BD88(play, OCARINA_ACTION_CHECK_SARIA); + Message_StartOcarinaSunsSongDisabled(play, OCARINA_ACTION_CHECK_SARIA); EnSkj_SetupWaitForSong(this); } else if (D_80B01EA0 != 0) { player->actor.world.pos.x = sSmallStumpSkullKid.skullkid->actor.world.pos.x; @@ -1082,7 +1082,7 @@ void EnSkj_StartMaskTrade(EnSkj* this, PlayState* play) { void EnSkj_JumpFromStump(EnSkj* this) { this->actor.velocity.y = 8.0f; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; EnSkj_ChangeAnim(this, SKJ_ANIM_BACKFLIP); Animation_Reverse(&this->skelAnime); this->skelAnime.curFrame = this->skelAnime.startFrame; @@ -1093,7 +1093,7 @@ void EnSkj_WaitForLanding(EnSkj* this, PlayState* play) { if (this->actor.velocity.y <= 0.0f) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { this->actor.bgCheckFlags &= ~BGCHECKFLAG_GROUND_TOUCH; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnSkj_SetupWaitForLandAnimFinish(this); } } @@ -1114,7 +1114,7 @@ void EnSkj_WaitForLandAnimFinish(EnSkj* this, PlayState* play) { void EnSkj_SetupWalkToPlayer(EnSkj* this) { this->unk_2F0 = 0.0f; - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; EnSkj_ChangeAnim(this, SKJ_ANIM_WALK_TO_PLAYER); EnSkj_SetupAction(this, SKJ_ACTION_SARIA_SONG_WALK_TO_PLAYER); } @@ -1124,7 +1124,7 @@ void EnSkj_WalkToPlayer(EnSkj* this, PlayState* play) { Math_ApproachF(&this->unk_2F0, 2000.0f, 1.0f, 100.0f); this->actor.world.rot.y = this->actor.shape.rot.y; if (this->actor.xzDistToPlayer < 120.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnSkj_SetupAskForMask(this, play); } } @@ -1268,7 +1268,7 @@ void EnSkj_PlayOcarinaGame(EnSkj* this, PlayState* play) { void EnSkj_SetupLeaveOcarinaGame(EnSkj* this) { this->actor.velocity.y = 8.0f; - this->actor.speedXZ = -8.0f; + this->actor.speed = -8.0f; EnSkj_ChangeAnim(this, SKJ_ANIM_BACKFLIP); EnSkj_SetupAction(this, SKJ_ACTION_OCARINA_GAME_LEAVE); } @@ -1401,7 +1401,7 @@ void EnSkj_StartOcarinaMinigame(EnSkj* this, PlayState* play) { EnSkj_TurnPlayer(this, player); if (dialogState == TEXT_STATE_CLOSING) { - func_8010BD58(play, OCARINA_ACTION_MEMORY_GAME); + Message_StartOcarina(play, OCARINA_ACTION_MEMORY_GAME); if (sOcarinaMinigameSkullKids[SKULL_KID_LEFT].skullkid != NULL) { sOcarinaMinigameSkullKids[SKULL_KID_LEFT].skullkid->minigameState = SKULL_KID_OCARINA_PLAY_NOTES; } diff --git a/src/overlays/actors/ovl_En_St/z_en_st.c b/src/overlays/actors/ovl_En_St/z_en_st.c index 15fcbbcd34..e3a2a828f7 100644 --- a/src/overlays/actors/ovl_En_St/z_en_st.c +++ b/src/overlays/actors/ovl_En_St/z_en_st.c @@ -947,7 +947,7 @@ void EnSt_BounceAround(EnSt* this, PlayState* play) { this->actor.shape.rot = this->actor.world.rot; if (EnSt_IsDoneBouncing(this, play)) { this->actor.shape.yOffset = 400.0f; - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; this->actor.gravity = -2.0f; EnSt_SetupAction(this, EnSt_FinishBouncing); } else { diff --git a/src/overlays/actors/ovl_En_Sw/z_en_sw.c b/src/overlays/actors/ovl_En_Sw/z_en_sw.c index e8b770879b..99404046b8 100644 --- a/src/overlays/actors/ovl_En_Sw/z_en_sw.c +++ b/src/overlays/actors/ovl_En_Sw/z_en_sw.c @@ -275,7 +275,7 @@ void EnSw_Init(Actor* thisx, PlayState* play) { case 4: this->unk_360 = 1; this->actor.velocity.y = 8.0f; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; this->actor.gravity = -1.0f; FALLTHROUGH; case 2: @@ -510,9 +510,9 @@ void func_80B0D3AC(EnSw* this, PlayState* play) { this->actor.world.pos.x += this->unk_364.x * this->actor.velocity.y; this->actor.world.pos.y += this->unk_364.y * this->actor.velocity.y; this->actor.world.pos.z += this->unk_364.z * this->actor.velocity.y; - this->actor.world.pos.x += this->unk_37C.x * this->actor.speedXZ; - this->actor.world.pos.y += this->unk_37C.y * this->actor.speedXZ; - this->actor.world.pos.z += this->unk_37C.z * this->actor.speedXZ; + this->actor.world.pos.x += this->unk_37C.x * this->actor.speed; + this->actor.world.pos.y += this->unk_37C.y * this->actor.speed; + this->actor.world.pos.z += this->unk_37C.z * this->actor.speed; this->actor.velocity.y += this->actor.gravity; this->actor.velocity.y = CLAMP_MIN(this->actor.velocity.y, this->actor.minVelocityY); @@ -527,7 +527,7 @@ void func_80B0D3AC(EnSw* this, PlayState* play) { Actor_SetScale(&this->actor, 0.02f); this->actionFunc = func_80B0D590; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = 0.0f; } } @@ -762,7 +762,7 @@ void func_80B0E314(EnSw* this, Vec3f arg1, f32 arg4) { f32 yDiff; f32 zDiff; - Math_SmoothStepToF(&this->actor.speedXZ, arg4, 0.3f, 100.0f, 0.1f); + Math_SmoothStepToF(&this->actor.speed, arg4, 0.3f, 100.0f, 0.1f); xDiff = arg1.x - this->actor.world.pos.x; yDiff = arg1.y - this->actor.world.pos.y; zDiff = arg1.z - this->actor.world.pos.z; @@ -774,9 +774,9 @@ void func_80B0E314(EnSw* this, Vec3f arg1, f32 arg4) { yDist = yDiff / dist; zDist = zDiff / dist; } - xDist *= this->actor.speedXZ; - yDist *= this->actor.speedXZ; - zDist *= this->actor.speedXZ; + xDist *= this->actor.speed; + yDist *= this->actor.speed; + zDist *= this->actor.speed; this->actor.world.pos.x += xDist; this->actor.world.pos.y += yDist; this->actor.world.pos.z += zDist; @@ -871,7 +871,7 @@ void func_80B0E90C(EnSw* this, PlayState* play) { s32 pad; func_80B0E314(this, this->unk_448, 0.0f); - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { this->unk_444 = func_80B0DE34(this, &this->actor.home.pos); this->unk_448 = this->actor.home.pos; this->actionFunc = func_80B0E9BC; diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c index ff9099f95f..cfa6e410e0 100644 --- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c +++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c @@ -375,7 +375,7 @@ void func_80B12460(EnSyatekiNiw* this, PlayState* play) { break; case 1: - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; if (this->unk_25C == 0) { this->unk_25C = 3; this->actor.velocity.y = 3.5f; @@ -389,7 +389,7 @@ void func_80B12460(EnSyatekiNiw* this, PlayState* play) { phi_f16 = (this->unk_298 == 0) ? 5000.0f : -5000.0f; if (this->actor.world.pos.z > 100.0f) { - this->actor.speedXZ = 2.0f; + this->actor.speed = 2.0f; this->actor.gravity = -0.3f; this->actor.velocity.y = 5.0f; this->unk_29A = 2; @@ -398,7 +398,7 @@ void func_80B12460(EnSyatekiNiw* this, PlayState* play) { case 2: if ((player->actor.world.pos.z - 40.0f) < this->actor.world.pos.z) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && (this->actor.world.pos.z > 110.0f)) { @@ -409,7 +409,7 @@ void func_80B12460(EnSyatekiNiw* this, PlayState* play) { this->unk_278 = 0.0f; this->unk_280 = 0.0f; this->unk_288 = 0.0f; - this->actor.speedXZ = 0.5f; + this->actor.speed = 0.5f; this->unk_254 = this->unk_256 = 0; this->unk_28E = this->unk_290 = 0; this->unk_296 = 1; @@ -419,7 +419,7 @@ void func_80B12460(EnSyatekiNiw* this, PlayState* play) { case 3: if ((player->actor.world.pos.z - 50.0f) < this->actor.world.pos.z) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_262 = 0x3C; this->unk_25A = 0x14; this->unk_264 = 10000.0f; @@ -449,7 +449,7 @@ void func_80B12460(EnSyatekiNiw* this, PlayState* play) { this->unk_296 = 5; this->unk_256 = this->unk_258; this->unk_254 = this->unk_258; - this->actor.speedXZ = 1.0f; + this->actor.speed = 1.0f; } if ((this->unk_25A == 0) && ((player->actor.world.pos.z - 30.0f) < this->actor.world.pos.z)) { @@ -457,7 +457,7 @@ void func_80B12460(EnSyatekiNiw* this, PlayState* play) { &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); this->unk_25E = 0x14; this->unk_29A = 6; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } break; @@ -501,7 +501,7 @@ void func_80B128F8(EnSyatekiNiw* this, PlayState* play) { Actor_GetScreenPos(play, &this->actor, &sp26, &sp24); if ((this->actor.projectedPos.z > 200.0f) && (this->actor.projectedPos.z < 800.0f) && (sp26 > 0) && (sp26 < SCREEN_WIDTH) && (sp24 > 0) && (sp24 < SCREEN_HEIGHT)) { - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->unk_298 = Rand_ZeroFloat(1.99f); this->unk_2D8 = Rand_CenteredFloat(8000.0f) + -10000.0f; this->unk_262 = 0x1E; diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c index 4e43f8f7b4..1f41bcd24e 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -433,8 +433,8 @@ void EnTa_RunWithAccelerationAndSfx(EnTa* this, PlayState* play) { if (framesMod12 == 0 || framesMod12 == 6) { Actor_PlaySfx(&this->actor, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_DIRT); } - if (this->actor.speedXZ < 6.0f) { - this->actor.speedXZ += 0.4f; + if (this->actor.speed < 6.0f) { + this->actor.speed += 0.4f; } Actor_MoveForward(&this->actor); } @@ -651,7 +651,7 @@ void EnTa_TalkFoundSuperCucco(EnTa* this, PlayState* play) { // Make the found cucco fly directly upwards and then forget about it this->superCuccos[lastFoundSuperCuccoIdx]->actor.gravity = 0.1f; this->superCuccos[lastFoundSuperCuccoIdx]->actor.velocity.y = 0.0f; - this->superCuccos[lastFoundSuperCuccoIdx]->actor.speedXZ = 0.0f; + this->superCuccos[lastFoundSuperCuccoIdx]->actor.speed = 0.0f; this->superCuccos[lastFoundSuperCuccoIdx]->actor.parent = NULL; if (player->interactRangeActor == &this->superCuccos[lastFoundSuperCuccoIdx]->actor) { diff --git a/src/overlays/actors/ovl_En_Test/z_en_test.c b/src/overlays/actors/ovl_En_Test/z_en_test.c index 6eb6e01656..e840cef3f8 100644 --- a/src/overlays/actors/ovl_En_Test/z_en_test.c +++ b/src/overlays/actors/ovl_En_Test/z_en_test.c @@ -479,7 +479,7 @@ void EnTest_SetupIdle(EnTest* this) { Animation_PlayLoop(&this->skelAnime, &gStalfosMiddleGuardAnim); this->unk_7C8 = 0xA; this->timer = (Rand_ZeroOne() * 10.0f) + 5.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; EnTest_SetupAction(this, EnTest_Idle); } @@ -584,33 +584,33 @@ void EnTest_WalkAndBlock(EnTest* this, PlayState* play) { } if (this->actor.xzDistToPlayer <= (80.0f + checkDist)) { - Math_SmoothStepToF(&this->actor.speedXZ, -5.0f, 1.0f, 0.8f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, -5.0f, 1.0f, 0.8f, 0.0f); } else if (this->actor.xzDistToPlayer > (110.0f + checkDist)) { - Math_SmoothStepToF(&this->actor.speedXZ, 5.0f, 1.0f, 0.8f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 5.0f, 1.0f, 0.8f, 0.0f); } - if (this->actor.speedXZ >= 5.0f) { - this->actor.speedXZ = 5.0f; - } else if (this->actor.speedXZ < -5.0f) { - this->actor.speedXZ = -5.0f; + if (this->actor.speed >= 5.0f) { + this->actor.speed = 5.0f; + } else if (this->actor.speed < -5.0f) { + this->actor.speed = -5.0f; } if ((this->actor.params == STALFOS_TYPE_CEILING) && - !Actor_TestFloorInDirection(&this->actor, play, this->actor.speedXZ, this->actor.world.rot.y)) { - this->actor.speedXZ *= -1.0f; + !Actor_TestFloorInDirection(&this->actor, play, this->actor.speed, this->actor.world.rot.y)) { + this->actor.speed *= -1.0f; } - if (ABS(this->actor.speedXZ) < 3.0f) { + if (ABS(this->actor.speed) < 3.0f) { Animation_Change(&this->skelAnime, &gStalfosSlowAdvanceAnim, 0.0f, this->skelAnime.curFrame, Animation_GetLastFrame(&gStalfosSlowAdvanceAnim), 0, -6.0f); - playSpeed = this->actor.speedXZ * 10.0f; + playSpeed = this->actor.speed * 10.0f; } else { Animation_Change(&this->skelAnime, &gStalfosFastAdvanceAnim, 0.0f, this->skelAnime.curFrame, Animation_GetLastFrame(&gStalfosFastAdvanceAnim), 0, -4.0f); - playSpeed = this->actor.speedXZ * 10.0f * 0.02f; + playSpeed = this->actor.speed * 10.0f * 0.02f; } - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { if (this->unk_7DE == 0) { this->unk_7DE++; } @@ -702,7 +702,7 @@ void EnTest_WalkAndBlock(EnTest* this, PlayState* play) { EnTest_SetupStopAndBlock(this); } } else if (Rand_ZeroOne() < 0.1f) { - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; } } } @@ -779,7 +779,7 @@ void func_80860C24(EnTest* this, PlayState* play) { void func_80860EC0(EnTest* this) { Animation_PlayLoop(&this->skelAnime, &gStalfosSidestepAnim); this->unk_7C8 = 0xF; - this->actor.speedXZ = (Rand_ZeroOne() > 0.5f) ? -0.5f : 0.5f; + this->actor.speed = (Rand_ZeroOne() > 0.5f) ? -0.5f : 0.5f; this->timer = (s16)((Rand_ZeroOne() * 15.0f) + 25.0f); this->unk_7EC = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; @@ -803,25 +803,25 @@ void func_80860F84(EnTest* this, PlayState* play) { this->actor.world.rot.y = this->actor.shape.rot.y + 0x3E80; playerYaw180 = player->actor.shape.rot.y + 0x8000; - if (this->actor.speedXZ >= 0.0f) { - if (this->actor.speedXZ < 6.0f) { - this->actor.speedXZ += 0.5f; + if (this->actor.speed >= 0.0f) { + if (this->actor.speed < 6.0f) { + this->actor.speed += 0.5f; } else { - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } } else { - if (this->actor.speedXZ > -6.0f) { - this->actor.speedXZ -= 0.5f; + if (this->actor.speed > -6.0f) { + this->actor.speed -= 0.5f; } else { - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; } } if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || ((this->actor.params == STALFOS_TYPE_CEILING) && - !Actor_TestFloorInDirection(&this->actor, play, this->actor.speedXZ, this->actor.world.rot.y))) { + !Actor_TestFloorInDirection(&this->actor, play, this->actor.speed, this->actor.world.rot.y))) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { newYaw = this->actor.shape.rot.y + 0x3FFF; } else { newYaw = this->actor.shape.rot.y - 0x3FFF; @@ -829,17 +829,17 @@ void func_80860F84(EnTest* this, PlayState* play) { newYaw = this->actor.wallYaw - newYaw; } else { - this->actor.speedXZ *= -0.8f; + this->actor.speed *= -0.8f; newYaw = 0; } if (ABS(newYaw) > 0x4000) { - this->actor.speedXZ *= -0.8f; + this->actor.speed *= -0.8f; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ -= 0.5f; + if (this->actor.speed < 0.0f) { + this->actor.speed -= 0.5f; } else { - this->actor.speedXZ += 0.5f; + this->actor.speed += 0.5f; } } } @@ -861,7 +861,7 @@ void func_80860F84(EnTest* this, PlayState* play) { this->actor.world.pos.z += Math_CosS(this->actor.shape.rot.y) * this->unk_7EC; } - this->skelAnime.playSpeed = this->actor.speedXZ * 0.5f; + this->skelAnime.playSpeed = this->actor.speed * 0.5f; prevFrame = (s32)this->skelAnime.curFrame; SkelAnime_Update(&this->skelAnime); @@ -896,7 +896,7 @@ void EnTest_SetupSlashDown(EnTest* this) { Audio_StopSfxByPosAndId(&this->actor.projectedPos, NA_SE_EN_STAL_WARAU); this->swordCollider.base.atFlags &= ~AT_BOUNCED; this->unk_7C8 = 0x10; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnTest_SetupAction(this, EnTest_SlashDown); this->swordCollider.info.toucher.damage = 16; @@ -906,7 +906,7 @@ void EnTest_SetupSlashDown(EnTest* this) { } void EnTest_SlashDown(EnTest* this, PlayState* play) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if ((s32)this->skelAnime.curFrame < 4) { Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 0xBB8, 0); @@ -934,7 +934,7 @@ void EnTest_SlashDown(EnTest* this, PlayState* play) { void EnTest_SetupSlashDownEnd(EnTest* this) { Animation_PlayOnce(&this->skelAnime, &gStalfosRecoverFromDownSlashAnim); this->unk_7C8 = 0x12; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnTest_SetupAction(this, EnTest_SlashDownEnd); } @@ -996,7 +996,7 @@ void EnTest_SetupSlashUp(EnTest* this) { this->swordCollider.base.atFlags &= ~AT_BOUNCED; this->unk_7C8 = 0x11; this->swordCollider.info.toucher.damage = 16; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnTest_SetupAction(this, EnTest_SlashUp); if (this->unk_7DE != 0) { @@ -1005,7 +1005,7 @@ void EnTest_SetupSlashUp(EnTest* this) { } void EnTest_SlashUp(EnTest* this, PlayState* play) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if ((s32)this->skelAnime.curFrame == 2) { Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_SAKEBI); @@ -1034,9 +1034,9 @@ void EnTest_SetupJumpBack(EnTest* this) { } if (this->actor.params != STALFOS_TYPE_CEILING) { - this->actor.speedXZ = -11.0f; + this->actor.speed = -11.0f; } else { - this->actor.speedXZ = -7.0f; + this->actor.speed = -7.0f; } } @@ -1079,7 +1079,7 @@ void EnTest_SetupJumpslash(EnTest* this) { this->timer = 0; this->unk_7C8 = 0x17; this->actor.velocity.y = 10.0f; - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_JUMP); this->actor.world.rot.y = this->actor.shape.rot.y; this->swordCollider.base.atFlags &= ~AT_BOUNCED; @@ -1100,7 +1100,7 @@ void EnTest_Jumpslash(EnTest* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_SAKEBI); Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_JUMP); } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnTest_SetupIdle(this); } } @@ -1110,13 +1110,13 @@ void EnTest_Jumpslash(EnTest* this, PlayState* play) { } if (this->actor.world.pos.y <= this->actor.floorHeight) { - if (this->actor.speedXZ != 0.0f) { + if (this->actor.speed != 0.0f) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); } this->actor.world.pos.y = this->actor.floorHeight; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } @@ -1125,7 +1125,7 @@ void EnTest_SetupJumpUp(EnTest* this) { this->timer = 0; this->unk_7C8 = 4; this->actor.velocity.y = 14.0f; - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_JUMP); this->actor.world.rot.y = this->actor.shape.rot.y; EnTest_SetupAction(this, EnTest_JumpUp); @@ -1146,7 +1146,7 @@ void EnTest_JumpUp(EnTest* this, PlayState* play) { } this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_7C8 = 0xC; this->timer = 4; Animation_Change(&this->skelAnime, &gStalfosLandFromLeapAnim, 0.0f, 0.0f, 0.0f, 2, 0.0f); @@ -1158,7 +1158,7 @@ void EnTest_SetupStopAndBlock(EnTest* this) { Animation_Change(&this->skelAnime, &gStalfosBlockWithShieldAnim, 2.0f, 0.0f, Animation_GetLastFrame(&gStalfosBlockWithShieldAnim), 2, 2.0f); this->unk_7C8 = 0x15; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->timer = (Rand_ZeroOne() * 10.0f) + 11.0f; this->actor.world.rot.y = this->actor.shape.rot.y; this->unk_7DE = 5; @@ -1166,7 +1166,7 @@ void EnTest_SetupStopAndBlock(EnTest* this) { } void EnTest_StopAndBlock(EnTest* this, PlayState* play) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); SkelAnime_Update(&this->skelAnime); if ((ABS((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)) > 0x3E80) && @@ -1189,11 +1189,11 @@ void EnTest_SetupIdleFromBlock(EnTest* this) { } void EnTest_IdleFromBlock(EnTest* this, PlayState* play) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 1.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 1.5f, 0.0f); SkelAnime_Update(&this->skelAnime); if (this->skelAnime.morphWeight == 0.0f) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_7DE = 0; if (!EnTest_ReactToProjectile(play, this)) { @@ -1210,7 +1210,7 @@ void func_80862154(EnTest* this) { Animation_PlayOnce(&this->skelAnime, &gStalfosFlinchFromHitFrontAnim); Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_DAMAGE); this->unk_7C8 = 8; - this->actor.speedXZ = -2.0f; + this->actor.speed = -2.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8); EnTest_SetupAction(this, func_808621D4); } @@ -1218,10 +1218,10 @@ void func_80862154(EnTest* this) { void func_808621D4(EnTest* this, PlayState* play) { Player* player = GET_PLAYER(play); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.1f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.1f, 0.0f); if (SkelAnime_Update(&this->skelAnime)) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) && ((ABS((s16)(this->actor.wallYaw - this->actor.shape.rot.y)) < 0x38A4) && @@ -1254,7 +1254,7 @@ void func_80862398(EnTest* this) { Animation_PlayOnce(&this->skelAnime, &gStalfosFlinchFromHitBehindAnim); Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_DAMAGE); this->unk_7C8 = 9; - this->actor.speedXZ = -2.0f; + this->actor.speed = -2.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 8); EnTest_SetupAction(this, func_80862418); } @@ -1262,10 +1262,10 @@ void func_80862398(EnTest* this) { void func_80862418(EnTest* this, PlayState* play) { Player* player = GET_PLAYER(play); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.1f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.1f, 0.0f); if (SkelAnime_Update(&this->skelAnime)) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (!EnTest_ReactToProjectile(play, this)) { EnTest_ChooseAction(this, play); @@ -1295,7 +1295,7 @@ void EnTest_SetupStunned(EnTest* this) { this->unk_7DE = 0; this->swordState = 0; this->skelAnime.playSpeed = 0.0f; - this->actor.speedXZ = -4.0f; + this->actor.speed = -4.0f; if (this->lastDamageEffect == STALFOS_DMGEFF_LIGHT) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_GRAY, 120, COLORFILTER_BUFFLAG_OPA, 80); @@ -1316,7 +1316,7 @@ void EnTest_SetupStunned(EnTest* this) { void EnTest_Stunned(EnTest* this, PlayState* play) { Player* player = GET_PLAYER(play); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 1.0f, 0.0f); if (this->actor.colorFilterTimer == 0) { if (this->actor.colChkInfo.health == 0) { @@ -1334,7 +1334,7 @@ void EnTest_Stunned(EnTest* this, PlayState* play) { this->unk_7C8 = 8; } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (!EnTest_ReactToProjectile(play, this)) { EnTest_ChooseAction(this, play); } @@ -1351,7 +1351,7 @@ void func_808627C4(EnTest* this, PlayState* play) { Animation_MorphToLoop(&this->skelAnime, &gStalfosSidestepAnim, -2.0f); Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 0xFA0, 1); - this->actor.speedXZ = ((play->gameplayFrames % 2) != 0) ? -4.0f : 4.0f; + this->actor.speed = ((play->gameplayFrames % 2) != 0) ? -4.0f : 4.0f; this->actor.world.rot.y = this->actor.shape.rot.y + 0x3FFF; this->timer = (Rand_ZeroOne() * 20.0f) + 20.0f; this->unk_7C8 = 0x18; @@ -1377,25 +1377,25 @@ void func_808628C8(EnTest* this, PlayState* play) { this->unk_7DE++; } - if (this->actor.speedXZ >= 0.0f) { - if (this->actor.speedXZ < 6.0f) { - this->actor.speedXZ += 0.125f; + if (this->actor.speed >= 0.0f) { + if (this->actor.speed < 6.0f) { + this->actor.speed += 0.125f; } else { - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } } else { - if (this->actor.speedXZ > -6.0f) { - this->actor.speedXZ -= 0.125f; + if (this->actor.speed > -6.0f) { + this->actor.speed -= 0.125f; } else { - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; } } if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || ((this->actor.params == STALFOS_TYPE_CEILING) && - !Actor_TestFloorInDirection(&this->actor, play, this->actor.speedXZ, this->actor.shape.rot.y + 0x3FFF))) { + !Actor_TestFloorInDirection(&this->actor, play, this->actor.speed, this->actor.shape.rot.y + 0x3FFF))) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { newYaw = (this->actor.shape.rot.y + 0x3FFF); } else { newYaw = (this->actor.shape.rot.y - 0x3FFF); @@ -1403,17 +1403,17 @@ void func_808628C8(EnTest* this, PlayState* play) { newYaw = this->actor.wallYaw - newYaw; } else { - this->actor.speedXZ *= -0.8f; + this->actor.speed *= -0.8f; newYaw = 0; } if (ABS(newYaw) > 0x4000) { - this->actor.speedXZ *= -0.8f; + this->actor.speed *= -0.8f; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ -= 0.5f; + if (this->actor.speed < 0.0f) { + this->actor.speed -= 0.5f; } else { - this->actor.speedXZ += 0.5f; + this->actor.speed += 0.5f; } } } @@ -1437,7 +1437,7 @@ void func_808628C8(EnTest* this, PlayState* play) { this->actor.world.pos.z += (Math_CosS(this->actor.shape.rot.y) * this->unk_7EC); } - this->skelAnime.playSpeed = this->actor.speedXZ * 0.5f; + this->skelAnime.playSpeed = this->actor.speed * 0.5f; prevFrame = (s32)this->skelAnime.curFrame; SkelAnime_Update(&this->skelAnime); @@ -1538,7 +1538,7 @@ void func_80862FA8(EnTest* this, PlayState* play) { this->unk_7DE = 0; this->actor.flags &= ~ACTOR_FLAG_0; this->actor.colorFilterTimer = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->actor.params <= STALFOS_TYPE_CEILING) { this->unk_7C8 = 5; @@ -1567,7 +1567,7 @@ void func_808630F0(EnTest* this, PlayState* play) { this->unk_7C8 = 6; this->actor.colorFilterTimer = 0; this->unk_7DE = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->actor.params <= STALFOS_TYPE_CEILING) { this->actor.flags &= ~ACTOR_FLAG_0; @@ -1657,7 +1657,7 @@ void EnTest_UpdateDamage(EnTest* this, PlayState* play) { this->bodyCollider.base.acFlags &= ~AC_HIT; if (this->unk_7C8 >= 0xA) { - this->actor.speedXZ = -4.0f; + this->actor.speed = -4.0f; } } else if (this->bodyCollider.base.acFlags & AC_HIT) { this->bodyCollider.base.acFlags &= ~AC_HIT; @@ -1898,7 +1898,7 @@ void EnTest_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot if ((limbIndex == STALFOS_LIMB_FOOT_L) || (limbIndex == STALFOS_LIMB_ANKLE_R)) { if ((this->unk_7C8 == 0x15) || (this->unk_7C8 == 0x16)) { - if (this->actor.speedXZ != 0.0f) { + if (this->actor.speed != 0.0f) { Matrix_MultVec3f(&D_80864658, &sp64); Actor_SpawnFloorDustRing(play, &this->actor, &sp64, 10.0f, 1, 8.0f, 100, 15, false); } @@ -1974,7 +1974,7 @@ void EnTest_Draw(Actor* thisx, PlayState* play) { // a variation of sidestep void func_80864158(EnTest* this, f32 xzSpeed) { Animation_MorphToLoop(&this->skelAnime, &gStalfosSidestepAnim, -2.0f); - this->actor.speedXZ = xzSpeed; + this->actor.speed = xzSpeed; this->actor.world.rot.y = this->actor.shape.rot.y + 0x3FFF; this->timer = (Rand_ZeroOne() * 20.0f) + 15.0f; this->unk_7C8 = 0x18; diff --git a/src/overlays/actors/ovl_En_Tite/z_en_tite.c b/src/overlays/actors/ovl_En_Tite/z_en_tite.c index b396a55f09..b7da6a2b1a 100644 --- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c +++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c @@ -222,13 +222,13 @@ void EnTite_SetupIdle(EnTite* this) { Animation_MorphToLoop(&this->skelAnime, &object_tite_Anim_0012E4, 4.0f); this->action = TEKTITE_IDLE; this->vIdleTimer = Rand_S16Offset(15, 30); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnTite_SetupAction(this, EnTite_Idle); } void EnTite_Idle(EnTite* this, PlayState* play) { SkelAnime_Update(&this->skelAnime); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); if (this->actor.params == TEKTITE_BLUE) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { // Float on water surface @@ -256,7 +256,7 @@ void EnTite_SetupAttack(EnTite* this) { this->action = TEKTITE_ATTACK; this->vAttackState = TEKTITE_BEGIN_LUNGE; this->vQueuedJumps = Rand_S16Offset(1, 3); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; EnTite_SetupAction(this, EnTite_Attack); @@ -284,7 +284,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { } this->actor.velocity.y = 8.0f; this->actor.gravity = -1.0f; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; break; case TEKTITE_MID_LUNGE: // Continue trajectory until tektite has negative velocity and has landed on ground/water surface @@ -299,7 +299,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { this->actor.world.pos.y = this->actor.floorHeight; } this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } else { this->actor.gravity = 0.0f; if (this->actor.velocity.y < -8.0f) { @@ -311,7 +311,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { EffectSsGRipple_Spawn(play, &ripplePos, 0, 500, 0); } else { this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } this->actor.world.rot.y = this->actor.shape.rot.y; @@ -370,7 +370,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { Player* player = GET_PLAYER(play); this->collider.base.atFlags &= ~AT_HIT; Animation_MorphToLoop(&this->skelAnime, &object_tite_Anim_0012E4, 4.0f); - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer; if (&player->actor == this->collider.base.at) { if (!(this->collider.base.atFlags & AT_BOUNCED)) { @@ -387,7 +387,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { case TEKTITE_SUBMERGED: // Float up to water surface Math_SmoothStepToF(&this->actor.velocity.y, 0.0f, 1.0f, 2.0f, 0.0f); - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); Math_SmoothStepToF(&this->actor.world.pos.y, this->actor.world.pos.y + this->actor.yDistToWater, 1.0f, 2.0f, 0.0f); break; @@ -404,7 +404,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { // if landed, kill XZ speed and play appropriate sound effect if (this->actor.params == TEKTITE_BLUE) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->vAttackState == TEKTITE_SUBMERGED) { Actor_PlaySfx(&this->actor, NA_SE_EN_TEKU_LAND_WATER); } else { @@ -415,7 +415,7 @@ void EnTite_Attack(EnTite* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); } } else if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); } } @@ -428,7 +428,7 @@ void EnTite_SetupTurnTowardPlayer(EnTite* this) { if (this->actor.velocity.y <= 0.0f) { this->actor.gravity = 0.0f; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } EnTite_SetupAction(this, EnTite_TurnTowardPlayer); @@ -443,7 +443,7 @@ void EnTite_TurnTowardPlayer(EnTite* this, PlayState* play) { (this->actor.velocity.y <= 0.0f)) { this->actor.gravity = 0.0f; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } // Calculate turn velocity and animation speed based on angle to player if ((this->actor.params == TEKTITE_BLUE) && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER)) { @@ -493,7 +493,7 @@ void EnTite_SetupMoveTowardPlayer(EnTite* this) { this->action = TEKTITE_MOVE_TOWARD_PLAYER; this->actor.velocity.y = 10.0f; this->actor.gravity = -1.0f; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; this->vQueuedJumps = Rand_S16Offset(1, 3); if ((this->actor.params == TEKTITE_BLUE) && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER)) { Actor_PlaySfx(&this->actor, NA_SE_EN_TEKU_JUMP_WATER); @@ -507,7 +507,7 @@ void EnTite_SetupMoveTowardPlayer(EnTite* this) { * Jumping toward player as a method of travel (different from attacking, has no hitbox) */ void EnTite_MoveTowardPlayer(EnTite* this, PlayState* play) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 0.1f, 1.0f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 0.1f, 1.0f, 0.0f); SkelAnime_Update(&this->skelAnime); if (this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND_TOUCH | BGCHECKFLAG_WATER_TOUCH)) { @@ -536,7 +536,7 @@ void EnTite_MoveTowardPlayer(EnTite* this, PlayState* play) { (this->actor.bgCheckFlags & (BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH)))) && (this->actor.velocity.y <= 0.0f)) { // slightly turn toward player upon landing and snap to ground or water. - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 1, 4000, 0); this->actor.world.rot.y = this->actor.shape.rot.y; if ((this->actor.params != TEKTITE_BLUE) || !(this->actor.bgCheckFlags & BGCHECKFLAG_WATER)) { @@ -570,7 +570,7 @@ void EnTite_MoveTowardPlayer(EnTite* this, PlayState* play) { EnTite_SetupTurnTowardPlayer(this); } else { this->actor.velocity.y = 10.0f; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; this->actor.flags |= ACTOR_FLAG_24; this->actor.gravity = -1.0f; if ((this->actor.params == TEKTITE_BLUE) && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER)) { @@ -581,7 +581,7 @@ void EnTite_MoveTowardPlayer(EnTite* this, PlayState* play) { } } else { this->actor.velocity.y = 10.0f; - this->actor.speedXZ = 4.0f; + this->actor.speed = 4.0f; this->actor.flags |= ACTOR_FLAG_24; this->actor.gravity = -1.0f; if ((this->actor.params == TEKTITE_BLUE) && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER)) { @@ -609,7 +609,7 @@ void EnTite_MoveTowardPlayer(EnTite* this, PlayState* play) { void EnTite_SetupRecoil(EnTite* this) { this->action = TEKTITE_RECOIL; Animation_MorphToLoop(&this->skelAnime, &object_tite_Anim_0012E4, 4.0f); - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer; this->actor.gravity = -1.0f; EnTite_SetupAction(this, EnTite_Recoil); @@ -622,7 +622,7 @@ void EnTite_Recoil(EnTite* this, PlayState* play) { s16 angleToPlayer; // Snap to ground or water surface upon landing - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); if (((this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH)) || (this->actor.params == TEKTITE_BLUE && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER))) && (this->actor.velocity.y <= 0.0f)) { @@ -653,7 +653,7 @@ void EnTite_Recoil(EnTite* this, PlayState* play) { // If player is far away, idle. Otherwise attack or move angleToPlayer = (this->actor.yawTowardsPlayer - this->actor.shape.rot.y); - if ((this->actor.speedXZ == 0.0f) && + if ((this->actor.speed == 0.0f) && ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || ((this->actor.params == TEKTITE_BLUE) && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER)))) { this->actor.world.rot.y = this->actor.shape.rot.y; @@ -677,7 +677,7 @@ void EnTite_SetupStunned(EnTite* this) { Animation_Change(&this->skelAnime, &object_tite_Anim_0012E4, 0.0f, 0.0f, (f32)Animation_GetLastFrame(&object_tite_Anim_0012E4), ANIMMODE_LOOP, 4.0f); this->action = TEKTITE_STUNNED; - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer; if (this->damageEffect == 0xF) { this->spawnIceTimer = 48; @@ -692,7 +692,7 @@ void EnTite_SetupStunned(EnTite* this) { void EnTite_Stunned(EnTite* this, PlayState* play) { s16 angleToPlayer; - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); // Snap to ground or water if (((this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH)) || ((this->actor.params == TEKTITE_BLUE) && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER))) && @@ -722,7 +722,7 @@ void EnTite_Stunned(EnTite* this, PlayState* play) { } // Decide on next action based on health, flip state and player distance angleToPlayer = this->actor.yawTowardsPlayer - this->actor.shape.rot.y; - if (((this->actor.colorFilterTimer == 0) && (this->actor.speedXZ == 0.0f)) && + if (((this->actor.colorFilterTimer == 0) && (this->actor.speed == 0.0f)) && ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || ((this->actor.params == TEKTITE_BLUE) && (this->actor.bgCheckFlags & BGCHECKFLAG_WATER)))) { this->actor.world.rot.y = this->actor.shape.rot.y; @@ -748,7 +748,7 @@ void EnTite_Stunned(EnTite* this, PlayState* play) { void EnTite_SetupDeathCry(EnTite* this) { this->action = TEKTITE_DEATH_CRY; this->actor.colorFilterTimer = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnTite_SetupAction(this, EnTite_DeathCry); } @@ -783,7 +783,7 @@ void EnTite_SetupFlipOnBack(EnTite* this) { Actor_PlaySfx(&this->actor, NA_SE_EN_TEKU_REVERSE); this->flipState = TEKTITE_FLIPPED; this->vOnBackTimer = 500; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.gravity = -1.0f; this->vLegTwitchTimer = (Rand_ZeroOne() * 50.0f); this->actor.velocity.y = 11.0f; diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index f6ea1839b7..d512cfa09b 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -167,7 +167,7 @@ void EnTk_RestAnim(EnTk* this, PlayState* play) { -10.0f); this->actionCountdown = Rand_S16Offset(60, 60); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnTk_WalkAnim(EnTk* this, PlayState* play) { @@ -564,7 +564,7 @@ void EnTk_Walk(EnTk* this, PlayState* play) { this->interactInfo.talkState = NPC_TALK_STATE_IDLE; this->actionFunc = EnTk_Dig; } else { - this->actor.speedXZ = EnTk_Step(this, play); + this->actor.speed = EnTk_Step(this, play); EnTk_Orient(this, play); Math_SmoothStepToS(&this->headRot, 0, 6, 1000, 1); EnTk_CheckCurrentSpot(this); diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c index d81dc8380f..e69c9e3659 100644 --- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c +++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c @@ -215,7 +215,7 @@ void EnTp_Tail_FollowHead(EnTp* this, PlayState* play) { } if (this->head->unk_150 != 0) { - this->actor.speedXZ = this->red = this->actor.velocity.y = this->heightPhase = 0.0f; + this->actor.speed = this->red = this->actor.velocity.y = this->heightPhase = 0.0f; if (this->actor.world.pos.y < this->head->actor.home.pos.y) { this->actor.flags &= ~ACTOR_FLAG_0; } @@ -263,7 +263,7 @@ void EnTp_Head_ApproachPlayer(EnTp* this, PlayState* play) { this->actor.world.pos.y += Math_CosF(this->heightPhase) * (2.0f + this->extraHeightVariation); this->heightPhase += 0.2f; - Math_SmoothStepToF(&this->actor.speedXZ, 2.5f, 0.1f, 0.2f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 2.5f, 0.1f, 0.2f, 0.0f); this->timer--; if (this->timer != 0) { @@ -377,9 +377,9 @@ void EnTp_Head_TakeOff(EnTp* this, PlayState* play) { s32 pad; Player* player = GET_PLAYER(play); - Math_SmoothStepToF(&this->actor.speedXZ, 2.5f, 0.1f, 0.2f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 2.5f, 0.1f, 0.2f, 0.0f); Math_SmoothStepToF(&this->actor.world.pos.y, player->actor.world.pos.y + 85.0f + this->horizontalVariation, 1.0f, - this->actor.speedXZ * 0.25f, 0.0f); + this->actor.speed * 0.25f, 0.0f); Audio_PlaySfxGeneral(NA_SE_EN_TAIL_FLY - SFX_FLAG, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -399,7 +399,7 @@ void EnTp_Head_TakeOff(EnTp* this, PlayState* play) { } this->actor.world.pos.y += - Math_CosF(this->heightPhase) * ((this->actor.speedXZ * 0.25f) + this->extraHeightVariation); + Math_CosF(this->heightPhase) * ((this->actor.speed * 0.25f) + this->extraHeightVariation); this->actor.world.rot.y += this->unk_164; this->heightPhase += 0.2f; @@ -423,7 +423,7 @@ void EnTp_Head_SetupWait(EnTp* this) { this->actor.shape.rot.x = -0x4000; this->timer = 60; this->unk_15C = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnTp_SetupAction(this, EnTp_Head_Wait); } @@ -517,13 +517,13 @@ void EnTp_Head_BurrowReturnHome(EnTp* this, PlayState* play) { if (this->actor.shape.rot.x != -0x4000) { this->timer = 80; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.pos = this->actor.home.pos; this->actor.shape.rot.x = -0x4000; for (now = (EnTp*)this->actor.child; now != NULL; now = (EnTp*)now->actor.child) { now->actor.velocity.y = 0.0f; - now->actor.speedXZ = 0.0f; + now->actor.speed = 0.0f; now->actor.world.pos = this->actor.home.pos; now->actor.world.pos.y = this->actor.home.pos.y - 80.0f; } @@ -540,7 +540,7 @@ void EnTp_Head_BurrowReturnHome(EnTp* this, PlayState* play) { this->red -= 15; } - this->actor.speedXZ = 2.0f * Math_CosS(this->actor.shape.rot.x); + this->actor.speed = 2.0f * Math_CosS(this->actor.shape.rot.x); this->actor.velocity.y = Math_SinS(this->actor.shape.rot.x) * -2.0f; if ((this->actor.world.pos.y - this->actor.floorHeight) < 20.0f) { @@ -681,7 +681,7 @@ void EnTp_Update(Actor* thisx, PlayState* play) { } // Turn away from wall - if ((this->actor.speedXZ != 0.0f) && (this->actor.bgCheckFlags & BGCHECKFLAG_WALL)) { + if ((this->actor.speed != 0.0f) && (this->actor.bgCheckFlags & BGCHECKFLAG_WALL)) { yawToWall = this->actor.wallYaw - this->actor.world.rot.y; if (ABS(yawToWall) > 0x4000) { diff --git a/src/overlays/actors/ovl_En_Tr/z_en_tr.c b/src/overlays/actors/ovl_En_Tr/z_en_tr.c index ce9fc4858e..f7f84436d8 100644 --- a/src/overlays/actors/ovl_En_Tr/z_en_tr.c +++ b/src/overlays/actors/ovl_En_Tr/z_en_tr.c @@ -19,9 +19,9 @@ void EnTr_ShrinkVanish(EnTr* this, PlayState* play); void EnTr_WaitToReappear(EnTr* this, PlayState* play); void EnTr_ChooseAction1(EnTr* this, PlayState* play); -void EnTr_UpdateRotation(EnTr* this, PlayState* play, s32 actionIndex); -void func_80B24038(EnTr* this, PlayState* play, s32 actionIndex); -void EnTr_SetStartPosRot(EnTr* this, PlayState* play, s32 actionIndex); +void EnTr_SetRotFromCue(EnTr* this, PlayState* play, s32 cueChannel); +void func_80B24038(EnTr* this, PlayState* play, s32 cueChannel); +void EnTr_SetStartPosRotFromCue(EnTr* this, PlayState* play, s32 cueChannel); ActorInit En_Tr_InitVars = { ACTOR_EN_TR, @@ -100,7 +100,7 @@ void EnTr_Init(Actor* thisx, PlayState* play) { Animation_PlayOnce(&this->skelAnime, &gKotakeKoumeStandingBroomOverRightShoulderAnim); this->animation = NULL; EnTr_SetupAction(this, EnTr_ChooseAction1); - this->actionIndex = 3; + this->cueChannel = 3; break; case TR_KOTAKE: @@ -109,7 +109,7 @@ void EnTr_Init(Actor* thisx, PlayState* play) { Animation_PlayOnce(&this->skelAnime, &gKotakeKoumeStandingBroomOverLeftShoulderAnim); this->animation = NULL; EnTr_SetupAction(this, EnTr_ChooseAction1); - this->actionIndex = 2; + this->cueChannel = 2; break; default: @@ -143,8 +143,8 @@ void EnTr_DoNothing(EnTr* this, PlayState* play) { void EnTr_ChooseAction2(EnTr* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - if (play->csCtx.npcActions[this->actionIndex] != NULL) { - switch (play->csCtx.npcActions[this->actionIndex]->action) { + if (play->csCtx.actorCues[this->cueChannel] != NULL) { + switch (play->csCtx.actorCues[this->cueChannel]->id) { case 4: Actor_SetScale(&this->actor, 0.01f); @@ -166,8 +166,8 @@ void EnTr_ChooseAction2(EnTr* this, PlayState* play) { break; default: - func_80B24038(this, play, this->actionIndex); - EnTr_UpdateRotation(this, play, this->actionIndex); + func_80B24038(this, play, this->cueChannel); + EnTr_SetRotFromCue(this, play, this->cueChannel); break; } func_8002F974(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG); @@ -179,14 +179,14 @@ void EnTr_FlyKidnapCutscene(EnTr* this, PlayState* play) { Vec3f originalPos = this->actor.world.pos; if (play->csCtx.state != CS_STATE_IDLE) { - if (play->csCtx.npcActions[this->actionIndex] != NULL) { - if (play->csCtx.npcActions[this->actionIndex]->action == 8) { - func_80B24038(this, play, this->actionIndex); + if (play->csCtx.actorCues[this->cueChannel] != NULL) { + if (play->csCtx.actorCues[this->cueChannel]->id == 8) { + func_80B24038(this, play, this->cueChannel); this->actor.world.rot.y = Math_Atan2S(this->actor.velocity.z, this->actor.velocity.x); Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.world.rot.y, 10, 0x400, 0x100); this->actor.world.rot.y = this->actor.shape.rot.y; } else { - EnTr_SetStartPosRot(this, play, this->actionIndex); + EnTr_SetStartPosRotFromCue(this, play, this->cueChannel); this->actor.world.pos.x += Math_SinS(this->timer) * 150.0f; this->actor.world.pos.y += -100.0f; this->actor.world.pos.z += Math_CosS(this->timer) * 150.0f; @@ -199,7 +199,7 @@ void EnTr_FlyKidnapCutscene(EnTr* this, PlayState* play) { this->actor.velocity.z = this->actor.world.pos.z - originalPos.z; } - if (play->csCtx.frames < 670) { + if (play->csCtx.curFrame < 670) { func_8002F974(&this->actor, NA_SE_EN_TWINROBA_FLY_DEMO - SFX_FLAG); } } @@ -294,12 +294,11 @@ void EnTr_Reappear(EnTr* this, PlayState* play) { void EnTr_WaitToReappear(EnTr* this, PlayState* play) { if (play->csCtx.state != CS_STATE_IDLE) { - if ((play->csCtx.npcActions[this->actionIndex] != NULL) && - ((play->csCtx.npcActions[this->actionIndex]->action == 3) || - (play->csCtx.npcActions[this->actionIndex]->action == 5))) { + if ((play->csCtx.actorCues[this->cueChannel] != NULL) && ((play->csCtx.actorCues[this->cueChannel]->id == 3) || + (play->csCtx.actorCues[this->cueChannel]->id == 5))) { Actor_PlaySfx(&this->actor, NA_SE_EN_TWINROBA_TRANSFORM); this->timer = 34; - EnTr_SetStartPosRot(this, play, this->actionIndex); + EnTr_SetStartPosRotFromCue(this, play, this->cueChannel); EnTr_SetupAction(this, EnTr_Reappear); Animation_PlayLoop(&this->skelAnime, &gKotakeKoumeFlyAnim); this->animation = NULL; @@ -312,8 +311,7 @@ void EnTr_TakeOff(EnTr* this, PlayState* play) { f32 lastFrame = Animation_GetLastFrame(D_80B24378[this->actor.params]); if (play->csCtx.state != CS_STATE_IDLE) { - if ((play->csCtx.npcActions[this->actionIndex] != NULL) && - (play->csCtx.npcActions[this->actionIndex]->action == 3)) { + if ((play->csCtx.actorCues[this->cueChannel] != NULL) && (play->csCtx.actorCues[this->cueChannel]->id == 3)) { Animation_Change(&this->skelAnime, D_80B24378[this->actor.params], 1.0f, 0.0f, lastFrame, ANIMMODE_LOOP, -10.0f); this->animation = NULL; @@ -326,8 +324,7 @@ void EnTr_TurnLookOverShoulder(EnTr* this, PlayState* play) { f32 lastFrame = Animation_GetLastFrame(D_80B24368[this->actor.params]); if (play->csCtx.state != CS_STATE_IDLE) { - if ((play->csCtx.npcActions[this->actionIndex] != NULL) && - (play->csCtx.npcActions[this->actionIndex]->action == 2)) { + if ((play->csCtx.actorCues[this->cueChannel] != NULL) && (play->csCtx.actorCues[this->cueChannel]->id == 2)) { Animation_Change(&this->skelAnime, D_80B24368[this->actor.params], 1.0f, 0.0f, lastFrame, ANIMMODE_ONCE, -4.0f); this->animation = D_80B24370[this->actor.params]; @@ -340,15 +337,15 @@ void EnTr_ChooseAction1(EnTr* this, PlayState* play) { u32 frames = play->gameplayFrames; if (play->csCtx.state != CS_STATE_IDLE) { - if (play->csCtx.npcActions[this->actionIndex] != NULL) { - switch (play->csCtx.npcActions[this->actionIndex]->action) { + if (play->csCtx.actorCues[this->cueChannel] != NULL) { + switch (play->csCtx.actorCues[this->cueChannel]->id) { case 1: - EnTr_SetStartPosRot(this, play, this->actionIndex); + EnTr_SetStartPosRotFromCue(this, play, this->cueChannel); EnTr_SetupAction(this, EnTr_TurnLookOverShoulder); break; case 3: - EnTr_SetStartPosRot(this, play, this->actionIndex); + EnTr_SetStartPosRotFromCue(this, play, this->cueChannel); EnTr_SetupAction(this, EnTr_ChooseAction2); Animation_PlayLoop(&this->skelAnime, &gKotakeKoumeFlyAnim); this->animation = NULL; @@ -432,7 +429,7 @@ void EnTr_Draw(Actor* thisx, PlayState* play) { if (1) {} - if ((play->csCtx.state == CS_STATE_IDLE) || (play->csCtx.npcActions[this->actionIndex] == NULL)) { + if ((play->csCtx.state == CS_STATE_IDLE) || (play->csCtx.actorCues[this->cueChannel] == NULL)) { this->actor.shape.shadowDraw = NULL; } else { this->actor.shape.shadowDraw = ActorShadow_DrawCircle; @@ -447,29 +444,29 @@ void EnTr_Draw(Actor* thisx, PlayState* play) { } } -f32 func_80B23FDC(PlayState* play, s32 actionIndex) { - f32 phi_f2 = Environment_LerpWeight(play->csCtx.npcActions[actionIndex]->endFrame, - play->csCtx.npcActions[actionIndex]->startFrame, play->csCtx.frames); +f32 func_80B23FDC(PlayState* play, s32 cueChannel) { + f32 phi_f2 = Environment_LerpWeight(play->csCtx.actorCues[cueChannel]->endFrame, + play->csCtx.actorCues[cueChannel]->startFrame, play->csCtx.curFrame); phi_f2 = CLAMP_MAX(phi_f2, 1.0f); return phi_f2; } -void func_80B24038(EnTr* this, PlayState* play, s32 actionIndex) { +void func_80B24038(EnTr* this, PlayState* play, s32 cueChannel) { Vec3f startPos; Vec3f endPos; f32 temp_f0; f32 temp_f0_2; f32 phi_f12; - startPos.x = play->csCtx.npcActions[actionIndex]->startPos.x; - startPos.y = play->csCtx.npcActions[actionIndex]->startPos.y; - startPos.z = play->csCtx.npcActions[actionIndex]->startPos.z; + startPos.x = play->csCtx.actorCues[cueChannel]->startPos.x; + startPos.y = play->csCtx.actorCues[cueChannel]->startPos.y; + startPos.z = play->csCtx.actorCues[cueChannel]->startPos.z; - endPos.x = play->csCtx.npcActions[actionIndex]->endPos.x; - endPos.y = play->csCtx.npcActions[actionIndex]->endPos.y; - endPos.z = play->csCtx.npcActions[actionIndex]->endPos.z; + endPos.x = play->csCtx.actorCues[cueChannel]->endPos.x; + endPos.y = play->csCtx.actorCues[cueChannel]->endPos.y; + endPos.z = play->csCtx.actorCues[cueChannel]->endPos.z; - temp_f0 = func_80B23FDC(play, actionIndex); + temp_f0 = func_80B23FDC(play, cueChannel); startPos.x = ((endPos.x - startPos.x) * temp_f0) + startPos.x; startPos.y = ((endPos.y - startPos.y) * temp_f0) + startPos.y; @@ -494,8 +491,8 @@ void func_80B24038(EnTr* this, PlayState* play, s32 actionIndex) { func_8002D7EC(&this->actor); } -void EnTr_UpdateRotation(EnTr* this, PlayState* play, s32 actionIndex) { - s16 rotY = play->csCtx.npcActions[actionIndex]->rot.y; +void EnTr_SetRotFromCue(EnTr* this, PlayState* play, s32 cueChannel) { + s16 rotY = play->csCtx.actorCues[cueChannel]->rot.y; s32 rotDiff = this->actor.world.rot.y - rotY; s32 rotSign; @@ -517,13 +514,13 @@ void EnTr_UpdateRotation(EnTr* this, PlayState* play, s32 actionIndex) { this->actor.shape.rot.y = this->actor.world.rot.y; } -void EnTr_SetStartPosRot(EnTr* this, PlayState* play, s32 actionIndex) { +void EnTr_SetStartPosRotFromCue(EnTr* this, PlayState* play, s32 cueChannel) { Vec3f startPos; - startPos.x = play->csCtx.npcActions[actionIndex]->startPos.x; - startPos.y = play->csCtx.npcActions[actionIndex]->startPos.y; - startPos.z = play->csCtx.npcActions[actionIndex]->startPos.z; + startPos.x = play->csCtx.actorCues[cueChannel]->startPos.x; + startPos.y = play->csCtx.actorCues[cueChannel]->startPos.y; + startPos.z = play->csCtx.actorCues[cueChannel]->startPos.z; this->actor.world.pos = startPos; - this->actor.world.rot.y = this->actor.shape.rot.y = play->csCtx.npcActions[actionIndex]->rot.y; + this->actor.world.rot.y = this->actor.shape.rot.y = play->csCtx.actorCues[cueChannel]->rot.y; } diff --git a/src/overlays/actors/ovl_En_Tr/z_en_tr.h b/src/overlays/actors/ovl_En_Tr/z_en_tr.h index 656ab2f17e..c3c5f74ae0 100644 --- a/src/overlays/actors/ovl_En_Tr/z_en_tr.h +++ b/src/overlays/actors/ovl_En_Tr/z_en_tr.h @@ -46,7 +46,7 @@ typedef struct EnTr { /* 0x0232 */ Vec3s morphTable[KOTAKE_KOUME_LIMB_MAX]; /* 0x02D4 */ s16 unk_2D4; /* 0x02D6 */ u16 timer; // Also used as an angle - /* 0x02D8 */ s16 actionIndex; + /* 0x02D8 */ s16 cueChannel; /* 0x02DC */ EnTrActionFunc actionFunc; /* 0x02E0 */ s16 eyeIndex; /* 0x02E2 */ s16 blinkTimer; diff --git a/src/overlays/actors/ovl_En_Trap/z_en_trap.c b/src/overlays/actors/ovl_En_Trap/z_en_trap.c index 8152594ae5..dc754f5ddc 100644 --- a/src/overlays/actors/ovl_En_Trap/z_en_trap.c +++ b/src/overlays/actors/ovl_En_Trap/z_en_trap.c @@ -72,7 +72,7 @@ void EnTrap_Init(Actor* thisx, PlayState* play) { Actor_SetScale(thisx, 0.1f); thisx->gravity = -2.0f; if (thisx->params & SPIKETRAP_MODE_LINEAR) { - thisx->speedXZ = this->moveSpeedForwardBack.z = this->upperParams & 0xF; + thisx->speed = this->moveSpeedForwardBack.z = this->upperParams & 0xF; Actor_PlaySfx(thisx, NA_SE_EV_SPINE_TRAP_MOVE); } else if (thisx->params & SPIKETRAP_MODE_CIRCULAR) { this->vRadius = (this->upperParams & 0xF) * 40.0f; diff --git a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c index c57ded4af8..b9beb83c2d 100644 --- a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c +++ b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c @@ -248,7 +248,7 @@ void EnTuboTrap_Levitate(EnTuboTrap* this, PlayState* play) { Math_ApproachF(&this->actor.world.pos.y, this->targetY, 0.8f, 3.0f); if (fabsf(this->actor.world.pos.y - this->targetY) < 10.0f) { - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; this->actor.world.rot.y = this->actor.yawTowardsPlayer; this->actionFunc = EnTuboTrap_Fly; } diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c index 3e503ff374..f1ab2bfc94 100644 --- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c +++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c @@ -195,15 +195,15 @@ static s16 sTimer = 0; void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { u8 type = this->actor.params >> 8; - u16 csFrames; + u16 csCurFrame; s32 animationEnded; if (type == ENVIEWER_TYPE_2_ZELDA) { if (gSaveContext.sceneLayer == 5) { - csFrames = play->csCtx.frames; - if (csFrames == 792) { + csCurFrame = play->csCtx.curFrame; + if (csCurFrame == 792) { Actor_PlaySfx(&this->actor, NA_SE_VO_Z0_SURPRISE); - } else if (csFrames == 845) { + } else if (csCurFrame == 845) { Actor_PlaySfx(&this->actor, NA_SE_VO_Z0_THROW); } } @@ -214,7 +214,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { this->actor.uncullZoneDownward = 10000.0f; } else if (type == ENVIEWER_TYPE_3_GANONDORF) { if (gSaveContext.sceneLayer == 4) { - switch (play->csCtx.frames) { + switch (play->csCtx.curFrame) { case 20: case 59: case 71: @@ -232,18 +232,18 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { } } if (gSaveContext.sceneLayer == 5) { - if (play->csCtx.frames == 1508) { + if (play->csCtx.curFrame == 1508) { Actor_PlaySfx(&this->actor, NA_SE_EN_FANTOM_ST_LAUGH); } - if (play->csCtx.frames == 1545) { + if (play->csCtx.curFrame == 1545) { Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_DEMO_6K, 32.0f, 101.0f, 1226.0f, 0, 0, 0, 0xC); } } - if (play->csCtx.frames == 1020) { + if (play->csCtx.curFrame == 1020) { SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_FANFARE, 0, 0, NA_BGM_OPENING_GANON); } - if (play->csCtx.frames == 960) { + if (play->csCtx.curFrame == 960) { Audio_PlaySfxGeneral(NA_SE_EV_HORSE_GROAN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } @@ -279,8 +279,8 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { animationEnded = SkelAnime_Update(&this->skin.skelAnime); if (type == ENVIEWER_TYPE_3_GANONDORF || type == ENVIEWER_TYPE_4_HORSE_GANONDORF) { - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[1] != NULL) { - if (play->csCtx.npcActions[1]->action == 2 && sTimer == 0) { + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[1] != NULL) { + if (play->csCtx.actorCues[1]->id == 2 && sTimer == 0) { if (type == ENVIEWER_TYPE_3_GANONDORF) { if (this->skin.skelAnime.animation != &gYoungGanondorfHorsebackIdleAnim) { Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gYoungGanondorfHorsebackIdleAnim, 1.0f); @@ -288,7 +288,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { } else if (this->skin.skelAnime.animation != &gHorseGanonIdleAnim) { Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gHorseGanonIdleAnim, 1.0f); } - } else if (play->csCtx.npcActions[1]->action == 1) { + } else if (play->csCtx.actorCues[1]->id == 1) { sTimer = 100; if (type == ENVIEWER_TYPE_3_GANONDORF) { if (this->skin.skelAnime.animation != &gYoungGanondorfHorsebackRearAnim) { @@ -300,7 +300,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { } else if (type == ENVIEWER_TYPE_3_GANONDORF) { switch (this->state) { case 0: - if (play->csCtx.npcActions[1]->action == 4) { + if (play->csCtx.actorCues[1]->id == 4) { Animation_MorphToPlayOnce(&this->skin.skelAnime, &gYoungGanondorfHorsebackLookSidewaysStartAnim, -5.0f); this->state++; @@ -314,7 +314,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { } break; case 2: - if (play->csCtx.npcActions[1]->action == 5) { + if (play->csCtx.actorCues[1]->id == 5) { Animation_MorphToPlayOnce(&this->skin.skelAnime, &gYoungGanondorfHorsebackMagicChargeUpStartAnim, -5.0f); this->state++; @@ -328,20 +328,20 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { } break; case 4: - if (play->csCtx.npcActions[1]->action == 11) { + if (play->csCtx.actorCues[1]->id == 11) { Animation_MorphToLoop(&this->skin.skelAnime, &gYoungGanondorfHorsebackLookSidewaysLoopAnim, -20.0f); this->state++; } break; case 5: - if (play->csCtx.npcActions[1]->action == 8) { + if (play->csCtx.actorCues[1]->id == 8) { Animation_MorphToLoop(&this->skin.skelAnime, &gYoungGanondorfHorsebackIdleAnim, -15.0f); this->state++; } break; case 6: - if (play->csCtx.npcActions[1]->action == 12) { + if (play->csCtx.actorCues[1]->id == 12) { Actor_PlaySfx(&this->actor, NA_SE_EN_GANON_VOICE_DEMO); Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gYoungGanondorfHorsebackRideAnim, 3.0f); this->state++; @@ -352,34 +352,34 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { break; } } else if (this->skin.skelAnime.animation != &gHorseGanonGallopingAnim && - play->csCtx.npcActions[1]->action == 12) { + play->csCtx.actorCues[1]->id == 12) { Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gHorseGanonGallopingAnim, 3.0f); } } } else if (type == ENVIEWER_TYPE_1_IMPA) { if (gSaveContext.sceneLayer == 5) { - if (play->csCtx.frames == 845) { + if (play->csCtx.curFrame == 845) { Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_ITEM_OCARINA, 4.0f, 81.0f, 2600.0f, 0, 0, 0, 0); } } else { - if (play->csCtx.frames == 195) { + if (play->csCtx.curFrame == 195) { Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_ITEM_OCARINA, 4.0f, 81.0f, 2035.0f, 0, 0, 0, 1); } } switch (this->state) { case 0: - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[0] != NULL && - play->csCtx.npcActions[0]->action == 6 && + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[0] != NULL && + play->csCtx.actorCues[0]->id == 6 && this->skin.skelAnime.animation != &object_opening_demo1_Anim_002574) { Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &object_opening_demo1_Anim_002574, 1.5f); this->state++; } break; case 1: - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[0] != NULL && - play->csCtx.npcActions[0]->action == 2 && + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[0] != NULL && + play->csCtx.actorCues[0]->id == 2 && this->skin.skelAnime.animation != &object_opening_demo1_Anim_0029CC) { Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &object_opening_demo1_Anim_0029CC, 3.0f); this->state++; @@ -391,7 +391,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { switch (this->state) { case 0: if (play->csCtx.state != CS_STATE_IDLE) { - if (play->csCtx.npcActions[0] != NULL && play->csCtx.npcActions[0]->action == 6 && + if (play->csCtx.actorCues[0] != NULL && play->csCtx.actorCues[0]->id == 6 && this->skin.skelAnime.animation != &object_opening_demo1_Anim_001410) { Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &object_opening_demo1_Anim_001410, 1.5f); this->state++; @@ -400,7 +400,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { break; case 1: if (play->csCtx.state != CS_STATE_IDLE) { - if (play->csCtx.npcActions[0] != NULL && play->csCtx.npcActions[0]->action == 2 && + if (play->csCtx.actorCues[0] != NULL && play->csCtx.actorCues[0]->id == 2 && this->skin.skelAnime.animation != &object_opening_demo1_Anim_000450) { Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &object_opening_demo1_Anim_000450, 3.0f); this->state++; @@ -416,7 +416,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { this->state++; break; case 1: - if (play->csCtx.npcActions[0]->action == 11) { + if (play->csCtx.actorCues[0]->id == 11) { Animation_MorphToPlayOnce(&this->skin.skelAnime, &object_opening_demo1_Anim_00420C, -5.0f); this->state++; } @@ -434,8 +434,8 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { } else if (type == ENVIEWER_TYPE_7_GANONDORF) { switch (this->state) { case 0: - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[1] != NULL && - play->csCtx.npcActions[1]->action == 7) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[1] != NULL) && + (play->csCtx.actorCues[1]->id == 7)) { Audio_PlaySfxGeneral(NA_SE_EN_GANON_LAUGH, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); Animation_MorphToPlayOnce(&this->skin.skelAnime, &gYoungGanondorfLaughStartAnim, -5.0f); @@ -453,14 +453,14 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { switch (this->state) { case 0: if (play->csCtx.state != CS_STATE_IDLE) { - if (play->csCtx.npcActions[1] != NULL && play->csCtx.npcActions[1]->action == 9) { + if ((play->csCtx.actorCues[1] != NULL) && (play->csCtx.actorCues[1]->id == 9)) { Animation_PlayLoopSetSpeed(&this->skin.skelAnime, &gYoungGanondorfWalkAnim, 1.0f); this->state++; } } break; case 1: - if (play->csCtx.npcActions[1]->action == 10) { + if (play->csCtx.actorCues[1]->id == 10) { Animation_MorphToPlayOnce(&this->skin.skelAnime, &gYoungGanondorfKneelStartAnim, -10.0f); this->state++; } @@ -472,7 +472,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) { } break; case 3: - if (play->csCtx.npcActions[1]->action == 4) { + if (play->csCtx.actorCues[1]->id == 4) { Animation_MorphToPlayOnce(&this->skin.skelAnime, &gYoungGanondorfKneelLookSidewaysAnim, -5.0f); this->state++; } @@ -494,13 +494,13 @@ void EnViewer_Update(Actor* thisx, PlayState* play) { s32 EnViewer_Ganondorf3OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) { if (gSaveContext.sceneLayer == 4) { - if (play->csCtx.frames >= 400) { + if (play->csCtx.curFrame >= 400) { if (limbIndex == YOUNG_GANONDORF_LIMB_LEFT_HAND) { *dList = gYoungGanondorfOpenLeftHandDL; } } } else { - if (play->csCtx.frames >= 1510 && play->csCtx.frames <= 1650) { + if ((play->csCtx.curFrame >= 1510) && (play->csCtx.curFrame <= 1650)) { if (limbIndex == YOUNG_GANONDORF_LIMB_LEFT_HAND) { *dList = gYoungGanondorfOpenLeftHandDL; } @@ -533,22 +533,24 @@ void EnViewer_DrawGanondorf(EnViewer* this, PlayState* play) { s16 type; OPEN_DISPS(play->state.gfxCtx, "../z_en_viewer.c", 1405); + type = this->actor.params >> 8; + if (type == ENVIEWER_TYPE_3_GANONDORF || type == ENVIEWER_TYPE_5_GANONDORF || type == ENVIEWER_TYPE_7_GANONDORF || type == ENVIEWER_TYPE_8_GANONDORF) { if (gSaveContext.sceneLayer != 4) { frames = 149; } - if (frames + 1127 >= play->csCtx.frames) { + if (frames + 1127 >= play->csCtx.curFrame) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gYoungGanondorfEyeOpenTex)); gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gYoungGanondorfEyeOpenTex)); - } else if (frames + 1128 >= play->csCtx.frames) { + } else if (frames + 1128 >= play->csCtx.curFrame) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gYoungGanondorfEyeHalfTex)); gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gYoungGanondorfEyeHalfTex)); - } else if (frames + 1129 >= play->csCtx.frames) { + } else if (frames + 1129 >= play->csCtx.curFrame) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gYoungGanondorfEyeClosedTex)); gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gYoungGanondorfEyeClosedTex)); @@ -570,7 +572,7 @@ void EnViewer_DrawGanondorf(EnViewer* this, PlayState* play) { EnViewer_UpdateGanondorfCape(play, this); } else if (type == ENVIEWER_TYPE_3_GANONDORF || type == ENVIEWER_TYPE_5_GANONDORF || type == ENVIEWER_TYPE_7_GANONDORF || type == ENVIEWER_TYPE_8_GANONDORF) { - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[1] != NULL)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[1] != NULL)) { SkelAnime_DrawFlexOpa(play, this->skin.skelAnime.skeleton, this->skin.skelAnime.jointTable, this->skin.skelAnime.dListCount, NULL, EnViewer_GanondorfPostLimbDrawUpdateCapeVec, this); @@ -625,22 +627,22 @@ void EnViewer_ZeldaPostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec void EnViewer_DrawZelda(EnViewer* this, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_en_viewer.c", 1583); if (play->sceneId == SCENE_HYRULE_FIELD) { - if (play->csCtx.frames < 771) { + if (play->csCtx.curFrame < 771) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeInTex)); gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeOutTex)); - } else if (play->csCtx.frames < 772) { + } else if (play->csCtx.curFrame < 772) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeBlinkTex)); gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeBlinkTex)); - } else if (play->csCtx.frames < 773) { + } else if (play->csCtx.curFrame < 773) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeShutTex)); gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeShutTex)); - } else if (play->csCtx.frames < 791) { + } else if (play->csCtx.curFrame < 791) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeWideTex)); gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeWideTex)); - } else if (play->csCtx.frames < 792) { + } else if (play->csCtx.curFrame < 792) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeBlinkTex)); gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeBlinkTex)); - } else if (play->csCtx.frames < 793) { + } else if (play->csCtx.curFrame < 793) { gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeShutTex)); gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gChildZeldaEyeShutTex)); } else { @@ -651,9 +653,9 @@ void EnViewer_DrawZelda(EnViewer* this, PlayState* play) { if (gSaveContext.sceneLayer == 6) { gSPSegment(POLY_OPA_DISP++, 0x0A, SEGMENTED_TO_VIRTUAL(gChildZeldaMouthSurprisedTex)); } else { - if (play->csCtx.frames < 758) { + if (play->csCtx.curFrame < 758) { gSPSegment(POLY_OPA_DISP++, 0x0A, SEGMENTED_TO_VIRTUAL(gChildZeldaMouthWorriedTex)); - } else if (play->csCtx.frames < 848) { + } else if (play->csCtx.curFrame < 848) { gSPSegment(POLY_OPA_DISP++, 0x0A, SEGMENTED_TO_VIRTUAL(gChildZeldaMouthSurprisedTex)); } else { gSPSegment(POLY_OPA_DISP++, 0x0A, SEGMENTED_TO_VIRTUAL(gChildZeldaMouthWorriedTex)); @@ -704,11 +706,11 @@ void EnViewer_Draw(Actor* thisx, PlayState* play) { if (this->isVisible) { type = this->actor.params >> 8; if (type <= ENVIEWER_TYPE_2_ZELDA) { // zelda's horse, impa and zelda - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[0] != NULL) { + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[0] != NULL) { Gfx_SetupDL_25Opa(play->state.gfxCtx); sDrawFuncs[this->drawFuncIndex](this, play); } - } else if ((play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[1] != NULL) || + } else if ((play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[1] != NULL) || type == ENVIEWER_TYPE_9_GANONDORF) { Gfx_SetupDL_25Opa(play->state.gfxCtx); sDrawFuncs[this->drawFuncIndex](this, play); @@ -724,8 +726,8 @@ void EnViewer_UpdatePosition(EnViewer* this, PlayState* play) { s16 type = this->actor.params >> 8; if (type <= ENVIEWER_TYPE_2_ZELDA) { // zelda's horse, impa and zelda - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[0] != NULL && - play->csCtx.frames < play->csCtx.npcActions[0]->endFrame) { + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[0] != NULL && + play->csCtx.curFrame < play->csCtx.actorCues[0]->endFrame) { if (type == ENVIEWER_TYPE_0_HORSE_ZELDA) { if (!sHorseSfxPlayed) { sHorseSfxPlayed = true; @@ -735,34 +737,34 @@ void EnViewer_UpdatePosition(EnViewer* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EV_HORSE_RUN_LEVEL - SFX_FLAG); } - startPos.x = play->csCtx.npcActions[0]->startPos.x; - startPos.y = play->csCtx.npcActions[0]->startPos.y; - startPos.z = play->csCtx.npcActions[0]->startPos.z; - endPos.x = play->csCtx.npcActions[0]->endPos.x; - endPos.y = play->csCtx.npcActions[0]->endPos.y; - endPos.z = play->csCtx.npcActions[0]->endPos.z; - lerpFactor = Environment_LerpWeight(play->csCtx.npcActions[0]->endFrame, - play->csCtx.npcActions[0]->startFrame, play->csCtx.frames); + startPos.x = play->csCtx.actorCues[0]->startPos.x; + startPos.y = play->csCtx.actorCues[0]->startPos.y; + startPos.z = play->csCtx.actorCues[0]->startPos.z; + endPos.x = play->csCtx.actorCues[0]->endPos.x; + endPos.y = play->csCtx.actorCues[0]->endPos.y; + endPos.z = play->csCtx.actorCues[0]->endPos.z; + lerpFactor = Environment_LerpWeight(play->csCtx.actorCues[0]->endFrame, + play->csCtx.actorCues[0]->startFrame, play->csCtx.curFrame); this->actor.world.pos.x = (endPos.x - startPos.x) * lerpFactor + startPos.x; this->actor.world.pos.y = (endPos.y - startPos.y) * lerpFactor + startPos.y; this->actor.world.pos.z = (endPos.z - startPos.z) * lerpFactor + startPos.z; } } else { // ganondorf and ganondorf's horse - if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[1] != NULL && - play->csCtx.frames < play->csCtx.npcActions[1]->endFrame) { - startPos.x = play->csCtx.npcActions[1]->startPos.x; - startPos.y = play->csCtx.npcActions[1]->startPos.y; - startPos.z = play->csCtx.npcActions[1]->startPos.z; - endPos.x = play->csCtx.npcActions[1]->endPos.x; - endPos.y = play->csCtx.npcActions[1]->endPos.y; - endPos.z = play->csCtx.npcActions[1]->endPos.z; - lerpFactor = Environment_LerpWeight(play->csCtx.npcActions[1]->endFrame, - play->csCtx.npcActions[1]->startFrame, play->csCtx.frames); + if (play->csCtx.state != CS_STATE_IDLE && play->csCtx.actorCues[1] != NULL && + play->csCtx.curFrame < play->csCtx.actorCues[1]->endFrame) { + startPos.x = play->csCtx.actorCues[1]->startPos.x; + startPos.y = play->csCtx.actorCues[1]->startPos.y; + startPos.z = play->csCtx.actorCues[1]->startPos.z; + endPos.x = play->csCtx.actorCues[1]->endPos.x; + endPos.y = play->csCtx.actorCues[1]->endPos.y; + endPos.z = play->csCtx.actorCues[1]->endPos.z; + lerpFactor = Environment_LerpWeight(play->csCtx.actorCues[1]->endFrame, + play->csCtx.actorCues[1]->startFrame, play->csCtx.curFrame); this->actor.world.pos.x = (endPos.x - startPos.x) * lerpFactor + startPos.x; this->actor.world.pos.y = (endPos.y - startPos.y) * lerpFactor + startPos.y; this->actor.world.pos.z = (endPos.z - startPos.z) * lerpFactor + startPos.z; - if (play->csCtx.npcActions[1]->action == 12) { + if (play->csCtx.actorCues[1]->id == 12) { s16 yaw = Math_Vec3f_Yaw(&startPos, &endPos); Math_SmoothStepToS(&this->actor.world.rot.y, yaw, 0xA, 0x3E8, 1); @@ -770,12 +772,12 @@ void EnViewer_UpdatePosition(EnViewer* this, PlayState* play) { } if (type == ENVIEWER_TYPE_9_GANONDORF) { - this->actor.world.rot.x = play->csCtx.npcActions[1]->urot.x; - this->actor.world.rot.y = play->csCtx.npcActions[1]->urot.y; - this->actor.world.rot.z = play->csCtx.npcActions[1]->urot.z; - this->actor.shape.rot.x = play->csCtx.npcActions[1]->urot.x; - this->actor.shape.rot.y = play->csCtx.npcActions[1]->urot.y; - this->actor.shape.rot.z = play->csCtx.npcActions[1]->urot.z; + this->actor.world.rot.x = play->csCtx.actorCues[1]->rot.x; + this->actor.world.rot.y = play->csCtx.actorCues[1]->rot.y; + this->actor.world.rot.z = play->csCtx.actorCues[1]->rot.z; + this->actor.shape.rot.x = play->csCtx.actorCues[1]->rot.x; + this->actor.shape.rot.y = play->csCtx.actorCues[1]->rot.y; + this->actor.shape.rot.z = play->csCtx.actorCues[1]->rot.z; } } if (type == ENVIEWER_TYPE_5_GANONDORF) { diff --git a/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/src/overlays/actors/ovl_En_Vm/z_en_vm.c index 14678d1abc..c04e596f7a 100644 --- a/src/overlays/actors/ovl_En_Vm/z_en_vm.c +++ b/src/overlays/actors/ovl_En_Vm/z_en_vm.c @@ -362,7 +362,7 @@ void EnVm_SetupDie(EnVm* this) { this->actor.world.pos.y += 5000.0f * this->actor.scale.y; this->actor.velocity.y = 8.0f; this->actor.gravity = -0.5f; - this->actor.speedXZ = Rand_ZeroOne() + 1.0f; + this->actor.speed = Rand_ZeroOne() + 1.0f; this->actor.world.rot.y = Rand_CenteredFloat(65535.0f); EnVm_SetupAction(this, EnVm_Die); } diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c index 42f6365fdd..bf243dbdb9 100644 --- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c +++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c @@ -196,20 +196,20 @@ void EnWallmas_SetupStand(EnWallmas* this) { void EnWallmas_SetupWalk(EnWallmas* this) { Animation_PlayOnceSetSpeed(&this->skelAnime, &gWallmasterWalkAnim, 3.0f); this->actionFunc = EnWallmas_Walk; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; } void EnWallmas_SetupJumpToCeiling(EnWallmas* this) { Animation_PlayOnce(&this->skelAnime, &gWallmasterStopWalkAnim); this->actionFunc = EnWallmas_JumpToCeiling; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } void EnWallmas_SetupReturnToCeiling(EnWallmas* this) { AnimationHeader* objSegFrameCount = &gWallmasterJumpAnim; AnimationHeader* objSegChangee = &gWallmasterJumpAnim; this->timer = 0; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Animation_Change(&this->skelAnime, objSegChangee, 3.0f, 0.0f, Animation_GetLastFrame(objSegFrameCount), ANIMMODE_ONCE, -3.0f); @@ -227,13 +227,13 @@ void EnWallmas_SetupTakeDamage(EnWallmas* this) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 255, COLORFILTER_BUFFLAG_OPA, 20); this->actionFunc = EnWallmas_TakeDamage; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actor.velocity.y = 10.0f; } void EnWallmas_SetupCooldown(EnWallmas* this) { Animation_PlayOnce(&this->skelAnime, &gWallmasterRecoverFromDamageAnim); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; this->actionFunc = EnWallmas_Cooldown; @@ -241,7 +241,7 @@ void EnWallmas_SetupCooldown(EnWallmas* this) { void EnWallmas_SetupDie(EnWallmas* this, PlayState* play) { static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f }; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; EffectSsDeadDb_Spawn(play, &this->actor.world.pos, &zeroVec, &zeroVec, 250, -10, 255, 255, 255, 255, 0, 0, 255, 1, @@ -255,7 +255,7 @@ void EnWallmas_SetupTakePlayer(EnWallmas* this, PlayState* play) { Animation_MorphToPlayOnce(&this->skelAnime, &gWallmasterHoverAnim, -5.0f); this->timer = -0x1E; this->actionFunc = EnWallmas_TakePlayer; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->yTarget = this->actor.yDistToPlayer; @@ -277,7 +277,7 @@ void EnWallmas_ProximityOrSwitchInit(EnWallmas* this) { void EnWallmas_SetupStun(EnWallmas* this) { Animation_Change(&this->skelAnime, &gWallmasterJumpAnim, 1.5f, 0, 20.0f, ANIMMODE_ONCE, -3.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (this->actor.colChkInfo.damageEffect == 4) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_GRAY, 255, COLORFILTER_BUFFLAG_OPA, 80); } else { @@ -399,7 +399,7 @@ void EnWallmas_TakeDamage(EnWallmas* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_DODO_M_GND); } - Math_StepToF(&this->actor.speedXZ, 0.0f, 0.2f); + Math_StepToF(&this->actor.speed, 0.0f, 0.2f); } void EnWallmas_Cooldown(EnWallmas* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c index 59aab07394..5478885ad2 100644 --- a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c +++ b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c @@ -124,7 +124,7 @@ void func_80B32384(EnWeiyer* this) { this->unk_27C = (cosf(-M_PI / 8) * 3.0f) + this->actor.world.pos.y; Animation_MorphToLoop(&this->skelAnime, &gStingerHitAnim, -5.0f); this->unk_194 = 30; - this->actor.speedXZ = CLAMP_MAX(this->actor.speedXZ, 2.5f); + this->actor.speed = CLAMP_MAX(this->actor.speed, 2.5f); this->collider.base.atFlags &= ~AT_ON; this->unk_280 = this->actor.floorHeight; this->actionFunc = func_80B328E8; @@ -134,7 +134,7 @@ void func_80B32434(EnWeiyer* this) { Animation_MorphToLoop(&this->skelAnime, &gStingerHitAnim, -5.0f); this->collider.base.atFlags |= AT_ON; this->unk_194 = 0; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actionFunc = func_80B32C2C; } @@ -156,7 +156,7 @@ void func_80B32538(EnWeiyer* this) { this->unk_194 = 200; this->unk_196 = this->actor.yawTowardsPlayer + 0x8000; this->unk_27C = this->actor.world.pos.y; - this->actor.speedXZ = CLAMP_MAX(this->actor.speedXZ, 4.0f); + this->actor.speed = CLAMP_MAX(this->actor.speed, 4.0f); this->collider.base.atFlags &= ~AT_ON; this->skelAnime.playSpeed = 1.0f; this->actionFunc = func_80B33018; @@ -169,7 +169,7 @@ void func_80B325A0(EnWeiyer* this) { this->collider.base.acFlags &= ~AC_ON; this->actor.gravity = 0.0f; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA, 40); this->collider.dim.height = sCylinderInit.dim.height; this->actionFunc = func_80B331CC; @@ -178,7 +178,7 @@ void func_80B325A0(EnWeiyer* this) { void func_80B32660(EnWeiyer* this) { Animation_Change(&this->skelAnime, &gStingerPopOutAnim, 2.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -8.0f); this->unk_194 = 80; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actor.gravity = -1.0f; this->collider.dim.height = sCylinderInit.dim.height + 15; @@ -194,13 +194,13 @@ void func_80B32724(EnWeiyer* this) { Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_RED, 200, COLORFILTER_BUFFLAG_OPA, 40); this->collider.base.atFlags &= ~AT_ON; this->collider.base.acFlags &= ~AC_ON; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; this->actionFunc = func_80B332B4; } void func_80B327B0(EnWeiyer* this) { this->actor.colorFilterParams |= 0x2000; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.velocity.y = 0.0f; this->actionFunc = func_80B33338; } @@ -208,7 +208,7 @@ void func_80B327B0(EnWeiyer* this) { void func_80B327D8(EnWeiyer* this) { this->actor.shape.rot.x = -0x2000; this->unk_194 = -1; - this->actor.speedXZ = 5.0f; + this->actor.speed = 5.0f; this->actionFunc = func_80B3349C; } @@ -243,9 +243,9 @@ void func_80B328E8(EnWeiyer* this, PlayState* play) { this->actor.world.pos.y = this->unk_27C - cosf((curFrame - 5.0f) * (M_PI / 40)) * 3.0f; if (curFrame <= 45.0f) { - Math_StepToF(&this->actor.speedXZ, 1.0f, 0.03f); + Math_StepToF(&this->actor.speed, 1.0f, 0.03f); } else { - Math_StepToF(&this->actor.speedXZ, 1.3f, 0.03f); + Math_StepToF(&this->actor.speed, 1.3f, 0.03f); } if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { @@ -330,7 +330,7 @@ void func_80B32D30(EnWeiyer* this, PlayState* play) { } Math_ScaledStepToS(&this->actor.shape.rot.x, 0, 0x800); - Math_StepToF(&this->actor.speedXZ, 0.0f, 1.0f); + Math_StepToF(&this->actor.speed, 0.0f, 1.0f); if (this->unk_194 != 0) { this->unk_194--; @@ -368,9 +368,9 @@ void func_80B32E34(EnWeiyer* this, PlayState* play) { func_80B32538(this); } else { if (Actor_IsFacingPlayer(&this->actor, 0x2800)) { - Math_StepToF(&this->actor.speedXZ, 4.0f, 0.2f); + Math_StepToF(&this->actor.speed, 4.0f, 0.2f); } else { - Math_StepToF(&this->actor.speedXZ, 1.3f, 0.2f); + Math_StepToF(&this->actor.speed, 1.3f, 0.2f); } if (this->actor.home.pos.y < this->actor.world.pos.y) { @@ -406,9 +406,9 @@ void func_80B33018(EnWeiyer* this, PlayState* play) { this->actor.world.pos.y = this->unk_27C - cosf((curFrame - 5.0f) * (M_PI / 40)) * 3.0f; if (curFrame <= 45.0f) { - Math_StepToF(&this->actor.speedXZ, 1.0f, 0.03f); + Math_StepToF(&this->actor.speed, 1.0f, 0.03f); } else { - Math_StepToF(&this->actor.speedXZ, 1.3f, 0.03f); + Math_StepToF(&this->actor.speed, 1.3f, 0.03f); } if (this->unk_194 != 0) { diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c index d76f519501..d24334f3fc 100644 --- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c +++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c @@ -412,7 +412,7 @@ void EnWf_SetupWait(EnWf* this) { Animation_MorphToLoop(&this->skelAnime, &gWolfosWaitingAnim, -4.0f); this->action = WOLFOS_ACTION_WAIT; this->actionTimer = (Rand_ZeroOne() * 10.0f) + 2.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; EnWf_SetupAction(this, EnWf_Wait); } @@ -507,14 +507,14 @@ void EnWf_RunAtPlayer(EnWf* this, PlayState* play) { } if (this->actor.xzDistToPlayer <= (50.0f + baseRange)) { - Math_SmoothStepToF(&this->actor.speedXZ, -8.0f, 1.0f, 1.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, -8.0f, 1.0f, 1.5f, 0.0f); } else if ((65.0f + baseRange) < this->actor.xzDistToPlayer) { - Math_SmoothStepToF(&this->actor.speedXZ, 8.0f, 1.0f, 1.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 8.0f, 1.0f, 1.5f, 0.0f); } else { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 6.65f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 6.65f, 0.0f); } - this->skelAnime.playSpeed = this->actor.speedXZ * 0.175f; + this->skelAnime.playSpeed = this->actor.speed * 0.175f; playerFacingAngleDiff = player->actor.shape.rot.y - this->actor.shape.rot.y; playerFacingAngleDiff = ABS(playerFacingAngleDiff); @@ -618,7 +618,7 @@ void EnWf_SetupRunAroundPlayer(EnWf* this) { this->runAngle = -16000; } - this->skelAnime.playSpeed = this->actor.speedXZ = 6.0f; + this->skelAnime.playSpeed = this->actor.speed = 6.0f; this->skelAnime.playSpeed *= 0.175f; this->actor.world.rot.y = this->actor.shape.rot.y; this->actionTimer = (Rand_ZeroOne() * 30.0f) + 30.0f; @@ -646,7 +646,7 @@ void EnWf_RunAroundPlayer(EnWf* this, PlayState* play) { // Actor_TestFloorInDirection is useless here (see comment below) if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || - !Actor_TestFloorInDirection(&this->actor, play, this->actor.speedXZ, this->actor.shape.rot.y)) { + !Actor_TestFloorInDirection(&this->actor, play, this->actor.speed, this->actor.shape.rot.y)) { angle2 = (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) ? (this->actor.wallYaw - this->actor.yawTowardsPlayer) - this->runAngle : 0; @@ -675,8 +675,8 @@ void EnWf_RunAroundPlayer(EnWf* this, PlayState* play) { this->actor.world.pos.z += Math_CosS(this->actor.shape.rot.y) * this->runSpeed; } - if (ABS(this->runSpeed) < ABS(this->actor.speedXZ)) { - this->skelAnime.playSpeed = this->actor.speedXZ * 0.175f; + if (ABS(this->runSpeed) < ABS(this->actor.speed)) { + this->skelAnime.playSpeed = this->actor.speed * 0.175f; } else { this->skelAnime.playSpeed = this->runSpeed * 0.175f; } @@ -722,7 +722,7 @@ void EnWf_SetupSlash(EnWf* this) { this->unk_2FA = 0; // Set and not used this->actionTimer = 7; this->skelAnime.endFrame = 20.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnWf_SetupAction(this, EnWf_Slash); } @@ -735,7 +735,7 @@ void EnWf_Slash(EnWf* this, PlayState* play) { shapeAngleDiff = ABS(shapeAngleDiff); yawAngleDiff = ABS(yawAngleDiff); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if (((curFrame >= 9) && (curFrame <= 12)) || ((curFrame >= 17) && (curFrame <= 19))) { if (this->slashStatus == 0) { @@ -839,7 +839,7 @@ void EnWf_RecoilFromBlockedSlash(EnWf* this, PlayState* play) { void EnWf_SetupBackflipAway(EnWf* this) { Animation_MorphToPlayOnce(&this->skelAnime, &gWolfosBackflippingAnim, -3.0f); - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer; this->actionTimer = 0; this->unk_300 = true; @@ -866,7 +866,7 @@ void EnWf_BackflipAway(EnWf* this, PlayState* play) { void EnWf_SetupStunned(EnWf* this) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_JR_FREEZE); @@ -877,12 +877,12 @@ void EnWf_SetupStunned(EnWf* this) { void EnWf_Stunned(EnWf* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 0.05f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 0.05f; } this->unk_300 = false; @@ -902,7 +902,7 @@ void EnWf_SetupDamaged(EnWf* this) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->unk_300 = false; - this->actor.speedXZ = -4.0f; + this->actor.speed = -4.0f; } else { this->unk_300 = true; } @@ -918,12 +918,12 @@ void EnWf_Damaged(EnWf* this, PlayState* play) { s16 angleToWall; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 0.05f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 0.05f; } this->unk_300 = false; @@ -962,7 +962,7 @@ void EnWf_SetupSomersaultAndAttack(EnWf* this) { this->actionTimer = 0; this->unk_300 = false; this->action = WOLFOS_ACTION_TURN_TOWARDS_PLAYER; - this->actor.speedXZ = 6.5f; + this->actor.speed = 6.5f; this->actor.velocity.y = 15.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_STAL_JUMP); this->actor.world.rot.y = this->actor.shape.rot.y; @@ -982,7 +982,7 @@ void EnWf_SomersaultAndAttack(EnWf* this, PlayState* play) { (this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH))) { this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; this->actor.shape.rot.x = 0; - this->actor.speedXZ = this->actor.velocity.y = 0.0f; + this->actor.speed = this->actor.velocity.y = 0.0f; this->actor.world.pos.y = this->actor.floorHeight; if (!Actor_OtherIsTargeted(play, &this->actor)) { @@ -1000,7 +1000,7 @@ void EnWf_SetupBlocking(EnWf* this) { this->slashStatus = -1; } - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->action = WOLFOS_ACTION_BLOCKING; this->actionTimer = 10; @@ -1078,7 +1078,7 @@ void EnWf_SetupSidestep(EnWf* this, PlayState* play) { this->runAngle = -16000; } - this->skelAnime.playSpeed = this->actor.speedXZ = 6.0f; + this->skelAnime.playSpeed = this->actor.speed = 6.0f; this->skelAnime.playSpeed *= 0.175f; this->actor.world.rot.y = this->actor.shape.rot.y; this->runSpeed = 0.0f; @@ -1100,7 +1100,7 @@ void EnWf_Sidestep(EnWf* this, PlayState* play) { // Actor_TestFloorInDirection is useless here (see comment below) if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || - !Actor_TestFloorInDirection(&this->actor, play, this->actor.speedXZ, this->actor.shape.rot.y)) { + !Actor_TestFloorInDirection(&this->actor, play, this->actor.speed, this->actor.shape.rot.y)) { s16 angle = (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) ? (this->actor.wallYaw - this->actor.yawTowardsPlayer) - this->runAngle : 0; @@ -1131,8 +1131,8 @@ void EnWf_Sidestep(EnWf* this, PlayState* play) { this->actor.world.pos.z += Math_CosS(this->actor.shape.rot.y) * this->runSpeed; } - if (ABS(this->runSpeed) < ABS(this->actor.speedXZ)) { - this->skelAnime.playSpeed = this->actor.speedXZ * 0.175f; + if (ABS(this->runSpeed) < ABS(this->actor.speed)) { + this->skelAnime.playSpeed = this->actor.speed * 0.175f; } else { this->skelAnime.playSpeed = this->runSpeed * 0.175f; } @@ -1185,7 +1185,7 @@ void EnWf_SetupDie(EnWf* this) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { this->unk_300 = false; - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; } else { this->unk_300 = true; } @@ -1199,11 +1199,11 @@ void EnWf_SetupDie(EnWf* this) { void EnWf_Die(EnWf* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); this->unk_300 = false; } @@ -1485,7 +1485,7 @@ s32 EnWf_DodgeRanged(PlayState* play, EnWf* this) { this->actor.world.rot.y = this->actor.shape.rot.y + 0x3FFF; if ((ABS(angleToFacing) < 0x2000) || (ABS(angleToFacing) > 0x5FFF)) { EnWf_SetupSidestep(this, play); - this->actor.speedXZ *= 2.0f; + this->actor.speed *= 2.0f; } else if (ABS(angleToFacing) < 0x5FFF) { EnWf_SetupBackflipAway(this); } diff --git a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c index 20ece43a95..e57923b523 100644 --- a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c +++ b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c @@ -384,7 +384,7 @@ void EnWood02_Update(Actor* thisx, PlayState* play2) { if (((player->rideActor == NULL) && (sqrt(this->actor.xyzDistToPlayerSq) < 20.0) && (player->linearVelocity != 0.0f)) || ((player->rideActor != NULL) && (sqrt(this->actor.xyzDistToPlayerSq) < 60.0) && - (player->rideActor->speedXZ != 0.0f))) { + (player->rideActor->speed != 0.0f))) { if ((this->unk_14C >= 0) && (this->unk_14C < 0x64)) { Item_DropCollectibleRandom(play, &this->actor, &this->actor.world.pos, ((this->unk_14C << 4) | 0x8000)); diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 52bfeda40b..7397970b63 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -117,69 +117,75 @@ s32 EnXc_AnimIsFinished(EnXc* this) { return SkelAnime_Update(&this->skelAnime); } -CsCmdActorAction* EnXc_GetCsCmd(PlayState* play, s32 npcActionIdx) { - CsCmdActorAction* action = NULL; +CsCmdActorCue* EnXc_GetCue(PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = NULL; if (play->csCtx.state != 0) { - action = play->csCtx.npcActions[npcActionIdx]; + cue = play->csCtx.actorCues[cueChannel]; } - return action; + return cue; } -s32 EnXc_CompareCsAction(EnXc* this, PlayState* play, u16 action, s32 npcActionIdx) { - CsCmdActorAction* csCmdActorAction = EnXc_GetCsCmd(play, npcActionIdx); +s32 EnXc_CheckForCue(EnXc* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = EnXc_GetCue(play, cueChannel); - if (csCmdActorAction != NULL && csCmdActorAction->action == action) { + if (cue != NULL && cue->id == cueId) { return true; } + return false; } -s32 EnXc_CsActionsAreNotEqual(EnXc* this, PlayState* play, u16 action, s32 npcActionIdx) { - CsCmdActorAction* csCmdNPCAction = EnXc_GetCsCmd(play, npcActionIdx); +s32 EnXc_CheckForNoCue(EnXc* this, PlayState* play, u16 cueId, s32 cueChannel) { + CsCmdActorCue* cue = EnXc_GetCue(play, cueChannel); - if (csCmdNPCAction && csCmdNPCAction->action != action) { + if (cue && cue->id != cueId) { return true; } + return false; } -void func_80B3C588(EnXc* this, PlayState* play, u32 npcActionIdx) { - CsCmdActorAction* csCmdNPCAction = EnXc_GetCsCmd(play, npcActionIdx); +void func_80B3C588(EnXc* this, PlayState* play, u32 cueChannel) { + CsCmdActorCue* cue = EnXc_GetCue(play, cueChannel); Actor* thisx = &this->actor; - if (csCmdNPCAction != NULL) { - thisx->world.pos.x = csCmdNPCAction->startPos.x; - thisx->world.pos.y = csCmdNPCAction->startPos.y; - thisx->world.pos.z = csCmdNPCAction->startPos.z; - thisx->world.rot.x = thisx->shape.rot.x = csCmdNPCAction->rot.x; - thisx->world.rot.y = thisx->shape.rot.y = csCmdNPCAction->rot.y; - thisx->world.rot.z = thisx->shape.rot.z = csCmdNPCAction->rot.z; + if (cue != NULL) { + thisx->world.pos.x = cue->startPos.x; + thisx->world.pos.y = cue->startPos.y; + thisx->world.pos.z = cue->startPos.z; + + thisx->world.rot.x = thisx->shape.rot.x = cue->rot.x; + thisx->world.rot.y = thisx->shape.rot.y = cue->rot.y; + thisx->world.rot.z = thisx->shape.rot.z = cue->rot.z; } } -void func_80B3C620(EnXc* this, PlayState* play, s32 npcActionIdx) { - CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, npcActionIdx); - Vec3f* xcPos = &this->actor.world.pos; +void func_80B3C620(EnXc* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = EnXc_GetCue(play, cueChannel); + Vec3f* worldPos = &this->actor.world.pos; f32 startX; f32 startY; f32 startZ; f32 endX; f32 endY; f32 endZ; - f32 unk; + f32 lerp; - if (npcAction != NULL) { - unk = Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, play->csCtx.frames, 0, 0); - startX = npcAction->startPos.x; - startY = npcAction->startPos.y; - startZ = npcAction->startPos.z; - endX = npcAction->endPos.x; - endY = npcAction->endPos.y; - endZ = npcAction->endPos.z; - xcPos->x = ((endX - startX) * unk) + startX; - xcPos->y = ((endY - startY) * unk) + startY; - xcPos->z = ((endZ - startZ) * unk) + startZ; + if (cue != NULL) { + lerp = Environment_LerpWeightAccelDecel(cue->endFrame, cue->startFrame, play->csCtx.curFrame, 0, 0); + + startX = cue->startPos.x; + startY = cue->startPos.y; + startZ = cue->startPos.z; + + endX = cue->endPos.x; + endY = cue->endPos.y; + endZ = cue->endPos.z; + + worldPos->x = ((endX - startX) * lerp) + startX; + worldPos->y = ((endY - startY) * lerp) + startY; + worldPos->z = ((endZ - startZ) * lerp) + startZ; } } @@ -287,7 +293,7 @@ s32 EnXc_MinuetCS(EnXc* this, PlayState* play) { if (z < -2225.0f) { if (!Play_InCsMode(play)) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gMinuetCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gMinuetCs); gSaveContext.cutsceneTrigger = 1; SET_EVENTCHKINF(EVENTCHKINF_50); Item_Give(play, ITEM_SONG_MINUET); @@ -318,7 +324,7 @@ s32 EnXc_BoleroCS(EnXc* this, PlayState* play) { if ((posRot->pos.x > -784.0f) && (posRot->pos.x < -584.0f) && (posRot->pos.y > 447.0f) && (posRot->pos.y < 647.0f) && (posRot->pos.z > -446.0f) && (posRot->pos.z < -246.0f) && !Play_InCsMode(play)) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gDeathMountainCraterBoleroCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gDeathMountainCraterBoleroCs); gSaveContext.cutsceneTrigger = 1; SET_EVENTCHKINF(EVENTCHKINF_51); Item_Give(play, ITEM_SONG_BOLERO); @@ -348,7 +354,7 @@ s32 EnXc_SerenadeCS(EnXc* this, PlayState* play) { if (CHECK_OWNED_EQUIP(EQUIP_TYPE_BOOTS, EQUIP_INV_BOOTS_IRON) && !GET_EVENTCHKINF(EVENTCHKINF_52) && !(stateFlags & PLAYER_STATE1_29) && !Play_InCsMode(play)) { - Cutscene_SetSegment(play, gIceCavernSerenadeCs); + Cutscene_SetScript(play, gIceCavernSerenadeCs); gSaveContext.cutsceneTrigger = 1; SET_EVENTCHKINF(EVENTCHKINF_52); // Learned Serenade of Water Flag Item_Give(play, ITEM_SONG_SERENADE); @@ -416,7 +422,7 @@ void EnXc_SetColossusAppearSFX(EnXc* this, PlayState* play) { sceneId = play->sceneId; if (sceneId == SCENE_DESERT_COLOSSUS) { CutsceneContext* csCtx = &play->csCtx; - u16 frameCount = csCtx->frames; + u16 frameCount = csCtx->curFrame; f32 wDest[2]; if (frameCount == 119) { @@ -456,7 +462,7 @@ void EnXc_SetColossusWindSFX(PlayState* play) { if (sceneId == SCENE_DESERT_COLOSSUS) { CutsceneContext* csCtx = &play->csCtx; - u16 frameCount = csCtx->frames; + u16 frameCount = csCtx->curFrame; if ((frameCount >= 120) && (frameCount < 164)) { s32 pad; @@ -486,10 +492,10 @@ void EnXc_SpawnFlame(EnXc* this, PlayState* play) { static s32 sFlameSpawned = false; if (!sFlameSpawned) { - CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 0); - f32 xPos = npcAction->startPos.x; - f32 yPos = npcAction->startPos.y; - f32 zPos = npcAction->startPos.z; + CsCmdActorCue* cue = EnXc_GetCue(play, 0); + f32 xPos = cue->startPos.x; + f32 yPos = cue->startPos.y; + f32 zPos = cue->startPos.z; this->flameActor = Actor_Spawn(&play->actorCtx, play, ACTOR_EN_LIGHT, xPos, yPos, zPos, 0, 0, 0, 5); sFlameSpawned = true; @@ -498,14 +504,14 @@ void EnXc_SpawnFlame(EnXc* this, PlayState* play) { void EnXc_SetupFlamePos(EnXc* this, PlayState* play) { Vec3f* attachedPos; - CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 0); + CsCmdActorCue* cue = EnXc_GetCue(play, 0); if (this->flameActor != NULL) { attachedPos = &this->flameActor->world.pos; if (!this) {} - attachedPos->x = npcAction->startPos.x; - attachedPos->y = npcAction->startPos.y; - attachedPos->z = npcAction->startPos.z; + attachedPos->x = cue->startPos.x; + attachedPos->y = cue->startPos.y; + attachedPos->z = cue->startPos.z; } } @@ -523,20 +529,20 @@ void EnXc_InitFlame(EnXc* this, PlayState* play) { s16 sceneId = play->sceneId; if (sceneId == SCENE_DEATH_MOUNTAIN_CRATER) { - CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 0); - if (npcAction != NULL) { - s32 action = npcAction->action; + CsCmdActorCue* cue = EnXc_GetCue(play, 0); + if (cue != NULL) { + s32 nextCueId = cue->id; - if (D_80B41DA8 != action) { - if (action != 1) { + if (D_80B41DA8 != nextCueId) { + if (nextCueId != 1) { EnXc_SpawnFlame(this, play); } - if (action == 1) { + if (nextCueId == 1) { EnXc_DestroyFlame(this); } - D_80B41DA8 = action; + D_80B41DA8 = nextCueId; } EnXc_SetupFlamePos(this, play); @@ -546,11 +552,11 @@ void EnXc_InitFlame(EnXc* this, PlayState* play) { void func_80B3D48C(EnXc* this, PlayState* play) { CutsceneContext* csCtx = &play->csCtx; - CsCmdActorAction* linkAction = csCtx->linkAction; + CsCmdActorCue* playerCue = csCtx->playerCue; s16 yaw; - if (linkAction != NULL) { - yaw = linkAction->urot.y + 0x8000; + if (playerCue != NULL) { + yaw = playerCue->rot.y + 0x8000; } else { Player* player = GET_PLAYER(play); yaw = player->actor.world.rot.y + 0x8000; @@ -561,18 +567,18 @@ void func_80B3D48C(EnXc* this, PlayState* play) { AnimationHeader* EnXc_GetCurrentHarpAnim(PlayState* play, s32 index) { AnimationHeader* animation = &gSheikPlayingHarp5Anim; - CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, index); + CsCmdActorCue* cue = EnXc_GetCue(play, index); - if (npcAction != NULL) { - u16 action = npcAction->action; + if (cue != NULL) { + u16 cueId = cue->id; - if (action == 11) { + if (cueId == 11) { animation = &gSheikPlayingHarp3Anim; - } else if (action == 12) { + } else if (cueId == 12) { animation = &gSheikPlayingHarp2Anim; - } else if (action == 13) { + } else if (cueId == 13) { animation = &gSheikPlayingHarp4Anim; - } else if (action == 23) { + } else if (cueId == 23) { animation = &gSheikPlayingHarpAnim; } else { animation = &gSheikPlayingHarp5Anim; @@ -583,7 +589,7 @@ AnimationHeader* EnXc_GetCurrentHarpAnim(PlayState* play, s32 index) { void EnXc_CalcXZAccel(EnXc* this) { f32 timer = this->timer; - f32* speedXZ = &this->actor.speedXZ; + f32* speedXZ = &this->actor.speed; if (timer < 9.0f) { *speedXZ = 0.0f; @@ -602,7 +608,7 @@ void func_80B3D644(EnXc* this) { void EnXc_CalcXZSpeed(EnXc* this) { f32 timer = this->timer; - f32* speedXZ = &this->actor.speedXZ; + f32* speedXZ = &this->actor.speed; if (timer < 3.0f) { *speedXZ = (((kREG(2) * 0.01f) + 1.2f) / 3.0f) * (3.0f - timer); @@ -635,9 +641,9 @@ void EnXc_SetupFallFromSkyAction(EnXc* this, PlayState* play) { CutsceneContext* csCtx = &play->csCtx; if (csCtx->state != 0) { - CsCmdActorAction* npcAction = csCtx->npcActions[4]; + CsCmdActorCue* cue = csCtx->actorCues[4]; - if (npcAction && npcAction->action == 2) { + if (cue != NULL && cue->id == 2) { s32 pad; Vec3f* pos = &this->actor.world.pos; SkelAnime* skelAnime = &this->skelAnime; @@ -646,9 +652,9 @@ void EnXc_SetupFallFromSkyAction(EnXc* this, PlayState* play) { this->action = SHEIK_ACTION_GRACEFUL_FALL; this->drawMode = SHEIK_DRAW_DEFAULT; - pos->x = npcAction->startPos.x; - pos->y = npcAction->startPos.y; - pos->z = npcAction->startPos.z; + pos->x = cue->startPos.x; + pos->y = cue->startPos.y; + pos->z = cue->startPos.z; func_80B3D48C(this, play); func_80B3C964(this, play); @@ -681,7 +687,7 @@ void EnXc_SetupWalkAction(EnXc* this) { *timer += 1.0f; if (*timer >= 12.0f) { - this->actor.speedXZ = (kREG(2) * 0.01f) + 1.2f; + this->actor.speed = (kREG(2) * 0.01f) + 1.2f; this->action = SHEIK_ACTION_WALK; } } @@ -705,22 +711,25 @@ void EnXc_SetupStoppedAction(EnXc* this) { *timer += 1.0f; if (*timer >= 12.0f) { this->action = SHEIK_ACTION_STOPPED; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } void func_80B3DAF0(EnXc* this, PlayState* play) { - CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 4); - u16 action; + CsCmdActorCue* cue = EnXc_GetCue(play, 4); + u16 cueId; - if (npcAction && - (action = npcAction->action, action == 3 || action == 11 || action == 12 || action == 13 || action == 23)) { - f32 frameCount; + if (cue != NULL) { + cueId = cue->id; - frameCount = Animation_GetLastFrame(&gSheikPullingOutHarpAnim); - Animation_Change(&this->skelAnime, &gSheikPullingOutHarpAnim, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, -4.0f); - this->action = SHEIK_ACTION_7; - this->drawMode = SHEIK_DRAW_PULLING_OUT_HARP; + if (cueId == 3 || cueId == 11 || cueId == 12 || cueId == 13 || cueId == 23) { + f32 frameCount; + + frameCount = Animation_GetLastFrame(&gSheikPullingOutHarpAnim); + Animation_Change(&this->skelAnime, &gSheikPullingOutHarpAnim, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, -4.0f); + this->action = SHEIK_ACTION_7; + this->drawMode = SHEIK_DRAW_PULLING_OUT_HARP; + } } } @@ -757,9 +766,9 @@ void func_80B3DCA8(EnXc* this, PlayState* play) { f32 frameCount; if (play->csCtx.state != 0) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[4]; + CsCmdActorCue* cue = play->csCtx.actorCues[4]; - if (npcAction != NULL && npcAction->action == 8) { + if (cue != NULL && cue->id == 8) { frameCount = Animation_GetLastFrame(&gSheikInitialHarpAnim); Animation_Change(&this->skelAnime, &gSheikInitialHarpAnim, 0.0f, frameCount, frameCount, ANIMMODE_LOOP, -8.0f); @@ -772,7 +781,7 @@ void EnXc_SetupHarpPutawayAction(EnXc* this, PlayState* play) { f32 curFrame; f32 animFrameCount; - if (EnXc_CompareCsAction(this, play, 5, 4)) { + if (EnXc_CheckForCue(this, play, 5, 4)) { curFrame = this->skelAnime.curFrame; animFrameCount = this->skelAnime.endFrame; if (curFrame >= animFrameCount) { @@ -780,7 +789,7 @@ void EnXc_SetupHarpPutawayAction(EnXc* this, PlayState* play) { Animation_GetLastFrame(&gSheikInitialHarpAnim), 0.0f, ANIMMODE_ONCE, 0.0f); this->action = SHEIK_ACTION_PUT_HARP_AWAY; } - } else if (EnXc_CsActionsAreNotEqual(this, play, 8, 4)) { + } else if (EnXc_CheckForNoCue(this, play, 8, 4)) { EnXc_SetupPlayingHarpAction(this, play, true); } } @@ -806,9 +815,9 @@ void func_80B3DE78(EnXc* this, s32 animFinished) { void EnXc_SetupReverseAccel(EnXc* this, PlayState* play) { if (play->csCtx.state != 0) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[4]; + CsCmdActorCue* cue = play->csCtx.actorCues[4]; - if (npcAction != NULL && npcAction->action == 4) { + if (cue != NULL && cue->id == 4) { Animation_Change(&this->skelAnime, &gSheikWalkingAnim, -1.0f, Animation_GetLastFrame(&gSheikWalkingAnim), 0.0f, ANIMMODE_LOOP, -12.0f); this->action = SHEIK_ACTION_REVERSE_ACCEL; @@ -821,7 +830,7 @@ void EnXc_SetupReverseAccel(EnXc* this, PlayState* play) { void EnXc_SetupReverseWalkAction(EnXc* this) { this->timer++; if (this->timer >= 12.0f) { - this->actor.speedXZ = (kREG(2) * 0.01f) + 1.2f; + this->actor.speed = (kREG(2) * 0.01f) + 1.2f; this->action = SHEIK_ACTION_REVERSE_WALK; } } @@ -844,7 +853,7 @@ void EnXc_SetupNutThrow(EnXc* this) { Animation_GetLastFrame(&gSheikThrowingNutAnim), ANIMMODE_ONCE, 0.0f); this->action = SHEIK_ACTION_THROW_NUT; this->timer = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } } @@ -858,9 +867,9 @@ void func_80B3E164(EnXc* this, PlayState* play) { void EnXc_SetupDisappear(EnXc* this, PlayState* play) { if (play->csCtx.state != 0) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[4]; + CsCmdActorCue* cue = play->csCtx.actorCues[4]; - if (npcAction != NULL && npcAction->action == 9) { + if (cue != NULL && cue->id == 9) { s16 sceneId = play->sceneId; // Sheik fades away if end of Bolero CS, kill actor otherwise @@ -1123,18 +1132,18 @@ void func_80B3EC0C(EnXc* this, PlayState* play) { CutsceneContext* csCtx = &play->csCtx; if (csCtx->state != 0) { - CsCmdActorAction* npcAction = csCtx->npcActions[4]; + CsCmdActorCue* cue = csCtx->actorCues[4]; - if ((npcAction != NULL) && (npcAction->action != 1)) { + if ((cue != NULL) && (cue->id != 1)) { PosRot* posRot = &this->actor.world; - Vec3i* startPos = &npcAction->startPos; + Vec3i* startPos = &cue->startPos; ActorShape* shape = &this->actor.shape; posRot->pos.x = startPos->x; posRot->pos.y = startPos->y; posRot->pos.z = startPos->z; - posRot->rot.y = shape->rot.y = npcAction->rot.y; + posRot->rot.y = shape->rot.y = cue->rot.y; this->action = SHEIK_ACTION_22; this->drawMode = SHEIK_DRAW_DEFAULT; @@ -1146,9 +1155,9 @@ void func_80B3EC90(EnXc* this, PlayState* play) { CutsceneContext* csCtx = &play->csCtx; if (csCtx->state != 0) { - CsCmdActorAction* npcAction = csCtx->npcActions[4]; + CsCmdActorCue* cue = csCtx->actorCues[4]; - if (npcAction != NULL && npcAction->action != 6) { + if (cue != NULL && cue->id != 6) { func_80B3C9EC(this); } } @@ -1157,7 +1166,7 @@ void func_80B3EC90(EnXc* this, PlayState* play) { void func_80B3ECD8(EnXc* this) { this->timer++; if (this->timer >= 12.0f) { - this->actor.speedXZ = kREG(2) * 0.01f + 1.2f; + this->actor.speed = kREG(2) * 0.01f + 1.2f; this->action = SHEIK_ACTION_24; } } @@ -1372,14 +1381,14 @@ void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { } void EnXc_LakeHyliaDive(PlayState* play) { - CsCmdActorAction* npcAction = npcAction = EnXc_GetCsCmd(play, 0); + CsCmdActorCue* cue = cue = EnXc_GetCue(play, 0); - if (npcAction != NULL) { + if (cue != NULL) { Vec3f startPos; - startPos.x = npcAction->startPos.x; - startPos.y = npcAction->startPos.y; - startPos.z = npcAction->startPos.z; + startPos.x = cue->startPos.x; + startPos.y = cue->startPos.y; + startPos.z = cue->startPos.z; EffectSsGRipple_Spawn(play, &startPos, 100, 500, 0); EffectSsGRipple_Spawn(play, &startPos, 100, 500, 10); @@ -1391,7 +1400,7 @@ void EnXc_LakeHyliaDive(PlayState* play) { void func_80B3F534(PlayState* play) { CutsceneContext* csCtx = &play->csCtx; - u16 frameCount = csCtx->frames; + u16 frameCount = csCtx->curFrame; if (frameCount == 310) { Actor_Spawn(&play->actorCtx, play, ACTOR_DOOR_WARP1, -1044.0f, -1243.0f, 7458.0f, 0, 0, 0, WARP_DESTINATION); @@ -1400,13 +1409,13 @@ void func_80B3F534(PlayState* play) { void func_80B3F59C(EnXc* this, PlayState* play) { static s32 D_80B41DAC = 1; - CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 0); + CsCmdActorCue* cue = EnXc_GetCue(play, 0); - if (npcAction != NULL) { - s32 action = npcAction->action; + if (cue != NULL) { + s32 nextCueId = cue->id; - if (action != D_80B41DAC) { - switch (action) { + if (nextCueId != D_80B41DAC) { + switch (nextCueId) { case 2: func_80B3F3D8(); break; @@ -1416,7 +1425,7 @@ void func_80B3F59C(EnXc* this, PlayState* play) { default: break; } - D_80B41DAC = action; + D_80B41DAC = nextCueId; } } } @@ -1430,7 +1439,7 @@ void func_80B3F644(EnXc* this) { } void func_80B3F668(EnXc* this, PlayState* play) { - if (EnXc_CompareCsAction(this, play, 4, 4)) { + if (EnXc_CheckForCue(this, play, 4, 4)) { EnXc_ChangeAnimation(this, &gSheikWalkingAnim, ANIMMODE_LOOP, -12.0f, true); this->action = SHEIK_ACTION_48; this->actor.world.rot.y += 0x8000; @@ -1443,14 +1452,14 @@ void func_80B3F6DC(EnXc* this) { } void EnXc_SetupKneelAction(EnXc* this, PlayState* play) { - if (EnXc_CompareCsAction(this, play, 16, 4)) { + if (EnXc_CheckForCue(this, play, 16, 4)) { EnXc_ChangeAnimation(this, &gSheikKneelingAnim, ANIMMODE_LOOP, 0.0f, false); this->action = SHEIK_ACTION_KNEEL; } } void func_80B3F754(EnXc* this, PlayState* play) { - if (EnXc_CompareCsAction(this, play, 22, 4)) { + if (EnXc_CheckForCue(this, play, 22, 4)) { EnXc_ChangeAnimation(this, &gSheikAnim_01A048, ANIMMODE_LOOP, 0.0f, false); this->action = SHEIK_ACTION_51; func_80B3C588(this, play, 4); @@ -1458,7 +1467,7 @@ void func_80B3F754(EnXc* this, PlayState* play) { } void func_80B3F7BC(EnXc* this, PlayState* play) { - if (EnXc_CompareCsAction(this, play, 9, 4)) { + if (EnXc_CheckForCue(this, play, 9, 4)) { this->action = SHEIK_ACTION_52; this->drawMode = SHEIK_DRAW_NOTHING; } @@ -1552,13 +1561,13 @@ void func_80B3FAE0(EnXc* this) { void EnXc_CalcTriforce(Actor* thisx, PlayState* play) { EnXc* this = (EnXc*)thisx; - if (EnXc_CompareCsAction(this, play, 21, 4)) { + if (EnXc_CheckForCue(this, play, 21, 4)) { this->unk_274 = 1; if (this->unk_2AC == 0) { this->unk_2AC = 1; this->unk_2A8 = 1; } - } else if (EnXc_CompareCsAction(this, play, 19, 4)) { + } else if (EnXc_CheckForCue(this, play, 19, 4)) { this->unk_274 = 2; } if (this->unk_274 != 0) { @@ -1603,22 +1612,22 @@ void EnXc_CalcTriforce(Actor* thisx, PlayState* play) { } void func_80B3FF0C(EnXc* this, PlayState* play) { - if (EnXc_CsActionsAreNotEqual(this, play, 1, 4)) { + if (EnXc_CheckForNoCue(this, play, 1, 4)) { CutsceneContext* csCtx = &play->csCtx; if (csCtx->state != 0) { - CsCmdActorAction* npcAction = play->csCtx.npcActions[4]; + CsCmdActorCue* cue = play->csCtx.actorCues[4]; - if (npcAction != NULL) { + if (cue != NULL) { PosRot* posRot = &this->actor.world; ActorShape* shape = &this->actor.shape; - Vec3i* startPos = &npcAction->startPos; + Vec3i* startPos = &cue->startPos; posRot->pos.x = startPos->x; posRot->pos.y = startPos->y; posRot->pos.z = startPos->z; - posRot->rot.y = shape->rot.y = npcAction->rot.y; + posRot->rot.y = shape->rot.y = cue->rot.y; } } @@ -1628,7 +1637,7 @@ void func_80B3FF0C(EnXc* this, PlayState* play) { } void EnXc_SetupShowTriforceAction(EnXc* this, PlayState* play) { - if (EnXc_CompareCsAction(this, play, 10, 4)) { + if (EnXc_CheckForCue(this, play, 10, 4)) { Animation_Change(&this->skelAnime, &gSheikShowingTriforceOnHandAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gSheikShowingTriforceOnHandAnim), ANIMMODE_ONCE, -8.0f); this->action = SHEIK_ACTION_SHOW_TRIFORCE; @@ -1644,7 +1653,7 @@ void EnXc_SetupShowTriforceIdleAction(EnXc* this, s32 animFinished) { } } void func_80B400AC(EnXc* this, PlayState* play) { - if (EnXc_CompareCsAction(this, play, 9, 4)) { + if (EnXc_CheckForCue(this, play, 9, 4)) { Actor_Kill(&this->actor); } } @@ -1758,7 +1767,7 @@ void EnXc_SetThrownAroundSFX(EnXc* this) { } void EnXc_PlayLinkScreamSFX(EnXc* this, PlayState* play) { - if (play->csCtx.frames == 1455) { + if (play->csCtx.curFrame == 1455) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_BONGO_HURL_LINK); } } @@ -1766,9 +1775,9 @@ void EnXc_PlayLinkScreamSFX(EnXc* this, PlayState* play) { void EnXc_SetCrySFX(EnXc* this, PlayState* play) { CutsceneContext* csCtx = &play->csCtx; - if (csCtx->frames == 869) { + if (csCtx->curFrame == 869) { func_80078914(&this->actor.projectedPos, NA_SE_VO_SK_CRY_0); - } else if (csCtx->frames == 939) { + } else if (csCtx->curFrame == 939) { func_80078914(&this->actor.projectedPos, NA_SE_VO_SK_CRY_1); } } @@ -1942,15 +1951,15 @@ void func_80B40E88(EnXc* this) { } s32 EnXc_SetupNocturneState(Actor* thisx, PlayState* play) { - CsCmdActorAction* npcAction = EnXc_GetCsCmd(play, 4); + CsCmdActorCue* cue = EnXc_GetCue(play, 4); - if (npcAction != NULL) { - s32 action = npcAction->action; + if (cue != NULL) { + s32 nextCueId = cue->id; EnXc* this = (EnXc*)thisx; - s32 prevAction = this->unk_26C; + s32 currentCueId = this->unk_26C; - if (action != prevAction) { - switch (action) { + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: func_80B406F8(thisx); break; @@ -1986,7 +1995,7 @@ s32 EnXc_SetupNocturneState(Actor* thisx, PlayState* play) { break; } - this->unk_26C = action; + this->unk_26C = nextCueId; return 1; } } @@ -2142,13 +2151,13 @@ void EnXc_InitTempleOfTime(EnXc* this, PlayState* play) { if (LINK_IS_ADULT) { if (!GET_EVENTCHKINF(EVENTCHKINF_C5)) { SET_EVENTCHKINF(EVENTCHKINF_C5); - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gTempleOfTimeFirstAdultCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gTempleOfTimeFirstAdultCs); gSaveContext.cutsceneTrigger = 1; func_80B3EBF0(this, play); } else if (!GET_EVENTCHKINF(EVENTCHKINF_55) && GET_EVENTCHKINF(EVENTCHKINF_48)) { SET_EVENTCHKINF(EVENTCHKINF_55); Item_Give(play, ITEM_SONG_PRELUDE); - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gTempleOfTimePreludeCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gTempleOfTimePreludeCs); gSaveContext.cutsceneTrigger = 1; this->action = SHEIK_ACTION_30; } else if (!GET_EVENTCHKINF(EVENTCHKINF_55)) { diff --git a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c index 33b2db3e24..eb0d128ce6 100644 --- a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c +++ b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c @@ -90,7 +90,7 @@ void func_80B43AD4(EnYukabyun* this, PlayState* play) { this->actor.shape.rot.y += this->unk_150; if (this->unk_150 >= 0x2000) { this->actor.world.rot.y = this->actor.yawTowardsPlayer; - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; this->actionfunc = func_80B43B6C; } Math_StepToF(&this->actor.world.pos.y, this->actor.home.pos.y + 30.0f, 1.0f); diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c index f9b4c2b9ba..aa228c82e8 100644 --- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c +++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c @@ -46,7 +46,7 @@ void func_80B483E4(EnZf* this, PlayState* play); void EnZf_CircleAroundPlayer(EnZf* this, PlayState* play); void EnZf_SetupDie(EnZf* this); void EnZf_Die(EnZf* this, PlayState* play); -void EnZf_SetupCircleAroundPlayer(EnZf* this, f32 speed); +void EnZf_SetupCircleAroundPlayer(EnZf* this, f32 speedXZ); s32 EnZf_DodgeRangedEngaging(PlayState* play, EnZf* this); s32 EnZf_DodgeRangedWaiting(PlayState* play, EnZf* this); @@ -220,7 +220,7 @@ s32 EnZf_PrimaryFloorCheck(EnZf* this, PlayState* play, f32 dist) { Vec3f curPos; if (dist == 0.0f) { - dist = ((this->actor.speedXZ >= 0.0f) ? 1.0f : -1.0f); + dist = ((this->actor.speed >= 0.0f) ? 1.0f : -1.0f); dist = ((this->actor.params >= ENZF_TYPE_LIZALFOS_MINIBOSS_A) ? dist * 45.0f : dist * 30.0f); } @@ -252,7 +252,7 @@ s16 EnZf_SecondaryFloorCheck(EnZf* this, PlayState* play, f32 dist) { f32 cos; Vec3f curPos; - if ((this->actor.speedXZ != 0.0f) && EnZf_PrimaryFloorCheck(this, play, this->actor.speedXZ)) { + if ((this->actor.speed != 0.0f) && EnZf_PrimaryFloorCheck(this, play, this->actor.speed)) { return true; } @@ -698,7 +698,7 @@ void func_80B45384(EnZf* this) { ANIMMODE_LOOP_INTERP, -4.0f); this->action = ENZF_ACTION_3; this->unk_3F0 = Rand_ZeroOne() * 10.0f + 5.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y; EnZf_SetupAction(this, func_80B4543C); } @@ -768,7 +768,7 @@ void EnZf_SetupApproachPlayer(EnZf* this, PlayState* play) { EnZf_FindNextPlatformTowardsPlayer(&this->actor.world.pos, this->curPlatform, this->homePlatform, play); this->hopAnimIndex = 0; } - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnZf_SetupAction(this, EnZf_ApproachPlayer); } @@ -807,7 +807,7 @@ void EnZf_ApproachPlayer(EnZf* this, PlayState* play) { temp_v1 = this->actor.wallYaw - this->actor.shape.rot.y; temp_v1 = ABS(temp_v1); - if ((this->unk_3F8 && (this->actor.speedXZ > 0.0f)) || + if ((this->unk_3F8 && (this->actor.speed > 0.0f)) || ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) && (temp_v1 >= 0x5C19))) { if ((Actor_WorldDistXZToPoint(&this->actor, &sPlatformPositions[this->nextPlatform]) < sp44) && !EnZf_PrimaryFloorCheck(this, play, 191.9956f)) { @@ -824,7 +824,7 @@ void EnZf_ApproachPlayer(EnZf* this, PlayState* play) { } } else { this->actor.shape.rot.y = this->actor.world.rot.y = this->actor.yawTowardsPlayer; - Math_SmoothStepToF(&this->actor.speedXZ, 8.0f, 1.0f, 1.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 8.0f, 1.0f, 1.5f, 0.0f); } } } @@ -834,12 +834,12 @@ void EnZf_ApproachPlayer(EnZf* this, PlayState* play) { } if (this->actor.xzDistToPlayer <= (70.0f + sp40)) { - Math_SmoothStepToF(&this->actor.speedXZ, -8.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, -8.0f, 1.0f, 0.5f, 0.0f); } else { - Math_SmoothStepToF(&this->actor.speedXZ, 8.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 8.0f, 1.0f, 0.5f, 0.0f); } - this->skelAnime.playSpeed = this->actor.speedXZ * 1.2f; + this->skelAnime.playSpeed = this->actor.speed * 1.2f; temp_v1 = player->actor.shape.rot.y - this->actor.shape.rot.y; temp_v1 = ABS(temp_v1); @@ -924,9 +924,9 @@ void EnZf_SetupJumpForward(EnZf* this) { this->actor.velocity.y = 15.0f; if (this->actor.params >= ENZF_TYPE_LIZALFOS_MINIBOSS_A) { // miniboss - this->actor.speedXZ = 16.0f; + this->actor.speed = 16.0f; } else { - this->actor.speedXZ = 10.0f; + this->actor.speed = 10.0f; } this->action = ENZF_ACTION_JUMP_FORWARD; @@ -939,7 +939,7 @@ void EnZf_JumpForward(EnZf* this, PlayState* play) { this->actor.world.pos.y = this->actor.floorHeight; this->hopAnimIndex = 0; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (SkelAnime_Update(&this->skelAnime)) { @@ -948,7 +948,7 @@ void EnZf_JumpForward(EnZf* this, PlayState* play) { this->unk_3F0 = 10; Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_JUMP); } else { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->hopAnimIndex = 0; EnZf_SetupApproachPlayer(this, play); } @@ -1036,7 +1036,7 @@ void func_80B462E4(EnZf* this, PlayState* play) { Actor_TestFloorInDirection(&this->actor, play, 40.0f, (s16)(this->actor.shape.rot.y + 0x3FFF)) || Actor_TestFloorInDirection(&this->actor, play, -40.0f, (s16)(this->actor.shape.rot.y + 0x3FFF))) { Animation_PlayLoop(&this->skelAnime, &gZfSidesteppingAnim); - this->actor.speedXZ = Rand_CenteredFloat(12.0f); + this->actor.speed = Rand_CenteredFloat(12.0f); this->actor.world.rot.y = this->actor.shape.rot.y; this->unk_3F0 = Rand_ZeroOne() * 10.0f + 20.0f; this->hopAnimIndex = 0; @@ -1066,42 +1066,42 @@ void func_80B463E4(EnZf* this, PlayState* play) { angleBehindPlayer = player->actor.shape.rot.y + 0x8000; if (Math_SinS(angleBehindPlayer - this->actor.shape.rot.y) >= 0.0f) { - this->actor.speedXZ -= 0.25f; - if (this->actor.speedXZ < -8.0f) { - this->actor.speedXZ = -8.0f; + this->actor.speed -= 0.25f; + if (this->actor.speed < -8.0f) { + this->actor.speed = -8.0f; } } else if (Math_SinS(angleBehindPlayer - this->actor.shape.rot.y) < 0.0f) { // Superfluous check - this->actor.speedXZ += 0.25f; - if (this->actor.speedXZ > 8.0f) { - this->actor.speedXZ = 8.0f; + this->actor.speed += 0.25f; + if (this->actor.speed > 8.0f) { + this->actor.speed = 8.0f; } } if (this->actor.params >= ENZF_TYPE_LIZALFOS_MINIBOSS_A) { // miniboss if (this->unk_3F8) { - this->actor.speedXZ = -this->actor.speedXZ; + this->actor.speed = -this->actor.speed; } } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || - !Actor_TestFloorInDirection(&this->actor, play, this->actor.speedXZ, + !Actor_TestFloorInDirection(&this->actor, play, this->actor.speed, this->actor.shape.rot.y + 0x3FFF)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { phi_v0_3 = this->actor.shape.rot.y + 0x3FFF; } else { phi_v0_3 = this->actor.shape.rot.y - 0x3FFF; } phi_v0_3 = this->actor.wallYaw - phi_v0_3; } else { - this->actor.speedXZ *= -0.8f; + this->actor.speed *= -0.8f; phi_v0_3 = 0; } if (ABS(phi_v0_3) > 0x4000) { - this->actor.speedXZ *= -0.8f; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ -= 0.5f; + this->actor.speed *= -0.8f; + if (this->actor.speed < 0.0f) { + this->actor.speed -= 0.5f; } else { - this->actor.speedXZ += 0.5f; + this->actor.speed += 0.5f; } } } @@ -1123,8 +1123,8 @@ void func_80B463E4(EnZf* this, PlayState* play) { this->actor.world.pos.z += Math_CosS(this->actor.shape.rot.y) * this->unk_408; } - if (ABS(this->actor.speedXZ) >= ABS(this->unk_408)) { - this->skelAnime.playSpeed = this->actor.speedXZ * 0.75f; + if (ABS(this->actor.speed) >= ABS(this->unk_408)) { + this->skelAnime.playSpeed = this->actor.speed * 0.75f; } else if (this->skelAnime.playSpeed < 0.0f) { this->skelAnime.playSpeed = this->unk_408 * -0.75f; } else { @@ -1175,7 +1175,7 @@ void EnZf_SetupSlash(EnZf* this) { this->swordCollider.base.atFlags &= ~AT_BOUNCED; this->action = ENZF_ACTION_SLASH; Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_CRY); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; EnZf_SetupAction(this, EnZf_Slash); } @@ -1184,7 +1184,7 @@ void EnZf_Slash(EnZf* this, PlayState* play) { s16 rotDiff; s16 yawDiff; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if ((s32)this->skelAnime.curFrame == 10) { Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_ATTACK); @@ -1259,7 +1259,7 @@ void EnZf_SetupJumpBack(EnZf* this) { this->hopAnimIndex = 1; this->action = ENZF_ACTION_JUMP_BACK; this->actor.velocity.y = 15.0f; - this->actor.speedXZ = -15.0f; + this->actor.speed = -15.0f; Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_JUMP); EnZf_SetupAction(this, EnZf_JumpBack); } @@ -1269,7 +1269,7 @@ void EnZf_JumpBack(EnZf* this, PlayState* play) { this->actor.world.pos.y = this->actor.floorHeight; this->hopAnimIndex = 0; this->actor.velocity.y = 0.0f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (SkelAnime_Update(&this->skelAnime)) { @@ -1292,7 +1292,7 @@ void EnZf_JumpBack(EnZf* this, PlayState* play) { void EnZf_SetupStunned(EnZf* this) { if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && ((this->actor.velocity.y == 0.0f) || (this->actor.velocity.y == -4.0f))) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->hopAnimIndex = 0; } else { this->hopAnimIndex = 1; @@ -1313,12 +1313,12 @@ void EnZf_Stunned(EnZf* this, PlayState* play) { s16 angleToWall; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 0.05f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 0.05f; } this->hopAnimIndex = 0; } @@ -1362,7 +1362,7 @@ void EnZf_SetupSheatheSword(EnZf* this, PlayState* play) { Animation_Change(&this->skelAnime, &gZfSheathingSwordAnim, 2.0f, 0.0f, lastFrame, ANIMMODE_ONCE, morphFrames); this->action = ENZF_ACTION_SHEATHE_SWORD; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->curPlatform = EnZf_FindPlatform(&this->actor.world.pos, this->curPlatform); this->nextPlatform = EnZf_FindNextPlatformAwayFromPlayer(&this->actor.world.pos, this->curPlatform, this->homePlatform, play); @@ -1387,7 +1387,7 @@ void EnZf_SetupHopAndTaunt(EnZf* this) { this->hopAnimIndex = 0; Animation_MorphToPlayOnce(&this->skelAnime, sHoppingAnims[0], -4.0f); this->action = ENZF_ACTION_HOP_AND_TAUNT; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->unk_40C = 0.0f; this->unk_408 = 0.0f; EnZf_SetupAction(this, EnZf_HopAndTaunt); @@ -1397,7 +1397,7 @@ void EnZf_HopAndTaunt(EnZf* this, PlayState* play) { f32 lastFrame; f32 maxDist = 400.0f; - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.5f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.5f, 0.0f); Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer + 0x8000, 1, 4000, 0); // Upstairs @@ -1436,7 +1436,7 @@ void EnZf_HopAndTaunt(EnZf* this, PlayState* play) { case 1: this->actor.velocity.y = this->unk_40C + 10.0f; - this->actor.speedXZ = this->unk_408; + this->actor.speed = this->unk_408; this->unk_408 = 0.0f; this->unk_40C = 0.0f; break; @@ -1515,12 +1515,12 @@ void EnZf_HopAway(EnZf* this, PlayState* play) { this->actor.velocity.y += 8.0f; } - this->actor.speedXZ = 8.0f; + this->actor.speed = 8.0f; break; case 2: this->actor.velocity.y = 15.0f; - this->actor.speedXZ = 20.0f; + this->actor.speed = 20.0f; break; default: // 0 @@ -1532,12 +1532,12 @@ void EnZf_HopAway(EnZf* this, PlayState* play) { for (phi_v1 = 20; phi_v1 >= 0; phi_v1--, phi_f20_2 += 10.0f, phi_f0 += 1.2f) { if (!EnZf_PrimaryFloorCheck(this, play, phi_f20_2)) { - this->actor.speedXZ = phi_f0; + this->actor.speed = phi_f0; this->actor.velocity.y = 12.0f; break; } } - if (this->actor.speedXZ == 0.0f) { + if (this->actor.speed == 0.0f) { EnZf_SetupHopAndTaunt(this); } } @@ -1549,7 +1549,7 @@ void EnZf_HopAway(EnZf* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_ONGND); this->actor.velocity.y = 0.0f; this->actor.world.pos.y = this->actor.floorHeight; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; Actor_SpawnFloorDustRing(play, &this->actor, &this->leftFootPos, 3.0f, 2, 2.0f, 0, 0, false); Actor_SpawnFloorDustRing(play, &this->actor, &this->rightFootPos, 3.0f, 2, 2.0f, 0, 0, false); @@ -1588,7 +1588,7 @@ void EnZf_SetupDrawSword(EnZf* this, PlayState* play) { Animation_PlayOnce(&this->skelAnime, &gZfDrawingSwordAnim); this->actor.world.rot.y += 0x8000; this->action = ENZF_ACTION_DRAW_SWORD; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->curPlatform = EnZf_FindPlatform(&this->actor.world.pos, this->curPlatform); this->nextPlatform = EnZf_FindNextPlatformAwayFromPlayer(&this->actor.world.pos, this->curPlatform, this->homePlatform, play); @@ -1620,7 +1620,7 @@ void EnZf_SetupDamaged(EnZf* this) { if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && ((this->actor.velocity.y == 0.0f) || (this->actor.velocity.y == -4.0f))) { - this->actor.speedXZ = -4.0f; + this->actor.speed = -4.0f; this->hopAnimIndex = 0; } else { this->hopAnimIndex = 1; @@ -1643,12 +1643,12 @@ void EnZf_Damaged(EnZf* this, PlayState* play) { s16 wallYawDiff; if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ += 0.05f; + if (this->actor.speed < 0.0f) { + this->actor.speed += 0.05f; } this->hopAnimIndex = 0; } @@ -1708,7 +1708,7 @@ void EnZf_SetupJumpUp(EnZf* this) { this->hopAnimIndex = 1; this->action = ENZF_ACTION_JUMP_UP; this->actor.velocity.y = 22.0f; - this->actor.speedXZ = 7.5f; + this->actor.speed = 7.5f; Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_JUMP); this->actor.world.rot.y = this->actor.shape.rot.y; EnZf_SetupAction(this, EnZf_JumpUp); @@ -1728,7 +1728,7 @@ void EnZf_JumpUp(EnZf* this, PlayState* play) { } else if (this->actor.bgCheckFlags & (BGCHECKFLAG_GROUND | BGCHECKFLAG_GROUND_TOUCH)) { this->actor.velocity.y = 0.0f; this->actor.world.rot.y = this->actor.shape.rot.y = this->actor.yawTowardsPlayer; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.world.pos.y = this->actor.floorHeight; EnZf_SetupSlash(this); Actor_PlaySfx(&this->actor, NA_SE_EN_RIZA_ATTACK); @@ -1751,9 +1751,9 @@ void func_80B483E4(EnZf* this, PlayState* play) { playerRotY = player->actor.shape.rot.y; if (Math_SinS(playerRotY - this->actor.shape.rot.y) >= 0.0f) { - this->actor.speedXZ = -6.0f; + this->actor.speed = -6.0f; } else if (Math_SinS(playerRotY - this->actor.shape.rot.y) < 0.0f) { // Superfluous check - this->actor.speedXZ = 6.0f; + this->actor.speed = 6.0f; } this->unk_408 = 0.0f; @@ -1781,12 +1781,12 @@ void EnZf_CircleAroundPlayer(EnZf* this, PlayState* play) { if (this->actor.params >= ENZF_TYPE_LIZALFOS_MINIBOSS_A) { // miniboss if (this->unk_3F8) { - this->actor.speedXZ = -this->actor.speedXZ; + this->actor.speed = -this->actor.speed; } } else if ((this->actor.bgCheckFlags & BGCHECKFLAG_WALL) || - !Actor_TestFloorInDirection(&this->actor, play, this->actor.speedXZ, this->actor.shape.rot.y + 0x3FFF)) { + !Actor_TestFloorInDirection(&this->actor, play, this->actor.speed, this->actor.shape.rot.y + 0x3FFF)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_WALL) { - if (this->actor.speedXZ >= 0.0f) { + if (this->actor.speed >= 0.0f) { phi_v0_4 = this->actor.shape.rot.y + 0x3FFF; } else { phi_v0_4 = this->actor.shape.rot.y - 0x3FFF; @@ -1794,24 +1794,24 @@ void EnZf_CircleAroundPlayer(EnZf* this, PlayState* play) { phi_v0_4 = this->actor.wallYaw - phi_v0_4; } else { - this->actor.speedXZ *= -0.8f; + this->actor.speed *= -0.8f; phi_v0_4 = 0; } if (ABS(phi_v0_4) > 0x4000) { - this->actor.speedXZ *= -0.8f; - if (this->actor.speedXZ < 0.0f) { - this->actor.speedXZ -= 0.5f; + this->actor.speed *= -0.8f; + if (this->actor.speed < 0.0f) { + this->actor.speed -= 0.5f; } else { - this->actor.speedXZ += 0.5f; + this->actor.speed += 0.5f; } } } if (Math_SinS(playerRot - this->actor.shape.rot.y) >= 0.0f) { - this->actor.speedXZ += 0.125f; + this->actor.speed += 0.125f; } else { - this->actor.speedXZ -= 0.125f; + this->actor.speed -= 0.125f; } this->actor.world.rot.y = this->actor.shape.rot.y + 0x4000; @@ -1833,8 +1833,8 @@ void EnZf_CircleAroundPlayer(EnZf* this, PlayState* play) { this->actor.world.pos.z += Math_CosS(this->actor.shape.rot.y) * this->unk_408; } - if (ABS(this->actor.speedXZ) >= ABS(this->unk_408)) { - this->skelAnime.playSpeed = -this->actor.speedXZ * 0.75f; + if (ABS(this->actor.speed) >= ABS(this->unk_408)) { + this->skelAnime.playSpeed = -this->actor.speed * 0.75f; } else if (this->skelAnime.playSpeed < 0.0f) { this->skelAnime.playSpeed = this->unk_408 * -0.75f; } else { @@ -1849,7 +1849,7 @@ void EnZf_CircleAroundPlayer(EnZf* this, PlayState* play) { this->curPlatform = EnZf_FindPlatform(&this->actor.world.pos, this->curPlatform); if (EnZf_FindPlatform(&player->actor.world.pos, -1) != this->curPlatform) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if ((this->actor.params >= ENZF_TYPE_LIZALFOS_MINIBOSS_A) /* miniboss */ && (D_80B4A1B4 == this->actor.params)) { @@ -1908,7 +1908,7 @@ void EnZf_SetupDie(EnZf* this) { if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) && ((this->actor.velocity.y == 0.0f) || (this->actor.velocity.y == -4.0f))) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->hopAnimIndex = 0; } else { this->hopAnimIndex = 1; @@ -1941,11 +1941,11 @@ void EnZf_SetupDie(EnZf* this) { void EnZf_Die(EnZf* this, PlayState* play) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; } if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - Math_SmoothStepToF(&this->actor.speedXZ, 0.0f, 1.0f, 0.15f, 0.0f); + Math_SmoothStepToF(&this->actor.speed, 0.0f, 1.0f, 0.15f, 0.0f); this->hopAnimIndex = 0; } @@ -2045,8 +2045,8 @@ void EnZf_Update(Actor* thisx, PlayState* play) { if (this->actor.colChkInfo.damageEffect != ENZF_DMGEFF_IMMUNE) { this->unk_3F8 = false; if ((this->hopAnimIndex != 1) && (this->action != ENZF_ACTION_HOP_AWAY)) { - if (this->actor.speedXZ != 0.0f) { - this->unk_3F8 = EnZf_PrimaryFloorCheck(this, play, this->actor.speedXZ * 1.5f); + if (this->actor.speed != 0.0f) { + this->unk_3F8 = EnZf_PrimaryFloorCheck(this, play, this->actor.speed * 1.5f); } if (!this->unk_3F8) { this->unk_3F8 = EnZf_PrimaryFloorCheck(this, play, 0.0f); @@ -2289,15 +2289,15 @@ void EnZf_Draw(Actor* thisx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_en_zf.c", 3601); } -void EnZf_SetupCircleAroundPlayer(EnZf* this, f32 speed) { +void EnZf_SetupCircleAroundPlayer(EnZf* this, f32 speedXZ) { Animation_MorphToLoop(&this->skelAnime, &gZfSidesteppingAnim, -1.0f); this->unk_3F0 = Rand_ZeroOne() * 10.0f + 8.0f; if (this->actor.params == ENZF_TYPE_DINOLFOS) { - this->actor.speedXZ = 2.0f * speed; + this->actor.speed = 2.0f * speedXZ; this->unk_3F0 /= 2; } else { - this->actor.speedXZ = speed; + this->actor.speed = speedXZ; } this->hopAnimIndex = 0; @@ -2387,7 +2387,7 @@ s32 EnZf_DodgeRangedWaiting(PlayState* play, EnZf* this) { phi_t0 |= 2; } - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; if ((ABS(yawToProjectile) < 0x2000) || (ABS(yawToProjectile) >= 0x6000)) { if (phi_t0 == 0) { diff --git a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c index d43d1a0dca..93e742927a 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c @@ -183,7 +183,7 @@ void func_80B4B010(EnZl1* this, PlayState* play) { Letterbox_SetSizeTarget(32); Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT); player->actor.world.pos = playerPos; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; this->unk_1E2 = 0; this->actionFunc = func_80B4B240; Audio_PlayFanfare(NA_BGM_APPEAR); @@ -318,7 +318,7 @@ void func_80B4B240(EnZl1* this, PlayState* play) { if (this->skelAnime.curFrame == frameCount) { animHeaderSeg = &gChildZelda1Anim_00438; sp3C = 1; - play->csCtx.segment = D_80B4C5D0; + play->csCtx.script = D_80B4C5D0; gSaveContext.cutsceneTrigger = 1; this->actionFunc = func_80B4B8B4; this->unk_1E2++; @@ -332,16 +332,16 @@ void func_80B4B240(EnZl1* this, PlayState* play) { Actor_TrackPlayer(play, &this->actor, &this->unk_200, &this->unk_206, this->actor.focus.pos); } -void func_80B4B7F4(CsCmdActorAction* npcAction, Vec3f* pos) { - pos->x = npcAction->startPos.x; - pos->y = npcAction->startPos.y; - pos->z = npcAction->startPos.z; +void func_80B4B7F4(CsCmdActorCue* cue, Vec3f* dest) { + dest->x = cue->startPos.x; + dest->y = cue->startPos.y; + dest->z = cue->startPos.z; } -void func_80B4B834(CsCmdActorAction* npcAction, Vec3f* pos) { - pos->x = npcAction->endPos.x; - pos->y = npcAction->endPos.y; - pos->z = npcAction->endPos.z; +void func_80B4B834(CsCmdActorCue* cue, Vec3f* dest) { + dest->x = cue->endPos.x; + dest->y = cue->endPos.y; + dest->z = cue->endPos.z; } void func_80B4B874(EnZl1* this, PlayState* play) { @@ -368,8 +368,8 @@ void func_80B4B8B4(EnZl1* this, PlayState* play) { Vec3f subCamAt = { -421.0f, 143.0f, -5.0f }; Vec3f subCamEye = { -512.0f, 105.0f, -4.0f }; s32 pad2; - f32 actionLength; - CsCmdActorAction* npcAction; + f32 cueDuration; + CsCmdActorCue* cue; Vec3f sp74; Vec3f sp68; Vec3f velocity = { 0.0f, 0.0f, 0.0f }; @@ -384,32 +384,39 @@ void func_80B4B8B4(EnZl1* this, PlayState* play) { return; } - npcAction = play->csCtx.npcActions[0]; - if (npcAction != NULL) { - func_80B4B7F4(npcAction, &sp74); - func_80B4B834(npcAction, &sp68); + cue = play->csCtx.actorCues[0]; + + if (cue != NULL) { + func_80B4B7F4(cue, &sp74); + func_80B4B834(cue, &sp68); + if (this->unk_1E6 == 0) { sp48 = sp74; this->actor.home.pos = sp48; this->actor.world.pos = sp48; } - if (this->unk_1E6 != npcAction->action) { - frameCount = Animation_GetLastFrame(spB0[npcAction->action]); - Animation_Change(&this->skelAnime, spB0[npcAction->action], 1.0f, 0.0f, frameCount, spA4[npcAction->action], - -10.0f); - this->unk_1E6 = npcAction->action; + + if (this->unk_1E6 != cue->id) { + frameCount = Animation_GetLastFrame(spB0[cue->id]); + Animation_Change(&this->skelAnime, spB0[cue->id], 1.0f, 0.0f, frameCount, spA4[cue->id], -10.0f); + this->unk_1E6 = cue->id; } + this->actor.velocity = velocity; - if (play->csCtx.frames < npcAction->endFrame) { - actionLength = npcAction->endFrame - npcAction->startFrame; - this->actor.velocity.x = (sp68.x - sp74.x) / actionLength; - this->actor.velocity.y = (sp68.y - sp74.y) / actionLength; + + if (play->csCtx.curFrame < cue->endFrame) { + cueDuration = cue->endFrame - cue->startFrame; + + this->actor.velocity.x = (sp68.x - sp74.x) / cueDuration; + this->actor.velocity.y = (sp68.y - sp74.y) / cueDuration; this->actor.velocity.y += this->actor.gravity; + if (this->actor.velocity.y < this->actor.minVelocityY) { this->actor.velocity.y = this->actor.minVelocityY; } - this->actor.velocity.z = (sp68.z - sp74.z) / actionLength; + this->actor.velocity.z = (sp68.z - sp74.z) / cueDuration; } + Actor_TrackPlayer(play, &this->actor, &this->unk_200, &this->unk_206, this->actor.focus.pos); Play_SetCameraAtEye(play, this->subCamId, &subCamAt, &subCamEye); Play_SetCameraFov(play, this->subCamId, 70.0f); @@ -447,11 +454,11 @@ void func_80B4BC78(EnZl1* this, PlayState* play) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, }; s32 pad2; - f32 actionLength; + f32 cueDuration; Vec3f sp70; Vec3f sp64; Vec3f velocity = { 0.0f, 0.0f, 0.0f }; - CsCmdActorAction* npcAction; + CsCmdActorCue* cue; s32 pad; f32 frameCount; @@ -459,31 +466,39 @@ void func_80B4BC78(EnZl1* this, PlayState* play) { frameCount = Animation_GetLastFrame(&gChildZelda1Anim_11348); Animation_Change(&this->skelAnime, &gChildZelda1Anim_11348, 1.0f, 0.0f, frameCount, ANIMMODE_LOOP, -10.0f); } + func_80B4B874(this, play); - npcAction = play->csCtx.npcActions[0]; - if (npcAction != NULL) { - func_80B4B7F4(npcAction, &sp70); - func_80B4B834(npcAction, &sp64); + + cue = play->csCtx.actorCues[0]; + + if (cue != NULL) { + func_80B4B7F4(cue, &sp70); + func_80B4B834(cue, &sp64); + if (this->unk_1E6 == 0) { this->actor.world.pos = this->actor.home.pos = sp70; } - if (this->unk_1E6 != npcAction->action) { - frameCount = Animation_GetLastFrame(sp90[npcAction->action]); - Animation_Change(&this->skelAnime, sp90[npcAction->action], 1.0f, 0.0f, frameCount, sp84[npcAction->action], - -10.0f); - this->unk_1E6 = npcAction->action; + if (this->unk_1E6 != cue->id) { + frameCount = Animation_GetLastFrame(sp90[cue->id]); + Animation_Change(&this->skelAnime, sp90[cue->id], 1.0f, 0.0f, frameCount, sp84[cue->id], -10.0f); + this->unk_1E6 = cue->id; } + this->actor.velocity = velocity; - if (play->csCtx.frames < npcAction->endFrame) { - actionLength = npcAction->endFrame - npcAction->startFrame; - this->actor.velocity.x = (sp64.x - sp70.x) / actionLength; - this->actor.velocity.y = (sp64.y - sp70.y) / actionLength; + + if (play->csCtx.curFrame < cue->endFrame) { + cueDuration = cue->endFrame - cue->startFrame; + + this->actor.velocity.x = (sp64.x - sp70.x) / cueDuration; + this->actor.velocity.y = (sp64.y - sp70.y) / cueDuration; this->actor.velocity.y += this->actor.gravity; + if (this->actor.velocity.y < this->actor.minVelocityY) { this->actor.velocity.y = this->actor.minVelocityY; } - this->actor.velocity.z = (sp64.z - sp70.z) / actionLength; + + this->actor.velocity.z = (sp64.z - sp70.z) / cueDuration; } } } diff --git a/src/overlays/actors/ovl_En_Zl1/z_en_zl1_cutscene_data.c b/src/overlays/actors/ovl_En_Zl1/z_en_zl1_cutscene_data.c index ccfe0f4c29..3c05f2cb6b 100644 --- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1_cutscene_data.c +++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1_cutscene_data.c @@ -4,245 +4,245 @@ // clang-format off CutsceneData D_80B4C5D0[] = { CS_BEGIN_CUTSCENE(28, 3000), - CS_PLAYER_ACTION_LIST(3), - CS_PLAYER_ACTION(0x0005, 400, 1211, 0x0000, 0xC000, 0x0000, -422, 84, 1, -422, 84, 1, 1.1266861702801002e-29f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0001, 1211, 1241, 0x0000, 0xC000, 0x0000, -422, 84, 1, -483, 84, 0, 1.1266861702801002e-29f, 0.0f, 1.401298464324817e-45f), - CS_PLAYER_ACTION(0x0029, 1241, 1311, 0x0000, 0xC000, 0x0000, -483, 84, 0, -483, 84, 0, 1.1266861702801002e-29f, 0.0f, 1.401298464324817e-45f), - CS_NPC_ACTION_LIST(18, 1), - CS_NPC_ACTION(0x0007, 1170, 1316, 0x7477, 0x0000, 0x0000, -485, 84, 0, -469, 85, -55, 0.10958904f, 0.006849315f, -0.10958904f), + CS_PLAYER_CUE_LIST(3), + CS_PLAYER_CUE(0x0005, 400, 1211, 0x0000, 0xC000, 0x0000, -422, 84, 1, -422, 84, 1, 1.1266861702801002e-29f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0001, 1211, 1241, 0x0000, 0xC000, 0x0000, -422, 84, 1, -483, 84, 0, 1.1266861702801002e-29f, 0.0f, 1.401298464324817e-45f), + CS_PLAYER_CUE(0x0029, 1241, 1311, 0x0000, 0xC000, 0x0000, -483, 84, 0, -483, 84, 0, 1.1266861702801002e-29f, 0.0f, 1.401298464324817e-45f), + CS_ACTOR_CUE_LIST(18, 1), + CS_ACTOR_CUE(0x0007, 1170, 1316, 0x7477, 0x0000, 0x0000, -485, 84, 0, -469, 85, -55, 0.10958904f, 0.006849315f, -0.10958904f), CS_UNK_DATA_LIST(0x00000049, 1), CS_UNK_DATA(0x00010000, 0x0BB80000, 0x00000000, 0x00000000, 0xFFFFFFE8, 0x00000003, 0x00000000, 0xFFFFFFE8, 0x00000003, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(16, 3), - CS_NPC_ACTION(0x0009, 1220, 1310, 0x8000, 0x0000, 0x0000, -890, 90, 150, -890, 90, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x000A, 1310, 1449, 0x0000, 0x0000, 0x0000, -890, 90, 0, -890, 90, 0, 0.0f, 0.0f, 0.0f), - CS_NPC_ACTION(0x0004, 1449, 1457, 0x0000, 0x0000, 0x0000, -890, 90, 0, -890, 90, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE_LIST(16, 3), + CS_ACTOR_CUE(0x0009, 1220, 1310, 0x8000, 0x0000, 0x0000, -890, 90, 150, -890, 90, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x000A, 1310, 1449, 0x0000, 0x0000, 0x0000, -890, 90, 0, -890, 90, 0, 0.0f, 0.0f, 0.0f), + CS_ACTOR_CUE(0x0004, 1449, 1457, 0x0000, 0x0000, 0x0000, -890, 90, 0, -890, 90, 0, 0.0f, 0.0f, 0.0f), CS_MISC_LIST(1), - CS_MISC(0x000C, 1460, 1461, 0x0000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000002, 0xFFFFFFFF, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000000), - CS_NPC_ACTION_LIST(29, 1), - CS_NPC_ACTION(0x0002, 330, 763, 0x0000, 0x0000, 0x0000, -1250, 150, 0, -1250, 150, 0, 0.0f, 0.0f, 0.0f), - CS_SCENE_TRANS_FX(0x0001, 200, 231), - CS_SCENE_TRANS_FX(0x0005, 230, 271), - CS_SCENE_TRANS_FX(0x0001, 860, 870), - CS_SCENE_TRANS_FX(0x0005, 875, 900), - CS_CAM_EYE_LIST(0, 331), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -447, 128, 1, 0x2031), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -447, 128, 1, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -447, 128, 1, 0x3833), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -447, 128, 1, 0x2C20), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -392, 145, 1, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -318, 168, 1, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -222, 198, 1, 0x3639), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -146, 221, 1, 0x392C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -132, 222, 1, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -66, 267, 1, 0x3632), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -66, 267, 1, 0x3639), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -66, 267, 1, 0x392C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -66, 267, 1, 0x2031), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.800003f, -66, 267, 1, 0x3533), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.800003f, -66, 267, 1, 0x3336), - CS_CAM_EYE_LIST(230, 1631), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x2031), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x3833), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x2C20), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x3639), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x392C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 259, 24, 0x3632), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1220, 189, 24, 0x3639), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1135, 198, 81, 0x392C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -1132, 119, 84, 0x2031), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1199, 137, 36, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3336), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x332C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3231), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3232), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x392C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x2034), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3331), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3434), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x312C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3136), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3336), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x332C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x200A), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3136), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3336), - CS_CAM_EYE_LIST(810, 1041), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, -1218, 127, 22, 0x2031), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, -1218, 127, 22, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, -1218, 127, 22, 0x3833), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, -1218, 88, 21, 0x2C20), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, -1208, -52, 23, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, -1201, -114, 26, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, -1201, -114, 26, 0x3639), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, -1201, -114, 26, 0x392C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, -1201, -114, 26, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.600006f, -1201, -114, 26, 0x3632), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.600006f, -1201, -114, 26, 0x3639), - CS_CAM_EYE_LIST(870, 1261), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 80.274445f, -59, 160, 320, 0x2031), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -59, 160, 320, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -59, 160, 320, 0x3833), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -59, 160, 320, 0x2C20), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -115, 148, 249, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -190, 126, 192, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -286, 105, 135, 0x3639), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -357, 108, 87, 0x392C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -394, 104, 53, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -394, 104, 53, 0x3632), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -394, 104, 53, 0x3639), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -394, 104, 53, 0x392C), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.074677f, -394, 104, 53, 0x2031), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.074677f, -394, 104, 53, 0x3533), - CS_CAM_EYE_LIST(1160, 1401), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x2031), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x3833), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x2C20), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x3639), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x392C), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 60.0f, -459, 175, 80, 0x2032), - CS_CAM_EYE_LIST(1260, 1411), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, -461, 133, 0, 0x2031), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, -461, 133, 0, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, -461, 133, 0, 0x3833), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, -461, 133, 0, 0x2C20), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 45.199944f, -461, 133, 0, 0x2032), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 45.199944f, -461, 133, 0, 0x3533), - CS_CAM_EYE_LIST(1320, 1531), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x2031), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x3833), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x2C20), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x2032), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x3533), - CS_CAM_EYE(CS_CMD_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x3639), - CS_CAM_EYE(CS_CMD_STOP, 0x00, 0, 10.999838f, -488, 124, -6, 0x392C), - CS_CAM_AT_LIST(0, 360), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -506, 110, 1, 0x2031), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.800003f, -506, 110, 1, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.800003f, -506, 110, 1, 0x3833), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.800003f, -506, 110, 1, 0x2C20), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 25, 60.800003f, -451, 127, 1, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 25, 60.800003f, -380, 149, 1, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.800003f, -291, 177, 1, 0x3639), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.800003f, -224, 210, 1, 0x392C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.800003f, -213, 230, 1, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.800003f, -143, 291, 1, 0x3632), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.800003f, -135, 308, 1, 0x3639), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.800003f, -127, 319, 1, 0x392C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.800003f, -120, 326, 1, 0x2031), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.800003f, -120, 326, 1, 0x3533), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.800003f, -120, 326, 1, 0x3336), - CS_CAM_AT_LIST(230, 1710), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x2031), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x3833), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x2C20), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x3639), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x392C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1245, 227, 5, 0x3632), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1245, 158, 5, 0x3639), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -1180, 178, 50, 0x392C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 80, 60.0f, -1178, 131, 51, 0x2031), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 80, 60.600002f, -1240, 146, 6, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1253, 153, -3, 0x3336), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1253, 153, -3, 0x332C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1253, 153, -3, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1253, 153, -3, 0x3231), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1253, 153, -3, 0x3232), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1252, 152, -2, 0x392C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1252, 152, -2, 0x2034), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 80, 60.600002f, -1252, 152, -2, 0x3331), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 80, 60.600002f, -1252, 152, -2, 0x3434), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 80, 60.600002f, -1252, 152, -2, 0x312C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 80, 60.600002f, -1251, 151, -1, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 80, 60.600002f, -1251, 151, -1, 0x3136), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 80, 60.600002f, -1251, 151, -1, 0x3336), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 80, 60.600002f, -1251, 151, -1, 0x332C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 80, 60.600002f, -1251, 151, -1, 0x200A), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600002f, -1251, 151, -1, 0x3136), - CS_CAM_AT(CS_CMD_STOP, 0x00, 80, 60.600002f, -1251, 151, -1, 0x3336), - CS_CAM_AT_LIST(810, 1070), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600006f, -1251, 151, -1, 0x2031), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600006f, -1251, 151, -1, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 20, 60.600006f, -1250, 150, 0, 0x3833), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.600006f, -1241, 125, 5, 0x2C20), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.600006f, -1226, -13, 10, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 10, 60.600006f, -1218, -73, 26, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600006f, -1218, -73, 26, 0x3639), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600006f, -1218, -73, 26, 0x392C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600006f, -1218, -73, 26, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.600006f, -1218, -73, 26, 0x3632), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.600006f, -1218, -73, 26, 0x3639), - CS_CAM_AT_LIST(870, 1290), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -45, 240, 241, 0x2031), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -45, 240, 241, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -56, 219, 224, 0x3833), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -85, 183, 212, 0x2C20), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -204, 134, 183, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -280, 116, 125, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -376, 104, 69, 0x3639), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -440, 107, 13, 0x392C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -467, 110, -25, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -467, 110, -25, 0x3632), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -467, 110, -25, 0x3639), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -467, 110, -25, 0x392C), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.074677f, -467, 110, -25, 0x2031), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.074677f, -467, 110, -25, 0x3533), - CS_CAM_AT_LIST(1160, 1430), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x2031), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x3833), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x2C20), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x3639), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x392C), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 60.0f, -456, 138, 16, 0x2032), - CS_CAM_AT_LIST(1260, 1440), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.199944f, -535, 133, 0, 0x2031), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.199944f, -535, 133, 0, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.199944f, -535, 133, 0, 0x3833), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.199944f, -535, 133, 0, 0x2C20), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 45.199944f, -535, 133, 0, 0x2032), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 45.199944f, -535, 133, 0, 0x3533), - CS_CAM_AT_LIST(1320, 1560), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x2031), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x3833), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x2C20), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x2032), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x3533), - CS_CAM_AT(CS_CMD_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x3639), - CS_CAM_AT(CS_CMD_STOP, 0x00, 30, 10.999838f, -1349, 124, -6, 0x392C), + CS_MISC(CS_MISC_STOP_CUTSCENE, 1460, 1461, 0x0000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000002, 0xFFFFFFFF, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000000), + CS_ACTOR_CUE_LIST(29, 1), + CS_ACTOR_CUE(0x0002, 330, 763, 0x0000, 0x0000, 0x0000, -1250, 150, 0, -1250, 150, 0, 0.0f, 0.0f, 0.0f), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 200, 231), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 230, 271), + CS_TRANSITION(CS_TRANS_GRAY_FILL_IN, 860, 870), + CS_TRANSITION(CS_TRANS_GRAY_FILL_OUT, 875, 900), + CS_CAM_EYE_SPLINE(0, 331), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -447, 128, 1, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -447, 128, 1, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -447, 128, 1, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -447, 128, 1, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -392, 145, 1, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -318, 168, 1, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -222, 198, 1, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -146, 221, 1, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -132, 222, 1, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -66, 267, 1, 0x3632), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -66, 267, 1, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -66, 267, 1, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -66, 267, 1, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.800003f, -66, 267, 1, 0x3533), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.800003f, -66, 267, 1, 0x3336), + CS_CAM_EYE_SPLINE(230, 1631), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 445, 24, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 259, 24, 0x3632), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1220, 189, 24, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1135, 198, 81, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -1132, 119, 84, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1199, 137, 36, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3336), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x332C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3231), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3232), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x2034), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3331), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3434), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x312C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3136), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3336), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x332C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x200A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3136), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.600002f, -1218, 127, 22, 0x3336), + CS_CAM_EYE_SPLINE(810, 1041), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, -1218, 127, 22, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, -1218, 127, 22, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, -1218, 127, 22, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, -1218, 88, 21, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, -1208, -52, 23, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, -1201, -114, 26, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, -1201, -114, 26, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, -1201, -114, 26, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, -1201, -114, 26, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.600006f, -1201, -114, 26, 0x3632), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.600006f, -1201, -114, 26, 0x3639), + CS_CAM_EYE_SPLINE(870, 1261), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 80.274445f, -59, 160, 320, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -59, 160, 320, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -59, 160, 320, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -59, 160, 320, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -115, 148, 249, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -190, 126, 192, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -286, 105, 135, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -357, 108, 87, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -394, 104, 53, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -394, 104, 53, 0x3632), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -394, 104, 53, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -394, 104, 53, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.074677f, -394, 104, 53, 0x2031), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.074677f, -394, 104, 53, 0x3533), + CS_CAM_EYE_SPLINE(1160, 1401), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 60.0f, -459, 175, 80, 0x392C), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 60.0f, -459, 175, 80, 0x2032), + CS_CAM_EYE_SPLINE(1260, 1411), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, -461, 133, 0, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, -461, 133, 0, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, -461, 133, 0, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, -461, 133, 0, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 45.199944f, -461, 133, 0, 0x2032), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 45.199944f, -461, 133, 0, 0x3533), + CS_CAM_EYE_SPLINE(1320, 1531), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 0, 10.999838f, -488, 124, -6, 0x3639), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 0, 10.999838f, -488, 124, -6, 0x392C), + CS_CAM_AT_SPLINE(0, 360), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -506, 110, 1, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.800003f, -506, 110, 1, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.800003f, -506, 110, 1, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.800003f, -506, 110, 1, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 25, 60.800003f, -451, 127, 1, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 25, 60.800003f, -380, 149, 1, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.800003f, -291, 177, 1, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.800003f, -224, 210, 1, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.800003f, -213, 230, 1, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.800003f, -143, 291, 1, 0x3632), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.800003f, -135, 308, 1, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.800003f, -127, 319, 1, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.800003f, -120, 326, 1, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.800003f, -120, 326, 1, 0x3533), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.800003f, -120, 326, 1, 0x3336), + CS_CAM_AT_SPLINE(230, 1710), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1246, 413, 5, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1245, 227, 5, 0x3632), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1245, 158, 5, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -1180, 178, 50, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 80, 60.0f, -1178, 131, 51, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 80, 60.600002f, -1240, 146, 6, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1253, 153, -3, 0x3336), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1253, 153, -3, 0x332C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1253, 153, -3, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1253, 153, -3, 0x3231), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1253, 153, -3, 0x3232), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1252, 152, -2, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1252, 152, -2, 0x2034), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 80, 60.600002f, -1252, 152, -2, 0x3331), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 80, 60.600002f, -1252, 152, -2, 0x3434), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 80, 60.600002f, -1252, 152, -2, 0x312C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 80, 60.600002f, -1251, 151, -1, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 80, 60.600002f, -1251, 151, -1, 0x3136), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 80, 60.600002f, -1251, 151, -1, 0x3336), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 80, 60.600002f, -1251, 151, -1, 0x332C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 80, 60.600002f, -1251, 151, -1, 0x200A), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600002f, -1251, 151, -1, 0x3136), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 80, 60.600002f, -1251, 151, -1, 0x3336), + CS_CAM_AT_SPLINE(810, 1070), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600006f, -1251, 151, -1, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600006f, -1251, 151, -1, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 20, 60.600006f, -1250, 150, 0, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.600006f, -1241, 125, 5, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.600006f, -1226, -13, 10, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 10, 60.600006f, -1218, -73, 26, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600006f, -1218, -73, 26, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600006f, -1218, -73, 26, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600006f, -1218, -73, 26, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.600006f, -1218, -73, 26, 0x3632), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.600006f, -1218, -73, 26, 0x3639), + CS_CAM_AT_SPLINE(870, 1290), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -45, 240, 241, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -45, 240, 241, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -56, 219, 224, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -85, 183, 212, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -204, 134, 183, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -280, 116, 125, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -376, 104, 69, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -440, 107, 13, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -467, 110, -25, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -467, 110, -25, 0x3632), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -467, 110, -25, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -467, 110, -25, 0x392C), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.074677f, -467, 110, -25, 0x2031), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.074677f, -467, 110, -25, 0x3533), + CS_CAM_AT_SPLINE(1160, 1430), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x3639), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 60.0f, -456, 138, 16, 0x392C), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 60.0f, -456, 138, 16, 0x2032), + CS_CAM_AT_SPLINE(1260, 1440), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.199944f, -535, 133, 0, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.199944f, -535, 133, 0, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.199944f, -535, 133, 0, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.199944f, -535, 133, 0, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 45.199944f, -535, 133, 0, 0x2032), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 45.199944f, -535, 133, 0, 0x3533), + CS_CAM_AT_SPLINE(1320, 1560), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x2031), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x3833), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x2C20), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x2032), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x3533), + CS_CAM_POINT(CS_CAM_CONTINUE, 0x00, 30, 10.999838f, -1349, 124, -6, 0x3639), + CS_CAM_POINT(CS_CAM_STOP, 0x00, 30, 10.999838f, -1349, 124, -6, 0x392C), CS_TEXT_LIST(10), CS_TEXT_NONE(0, 50), - CS_TEXT_DISPLAY_TEXTBOX(0x7035, 50, 190, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT(0x7035, 50, 190, 0x0000, 0xFFFF, 0xFFFF), CS_TEXT_NONE(190, 300), - CS_TEXT_DISPLAY_TEXTBOX(0x7036, 300, 800, 0x0000, 0xFFFF, 0xFFFF), + CS_TEXT(0x7036, 300, 800, 0x0000, 0xFFFF, 0xFFFF), CS_TEXT_NONE(800, 970), - CS_TEXT_DISPLAY_TEXTBOX(0x7037, 970, 1150, 0x0000, 0xFFFF, 0x7038), + CS_TEXT(0x7037, 970, 1150, 0x0000, 0xFFFF, 0x7038), CS_TEXT_NONE(1150, 1190), - CS_TEXT_DISPLAY_TEXTBOX(0x7005, 1190, 1200, 0x0000, 0xFFFF, 0x700B), + CS_TEXT(0x7005, 1190, 1200, 0x0000, 0xFFFF, 0x700B), CS_TEXT_NONE(1200, 1340), - CS_TEXT_DISPLAY_TEXTBOX(0x7009, 1340, 1420, 0x0000, 0xFFFF, 0xFFFF), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x004E, 230, 231, 0x0000, 0x00000000, 0x00000003, 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x00000000), - CS_PLAY_BGM_LIST(1), - CS_PLAY_BGM(0x002A, 870, 871, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0xFFFFFFFD, 0xFFFFFFFE, 0x00000000, 0xFFFFFFFD), - CS_STOP_BGM_LIST(1), - CS_STOP_BGM(0x0001, 110, 111, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0x00000001, 0xFFFFFFFE, 0x00000000, 0x00000001), + CS_TEXT(0x7009, 1340, 1420, 0x0000, 0xFFFF, 0xFFFF), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_HYRULE_CS, 230, 231, 0x0000, 0x00000000, 0x00000003, 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x00000000), + CS_START_SEQ_LIST(1), + CS_START_SEQ(NA_BGM_ZELDA_THEME, 870, 871, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0xFFFFFFFD, 0xFFFFFFFE, 0x00000000, 0xFFFFFFFD), + CS_STOP_SEQ_LIST(1), + CS_STOP_SEQ(NA_BGM_GENERAL_SFX, 110, 111, 0x0000, 0x00000000, 0xFFFFFFFE, 0x00000000, 0x00000001, 0xFFFFFFFE, 0x00000000, 0x00000001), CS_END(), }; // clang-format on diff --git a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c index 05de71255f..544a3422aa 100644 --- a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c +++ b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c @@ -210,21 +210,22 @@ s32 EnZl2_UpdateSkelAnime(EnZl2* this) { return SkelAnime_Update(&this->skelAnime); } -CsCmdActorAction* EnZl2_GetNpcAction(PlayState* play, s32 idx) { +CsCmdActorCue* EnZl2_GetCue(PlayState* play, s32 cueChannel) { if (play->csCtx.state != CS_STATE_IDLE) { - return play->csCtx.npcActions[idx]; + return play->csCtx.actorCues[cueChannel]; } return NULL; } -void func_80B4EDB8(EnZl2* this, PlayState* play, s32 arg2) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, arg2); +void func_80B4EDB8(EnZl2* this, PlayState* play, s32 cueChannel) { + CsCmdActorCue* cue = EnZl2_GetCue(play, cueChannel); - if (npcAction != NULL) { - this->actor.world.pos.x = npcAction->startPos.x; - this->actor.world.pos.y = npcAction->startPos.y; - this->actor.world.pos.z = npcAction->startPos.z; - this->actor.world.rot.y = this->actor.shape.rot.y = npcAction->rot.y; + if (cue != NULL) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + + this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y; } } @@ -536,7 +537,7 @@ void EnZl2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, s32 pad[2]; if (limbIndex == 10) { - if ((this->unk_254 != 0) && (play->csCtx.frames >= 900)) { + if ((this->unk_254 != 0) && (play->csCtx.curFrame >= 900)) { gSPDisplayList((*gfx)++, gZelda2OcarinaDL); } @@ -594,7 +595,7 @@ void func_80B4FDD4(EnZl2* this) { } void func_80B4FE10(PlayState* play) { - if ((play->csCtx.frames >= 830) && (play->csCtx.frames < 1081)) { + if ((play->csCtx.curFrame >= 830) && (play->csCtx.curFrame < 1081)) { func_800788CC(NA_SE_EV_EARTHQUAKE - SFX_FLAG); } } @@ -678,28 +679,30 @@ void func_80B5008C(EnZl2* this) { } void func_80B500E0(EnZl2* this, PlayState* play) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); - Vec3f* thisPos = &this->actor.world.pos; + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); + Vec3f* worldPos = &this->actor.world.pos; f32 startX; f32 startY; f32 startZ; f32 endX; f32 endY; f32 endZ; - f32 someFloat; + f32 lerp; - if (npcAction != NULL) { - someFloat = - Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, play->csCtx.frames, 8, 8); - startX = npcAction->startPos.x; - startY = npcAction->startPos.y; - startZ = npcAction->startPos.z; - endX = npcAction->endPos.x; - endY = npcAction->endPos.y; - endZ = npcAction->endPos.z; - thisPos->x = ((endX - startX) * someFloat) + startX; - thisPos->y = ((endY - startY) * someFloat) + startY; - thisPos->z = ((endZ - startZ) * someFloat) + startZ; + if (cue != NULL) { + lerp = Environment_LerpWeightAccelDecel(cue->endFrame, cue->startFrame, play->csCtx.curFrame, 8, 8); + + startX = cue->startPos.x; + startY = cue->startPos.y; + startZ = cue->startPos.z; + + endX = cue->endPos.x; + endY = cue->endPos.y; + endZ = cue->endPos.z; + + worldPos->x = ((endX - startX) * lerp) + startX; + worldPos->y = ((endY - startY) * lerp) + startY; + worldPos->z = ((endZ - startZ) * lerp) + startZ; } } @@ -710,11 +713,11 @@ void func_80B501C4(EnZl2* this, s32 alpha) { } void func_80B501E8(EnZl2* this, PlayState* play) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); - if (npcAction != NULL) { + if (cue != NULL) { this->actor.shape.shadowAlpha = this->alpha = - (1.0f - Environment_LerpWeight(npcAction->endFrame, npcAction->startFrame, play->csCtx.frames)) * 255.0f; + (1.0f - Environment_LerpWeight(cue->endFrame, cue->startFrame, play->csCtx.curFrame)) * 255.0f; func_80B501C4(this, this->alpha); } } @@ -726,13 +729,15 @@ void func_80B50260(EnZl2* this, PlayState* play) { } void func_80B50278(EnZl2* this, PlayState* play) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); - this->actor.world.pos.x = npcAction->startPos.x; - this->actor.world.pos.y = npcAction->startPos.y; - this->actor.world.pos.z = npcAction->startPos.z; - this->actor.world.rot.y = this->actor.shape.rot.y = npcAction->rot.y; - this->actor.shape.shadowAlpha = 0xFF; + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + this->actor.world.pos.z = cue->startPos.z; + + this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y; + + this->actor.shape.shadowAlpha = 255; this->action = 2; this->drawConfig = 1; } @@ -740,24 +745,25 @@ void func_80B50278(EnZl2* this, PlayState* play) { void func_80B50304(EnZl2* this, PlayState* play) { s32 pad[2]; ActorShape* shape = &this->actor.shape; - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); - f32 actionXDelta; - f32 actionZDelta; + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); + f32 cueXDelta; + f32 cueZDelta; + + cueXDelta = cue->endPos.x - cue->startPos.x; + cueZDelta = cue->endPos.z - cue->startPos.z; - actionXDelta = npcAction->endPos.x - npcAction->startPos.x; - actionZDelta = npcAction->endPos.z - npcAction->startPos.z; func_80B4FD00(this, &gZelda2Anime1Anim_0003BC, 0, -12.0f, 0); this->action = 3; this->drawConfig = 1; this->unk_23C = 0.0f; shape->shadowAlpha = 255; - this->actor.world.rot.y = shape->rot.y = RAD_TO_BINANG(Math_FAtan2F(actionXDelta, actionZDelta)); + this->actor.world.rot.y = shape->rot.y = RAD_TO_BINANG(Math_FAtan2F(cueXDelta, cueZDelta)); } void func_80B503DC(EnZl2* this, PlayState* play) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); - if ((npcAction != NULL) && (play->csCtx.frames >= npcAction->endFrame)) { + if ((cue != NULL) && (play->csCtx.curFrame >= cue->endFrame)) { this->action = 4; } } @@ -900,10 +906,10 @@ void func_80B50980(EnZl2* this, PlayState* play) { } void func_80B509A0(EnZl2* this, PlayState* play) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); - if (npcAction != NULL) { - if (play->csCtx.frames >= npcAction->endFrame) { + if (cue != NULL) { + if (play->csCtx.curFrame >= cue->endFrame) { this->action = 24; this->drawConfig = 0; func_80B4FE6C(this); @@ -912,15 +918,16 @@ void func_80B509A0(EnZl2* this, PlayState* play) { } void func_80B50A04(EnZl2* this, PlayState* play) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); - s32 newAction; - s32 unk_240; + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); + s32 nextCueId; + s32 currentCueId; - if (npcAction != NULL) { - newAction = npcAction->action; - unk_240 = this->unk_240; - if (newAction != unk_240) { - switch (newAction) { + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: func_80B50260(this, play); break; @@ -969,7 +976,7 @@ void func_80B50A04(EnZl2* this, PlayState* play) { default: osSyncPrintf("En_Zl2_inAgain_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->unk_240 = newAction; + this->cueId = nextCueId; } } } @@ -1155,7 +1162,7 @@ void func_80B512B8(EnZl2* this, PlayState* play) { void func_80B51310(EnZl2* this, PlayState* play) { Actor* child; - if (EnZl2_GetNpcAction(play, 0) == NULL) { + if (EnZl2_GetCue(play, 0) == NULL) { child = this->actor.child; if (child != NULL) { Actor_Kill(child); @@ -1188,7 +1195,7 @@ void func_80B513A8(EnZl2* this, PlayState* play) { void func_80B51418(EnZl2* this, PlayState* play) { EnZl2_UpdateEyes(this); - if (play->csCtx.frames < 431) { + if (play->csCtx.curFrame < 431) { EnZl2_setMouthIndex(this, 1); } else { EnZl2_setMouthIndex(this, 0); @@ -1201,7 +1208,7 @@ void func_80B5146C(EnZl2* this, PlayState* play) { } void func_80B5149C(EnZl2* this, PlayState* play) { - if (play->csCtx.frames < 988) { + if (play->csCtx.curFrame < 988) { EnZl2_setEyesIndex(this, 7); EnZl2_setEyeIndex2(this, 8); } else { @@ -1212,7 +1219,7 @@ void func_80B5149C(EnZl2* this, PlayState* play) { void func_80B514F8(EnZl2* this, PlayState* play) { EnZl2_UpdateEyes(this); - if (play->csCtx.frames < 1190) { + if (play->csCtx.curFrame < 1190) { EnZl2_setMouthIndex(this, 1); } else { EnZl2_setMouthIndex(this, 0); @@ -1226,9 +1233,9 @@ void func_80B5154C(EnZl2* this, PlayState* play) { EnZl2_UpdateEyes(this); } else { csCtx = &play->csCtx; - if (csCtx->frames < 0x5F0) { + if (csCtx->curFrame < 0x5F0) { func_80B4EBB8(this); - } else if (csCtx->frames == 0x5F0) { + } else if (csCtx->curFrame == 0x5F0) { this->unk_27C = 0.0f; } else { func_80B4EC48(this); @@ -1323,15 +1330,16 @@ void func_80B518C0(EnZl2* this) { } void func_80B51948(EnZl2* this, PlayState* play) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); - s32 newAction; - s32 unk_240; + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); + s32 nextCueId; + s32 currentCueId; - if (npcAction != NULL) { - newAction = npcAction->action; - unk_240 = this->unk_240; - if (newAction != unk_240) { - switch (newAction) { + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: func_80B515C4(this); break; @@ -1359,7 +1367,7 @@ void func_80B51948(EnZl2* this, PlayState* play) { default: osSyncPrintf("En_Zl2_inEnding_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); } - this->unk_240 = newAction; + this->cueId = nextCueId; } } } @@ -1444,29 +1452,28 @@ void func_80B51D24(EnZl2* this, PlayState* play) { } void func_80B51DA4(EnZl2* this, PlayState* play) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); - Vec3f* thisPos = &this->actor.world.pos; + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); + Vec3f* worldPos = &this->actor.world.pos; f32 startX; f32 startY; f32 startZ; f32 endX; f32 endY; f32 endZ; - f32 someFloat; + f32 lerp; - if (npcAction != NULL) { - someFloat = - Environment_LerpWeightAccelDecel(npcAction->endFrame, npcAction->startFrame, play->csCtx.frames, 0, 8); - startX = npcAction->startPos.x; - startY = npcAction->startPos.y; - startZ = npcAction->startPos.z; - endX = npcAction->endPos.x; - endY = npcAction->endPos.y; - endZ = npcAction->endPos.z; - thisPos->x = ((endX - startX) * someFloat) + startX; - thisPos->y = ((endY - startY) * someFloat) + startY; - thisPos->z = ((endZ - startZ) * someFloat) + startZ; - if (npcAction->endFrame < play->csCtx.frames) { + if (cue != NULL) { + lerp = Environment_LerpWeightAccelDecel(cue->endFrame, cue->startFrame, play->csCtx.curFrame, 0, 8); + startX = cue->startPos.x; + startY = cue->startPos.y; + startZ = cue->startPos.z; + endX = cue->endPos.x; + endY = cue->endPos.y; + endZ = cue->endPos.z; + worldPos->x = ((endX - startX) * lerp) + startX; + worldPos->y = ((endY - startY) * lerp) + startY; + worldPos->z = ((endZ - startZ) * lerp) + startZ; + if (cue->endFrame < play->csCtx.curFrame) { Actor_Kill(&this->actor); } } @@ -1480,10 +1487,10 @@ void func_80B51EA8(EnZl2* this) { void func_80B51EBC(EnZl2* this, PlayState* play) { ActorShape* shape = &this->actor.shape; - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); s32 pad[2]; - this->actor.world.rot.y = shape->rot.y = npcAction->rot.y; + this->actor.world.rot.y = shape->rot.y = cue->rot.y; func_80B4FD00(this, &gZelda2Anime1Anim_00B224, 0, 0.0f, 0); this->action = 34; this->drawConfig = 1; @@ -1491,10 +1498,10 @@ void func_80B51EBC(EnZl2* this, PlayState* play) { } void func_80B51F38(EnZl2* this, PlayState* play) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); - if (npcAction != NULL) { - if (play->csCtx.frames - 8 >= npcAction->endFrame) { + if (cue != NULL) { + if (play->csCtx.curFrame - 8 >= cue->endFrame) { func_80B4FD00(this, &gZelda2Anime1Anim_00B5FC, 0, -8.0f, 0); this->action = 35; } @@ -1502,15 +1509,16 @@ void func_80B51F38(EnZl2* this, PlayState* play) { } void func_80B51FA8(EnZl2* this, PlayState* play) { - CsCmdActorAction* npcAction = EnZl2_GetNpcAction(play, 0); - s32 action; - s32 unk_240; + CsCmdActorCue* cue = EnZl2_GetCue(play, 0); + s32 nextCueId; + s32 currentCueId; - if (npcAction != NULL) { - action = npcAction->action; - unk_240 = this->unk_240; - if (action != unk_240) { - switch (action) { + if (cue != NULL) { + nextCueId = cue->id; + currentCueId = this->cueId; + + if (nextCueId != currentCueId) { + switch (nextCueId) { case 1: func_80B51EA8(this); break; @@ -1524,7 +1532,7 @@ void func_80B51FA8(EnZl2* this, PlayState* play) { osSyncPrintf("En_Zl2_inRunning_Check_DemoMode:そんな動作は無い!!!!!!!!\n"); break; } - this->unk_240 = action; + this->cueId = nextCueId; } } } diff --git a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.h b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.h index 24ba154050..51a620c54a 100644 --- a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.h +++ b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.h @@ -26,7 +26,7 @@ typedef struct EnZl2 { /* 0x01DC */ s16 unk_1DC[0x18]; // ??? /* 0x020C */ s16 unk_20C[0x18]; // ??? /* 0x023C */ f32 unk_23C; - /* 0x0240 */ s32 unk_240; + /* 0x0240 */ s32 cueId; /* 0x0244 */ s32 unk_244; /* 0x0248 */ s32 unk_248; /* 0x024C */ s32 unk_24C; diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c index e0c881f682..9e4abfd767 100644 --- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c +++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c @@ -2569,8 +2569,7 @@ void func_80B59A80(EnZl3* this, PlayState* play) { } void func_80B59AD0(EnZl3* this, PlayState* play) { - // todo look into - Actor* thisx = &this->actor; // unused, necessary to use 'this' first to fix regalloc + Actor* thisx = &this->actor; Flags_SetSwitch(play, 0x36); Interface_SetSubTimer(180); diff --git a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c index db1d605c92..79fd3860aa 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -309,10 +309,10 @@ void func_80B5BB78(EnZl4* this, PlayState* play) { Npc_TrackPoint(&this->actor, &this->interactInfo, 2, NPC_TRACKING_HEAD_AND_TORSO); } -void EnZl4_GetActionStartPos(CsCmdActorAction* action, Vec3f* vec) { - vec->x = action->startPos.x; - vec->y = action->startPos.y; - vec->z = action->startPos.z; +void EnZl4_GetCueStartPos(CsCmdActorCue* cue, Vec3f* dest) { + dest->x = cue->startPos.x; + dest->y = cue->startPos.y; + dest->z = cue->startPos.z; } s32 EnZl4_SetupFromLegendCs(EnZl4* this, PlayState* play) { @@ -326,7 +326,7 @@ s32 EnZl4_SetupFromLegendCs(EnZl4* this, PlayState* play) { playerx->world.pos.x += 56.0f * Math_SinS(rotY); playerx->world.pos.z += 56.0f * Math_CosS(rotY); - player->linearVelocity = playerx->speedXZ = 0.0f; + player->linearVelocity = playerx->speed = 0.0f; EnZl4_SetActiveCamMove(play, 5); Letterbox_SetSizeTarget(32); @@ -437,7 +437,7 @@ s32 EnZl4_CsWaitForPlayer(EnZl4* this, PlayState* play) { rotY = this->actor.shape.rot.y; playerx->world.pos.x += 56.0f * Math_SinS(rotY); playerx->world.pos.z += 56.0f * Math_CosS(rotY); - playerx->speedXZ = 0.0f; + playerx->speed = 0.0f; player->linearVelocity = 0.0f; return true; } @@ -465,7 +465,7 @@ s32 EnZl4_CsMeetPlayer(EnZl4* this, PlayState* play) { break; case 2: if ((Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT) && Message_ShouldAdvance(play)) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardMeetCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardMeetCs); gSaveContext.cutsceneTrigger = 1; EnZl4_SetActiveCamMove(play, 0); play->msgCtx.msgMode = MSGMODE_PAUSED; @@ -899,17 +899,17 @@ s32 EnZl4_CsLookWindow(EnZl4* this, PlayState* play) { switch (this->talkState) { case 0: EnZl4_SetActiveCamMove(play, 7); - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardWindowCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardWindowCs); gSaveContext.cutsceneTrigger = 1; this->talkState++; break; case 1: if (play->csCtx.state != CS_STATE_IDLE) { - if (play->csCtx.frames == 90) { - play->csCtx.state = CS_STATE_UNSKIPPABLE_INIT; + if (play->csCtx.curFrame == 90) { + play->csCtx.state = CS_STATE_STOP; } } else { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardGanonCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardGanonCs); gSaveContext.cutsceneTrigger = 1; this->talkState++; func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); @@ -917,8 +917,8 @@ s32 EnZl4_CsLookWindow(EnZl4* this, PlayState* play) { break; case 2: if (play->csCtx.state != CS_STATE_IDLE) { - if (play->csCtx.frames == 209) { - play->csCtx.state = CS_STATE_UNSKIPPABLE_INIT; + if (play->csCtx.curFrame == 209) { + play->csCtx.state = CS_STATE_STOP; } } else { Rumble_Request(0.0f, 160, 10, 40); @@ -1099,7 +1099,7 @@ s32 EnZl4_CsMakePlan(EnZl4* this, PlayState* play) { this->eyeExpression = ZL4_EYES_NEUTRAL; this->mouthExpression = ZL4_MOUTH_NEUTRAL; this->talkState = 5; - this->unk_20F = this->lastAction = 0; + this->unk_20F = this->cueId = 0; } break; case 5: @@ -1217,33 +1217,41 @@ void EnZl4_Idle(EnZl4* this, PlayState* play) { void EnZl4_TheEnd(EnZl4* this, PlayState* play) { s32 animIndex[] = { ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_0, ZL4_ANIM_26, ZL4_ANIM_21, ZL4_ANIM_3 }; - CsCmdActorAction* npcAction; + CsCmdActorCue* cue; Vec3f pos; if (SkelAnime_Update(&this->skelAnime) && (this->skelAnime.animation == &gChildZeldaAnim_010DF8)) { Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, ZL4_ANIM_4); } + if (EnZl4_InMovingAnim(this)) { EnZl4_SetMove(this, play); } - if (play->csCtx.frames == 100) { + + if (play->csCtx.curFrame == 100) { this->eyeExpression = ZL4_EYES_LOOK_LEFT; } - if (play->csCtx.frames == 450) { + + if (play->csCtx.curFrame == 450) { this->blinkTimer = 3; this->eyeExpression = ZL4_EYES_NEUTRAL; this->mouthExpression = ZL4_MOUTH_SURPRISED; } - npcAction = play->csCtx.npcActions[0]; - if (npcAction != NULL) { - EnZl4_GetActionStartPos(npcAction, &pos); - if (this->lastAction == 0) { + + cue = play->csCtx.actorCues[0]; + + if (cue != NULL) { + EnZl4_GetCueStartPos(cue, &pos); + + if (this->cueId == 0) { this->actor.world.pos = this->actor.home.pos = pos; } - if (this->lastAction != npcAction->action) { - Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, animIndex[npcAction->action]); - this->lastAction = npcAction->action; + + if (this->cueId != cue->id) { + Animation_ChangeByInfo(&this->skelAnime, sAnimationInfo, animIndex[cue->id]); + this->cueId = cue->id; } + this->actor.velocity.x = 0.0f; this->actor.velocity.y = 0.0f; this->actor.velocity.z = 0.0f; diff --git a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.h b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.h index 4caa9bb9af..8710cc9cf9 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.h +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.h @@ -26,7 +26,7 @@ typedef struct EnZl4 { /* 0x0210 */ s16 blinkTimer; /* 0x0212 */ s16 talkTimer1; /* 0x0214 */ s16 talkTimer2; - /* 0x0216 */ s16 lastAction; + /* 0x0216 */ s16 cueId; /* 0x0218 */ Vec3s jointTable[18]; /* 0x0284 */ Vec3s morphTable[18]; } EnZl4; // size = 0x02F0 diff --git a/src/overlays/actors/ovl_En_fHG/z_en_fhg.c b/src/overlays/actors/ovl_En_fHG/z_en_fhg.c index 08e34c5cee..5cd4904b3b 100644 --- a/src/overlays/actors/ovl_En_fHG/z_en_fhg.c +++ b/src/overlays/actors/ovl_En_fHG/z_en_fhg.c @@ -77,7 +77,7 @@ void EnfHG_Init(Actor* thisx, PlayState* play2) { Actor_SetScale(&this->actor, 0.011499999f); this->actor.gravity = -3.5f; ActorShape_Init(&this->actor.shape, -2600.0f, NULL, 20.0f); - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->actor.focus.pos = this->actor.world.pos; this->actor.focus.pos.y += 70.0f; Skin_Init(play, &this->skin, &gPhantomHorseSkel, &gPhantomHorseRunningAnim); @@ -150,7 +150,7 @@ void EnfHG_Intro(EnfHG* this, PlayState* play) { } break; } - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_8); this->subCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); @@ -167,7 +167,7 @@ void EnfHG_Intro(EnfHG* this, PlayState* play) { player->actor.world.pos.y = GND_BOSSROOM_CENTER_Y + 7.0f; player->actor.world.pos.z = GND_BOSSROOM_CENTER_Z + 155.0f; player->actor.world.rot.y = player->actor.shape.rot.y = 0; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; this->subCamEye.x = GND_BOSSROOM_CENTER_X + 0.0f; this->subCamEye.y = GND_BOSSROOM_CENTER_Y + 37.0f; this->subCamEye.z = GND_BOSSROOM_CENTER_Z + 170.0f; @@ -399,7 +399,7 @@ void EnfHG_Intro(EnfHG* this, PlayState* play) { mainCam->at = this->subCamAt; Play_ReturnToMainCam(play, this->subCamId, 0); this->subCamId = SUB_CAM_ID_DONE; - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); this->actionFunc = EnfHG_Retreat; } diff --git a/src/overlays/actors/ovl_End_Title/z_end_title.c b/src/overlays/actors/ovl_End_Title/z_end_title.c index 2eff126205..5c118dd1cc 100644 --- a/src/overlays/actors/ovl_End_Title/z_end_title.c +++ b/src/overlays/actors/ovl_End_Title/z_end_title.c @@ -49,7 +49,7 @@ void EndTitle_Update(Actor* thisx, PlayState* play) { void EndTitle_DrawFull(Actor* thisx, PlayState* play) { MtxF* mf; EndTitle* this = (EndTitle*)thisx; - s32 frameCount = play->csCtx.frames; + s32 csCurFrame = play->csCtx.curFrame; Player* player = GET_PLAYER(play); mf = &player->mf_9E0; @@ -72,13 +72,13 @@ void EndTitle_DrawFull(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_end_title.c", 419); // Draw title cards on the screen - if ((frameCount > 890) && (this->endAlpha < 200)) { + if ((csCurFrame > 890) && (this->endAlpha < 200)) { this->endAlpha += 7; } - if ((frameCount > 810) && (this->tlozAlpha < 200)) { + if ((csCurFrame > 810) && (this->tlozAlpha < 200)) { this->tlozAlpha += 15; } - if ((frameCount > 850) && (this->ootAlpha < 200)) { + if ((csCurFrame > 850) && (this->ootAlpha < 200)) { this->ootAlpha += 15; } @@ -114,9 +114,9 @@ void EndTitle_DrawFull(Actor* thisx, PlayState* play) { void EndTitle_DrawNintendoLogo(Actor* thisx, PlayState* play) { EndTitle* this = (EndTitle*)thisx; s32 pad; - s32 frames = play->csCtx.frames; + s32 csCurFrame = play->csCtx.curFrame; - if ((frames >= 1101) && (this->endAlpha < 255)) { + if ((csCurFrame >= 1101) && (this->endAlpha < 255)) { this->endAlpha += 3; } diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 7d63be17af..165c9deabc 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -1604,7 +1604,7 @@ void Fishing_DrawLureHook(PlayState* play, Vec3f* pos, Vec3f* refPos, u8 hookInd Matrix_Translate(pos->x, pos->y, pos->z, MTXMODE_NEW); - if ((player->actor.speedXZ == 0.0f) && (D_80B7E138 == 0.0f)) { + if ((player->actor.speed == 0.0f) && (D_80B7E138 == 0.0f)) { Math_ApproachF(&sLureHookRotY[hookIndex], ry, 0.1f, 0.3f); } else { sLureHookRotY[hookIndex] = ry; @@ -1815,7 +1815,7 @@ void Fishing_DrawLureAndLine(PlayState* play, Vec3f* linePos, Vec3f* lineRot) { sLurePos = sReelLinePos[LINE_SEG_COUNT - 1]; sLureRot.x = sReelLineRot[LINE_SEG_COUNT - 2].x + M_PI; - if ((player->actor.speedXZ == 0.0f) && (D_80B7E0B0 == 0)) { + if ((player->actor.speed == 0.0f) && (D_80B7E0B0 == 0)) { Math_ApproachF(&sLureRot.y, sReelLineRot[LINE_SEG_COUNT - 2].y, 0.1f, 0.2f); } else { sLureRot.y = sReelLineRot[LINE_SEG_COUNT - 2].y; @@ -2908,9 +2908,9 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { this->actor.uncullZoneScale = 50.0f; if (this->unk_150 == 0) { - sp118 = (player->actor.speedXZ * 0.15f) + 0.25f; + sp118 = (player->actor.speed * 0.15f) + 0.25f; } else { - sp118 = (player->actor.speedXZ * 0.3f) + 0.25f; + sp118 = (player->actor.speed * 0.3f) + 0.25f; } if ((D_80B7E0B0 != 0) || (sSubCamId != SUB_CAM_ID_DONE) || @@ -3056,7 +3056,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { case 10: this->unk_1B4 = this->actor.home.pos; - Math_ApproachF(&this->actor.speedXZ, 2.0f, 1.0f, 0.5f); + Math_ApproachF(&this->actor.speed, 2.0f, 1.0f, 0.5f); Math_ApproachF(&this->unk_1B0, 4096.0f, 1.0f, 256.0f); if (sp124 < 40.0f) { @@ -3078,7 +3078,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { case 11: this->unk_1B4 = this->actor.home.pos; - Math_ApproachF(&this->actor.speedXZ, 0.0f, 1.0f, 0.05f); + Math_ApproachF(&this->actor.speed, 0.0f, 1.0f, 0.05f); Math_ApproachF(&this->unk_1B0, 0.0f, 1.0f, 256.0f); if (sp124 >= 40.0f) { @@ -3115,7 +3115,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { break; case 0: - Math_ApproachF(&this->actor.speedXZ, 1.0f, 1.0f, 0.05f); + Math_ApproachF(&this->actor.speed, 1.0f, 1.0f, 0.05f); Math_ApproachF(&this->unk_1B0, 0.0f, 1.0f, 256.0f); if (this->unk_17A[0] == 0) { @@ -3152,14 +3152,14 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { if ((this->actor.xzDistToPlayer < (250.0f * sp118)) || (this->unk_17A[1] != 0)) { Math_ApproachF(&this->unk_1B0, 8192.0f, 1.0f, 768.0f); - Math_ApproachF(&this->actor.speedXZ, 4.2f, 1.0f, 0.75); + Math_ApproachF(&this->actor.speed, 4.2f, 1.0f, 0.75); this->unk_190 = 1.2f; this->unk_194 = 4000.0f; this->unk_17A[0] = 20; } else { this->unk_190 = 1.0f; this->unk_194 = 2000.0f; - Math_ApproachF(&this->actor.speedXZ, 1.5f, 1.0f, 0.1f); + Math_ApproachF(&this->actor.speed, 1.5f, 1.0f, 0.1f); } if ((this->unk_17A[0] == 0) || (sp124 < 50.0f)) { @@ -3181,7 +3181,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { Math_ApproachS(&this->unk_166, 0, 0x14, 0x20); if ((this->actor.xzDistToPlayer < (250.0f * sp118)) || (this->unk_17A[1] != 0)) { - Math_ApproachF(&this->actor.speedXZ, 3.0f, 1.0f, 0.75); + Math_ApproachF(&this->actor.speed, 3.0f, 1.0f, 0.75); this->unk_190 = 1.0f; this->unk_17A[0] = 20; this->unk_194 = 4000.0f; @@ -3195,12 +3195,12 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { } else if (sp124 > 50.0f) { this->unk_190 = 0.8f; this->unk_194 = 1500.0f; - Math_ApproachF(&this->actor.speedXZ, 1.0f, 1.0f, 0.1f); + Math_ApproachF(&this->actor.speed, 1.0f, 1.0f, 0.1f); Math_ApproachF(&this->unk_1B0, 2048.0f, 1.0f, 128.0f); } else { this->unk_190 = 0.4f; this->unk_194 = 500.0f; - Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 0.02f); + Math_ApproachZeroF(&this->actor.speed, 1.0f, 0.02f); Math_ApproachF(&this->unk_1B0, 0.0f, 1.0f, 256.0f); } @@ -3230,11 +3230,11 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { Math_ApproachS(&this->unk_166, -0x1000, 0x14, 0x100); if (this->actor.world.pos.y < (WATER_SURFACE_Y(play) - 20.0f)) { - Math_ApproachF(&this->actor.speedXZ, 0.5f, 1.0f, 0.1f); + Math_ApproachF(&this->actor.speed, 0.5f, 1.0f, 0.1f); } else { - Math_ApproachZeroF(&this->actor.speedXZ, 1.0f, 0.01f); + Math_ApproachZeroF(&this->actor.speed, 1.0f, 0.01f); - if ((this->actor.speedXZ == 0.0f) || (this->actor.world.pos.y > (WATER_SURFACE_Y(play) - 5.0f))) { + if ((this->actor.speed == 0.0f) || (this->actor.world.pos.y > (WATER_SURFACE_Y(play) - 5.0f))) { this->unk_1B4.x = Rand_ZeroFloat(300.0f); this->unk_1B4.z = Rand_ZeroFloat(300.0f); this->unk_1B4.y = this->actor.floorHeight + 10.0f; @@ -3268,7 +3268,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { if (sp124 > 40.0f) { this->unk_190 = 0.7f; this->unk_194 = 1200.0f; - Math_ApproachF(&this->actor.speedXZ, 0.5f, 1.0f, 0.01f); + Math_ApproachF(&this->actor.speed, 0.5f, 1.0f, 0.01f); Math_ApproachF(&this->unk_1B0, 2048.0f, 1.0f, 128.0f); } else { this->unk_158 = -1; @@ -3331,7 +3331,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { this->unk_194 = 500.0f; this->unk_17A[0] = (s16)Rand_ZeroFloat(10.0f) + 2; } - Math_ApproachF(&this->actor.speedXZ, -0.2f, 1.0f, 0.1f); + Math_ApproachF(&this->actor.speed, -0.2f, 1.0f, 0.1f); this->unk_15E = 1; } else { if (this->unk_15E != 0) { @@ -3339,7 +3339,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { this->unk_1B0 = 0.0f; this->unk_194 = 3000.0f; } - Math_ApproachF(&this->actor.speedXZ, 3.0f, 1.0f, 0.15f); + Math_ApproachF(&this->actor.speed, 3.0f, 1.0f, 0.15f); this->unk_15E = 0; } @@ -3423,7 +3423,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { this->unk_1B4.z = sLurePos.z + sp100.z; this->unk_1B4.y = sLurePos.y - 10.0f; this->unk_1B0 = 4096.0f; - Math_ApproachF(&this->actor.speedXZ, this->unk_188 * 0.8f, 1.0f, 1.0f); + Math_ApproachF(&this->actor.speed, this->unk_188 * 0.8f, 1.0f, 1.0f); if ((D_80B7A694 != 3) || (sLurePos.y > (WATER_SURFACE_Y(play) + 5.0f)) || (sqrtf(SQ(sLurePos.x) + SQ(sLurePos.z)) > 800.0f)) { @@ -3448,7 +3448,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { this->unk_151 = 50; sp134 = 2; this->unk_1B4 = sLurePos; - Math_ApproachF(&this->actor.speedXZ, this->unk_188, 1.0f, 1.0f); + Math_ApproachF(&this->actor.speed, this->unk_188, 1.0f, 1.0f); if ((D_80B7A694 != 3) || (this->unk_17A[0] == 0) || (sLurePos.y > (WATER_SURFACE_Y(play) + 5.0f)) || (sqrtf(SQ(sLurePos.x) + SQ(sLurePos.z)) > 800.0f)) { @@ -3511,7 +3511,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { case -3: this->unk_151 = 50; this->unk_1B4 = sLurePos; - Math_ApproachF(&this->actor.speedXZ, 2.0f, 1.0f, 1.0f); + Math_ApproachF(&this->actor.speed, 2.0f, 1.0f, 1.0f); if ((D_80B7A694 != 3) || (this->unk_17A[0] == 0) || (sLurePos.y > (WATER_SURFACE_Y(play) + 5.0f)) || (sqrtf(SQ(sLurePos.x) + SQ(sLurePos.z)) > 800.0f)) { @@ -3678,17 +3678,17 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { D_80B7E11C = 0.0f; this->unk_190 = 1.6f; this->unk_194 = 6000.0f; - Math_ApproachF(&this->actor.speedXZ, 7.5f, 1.0f, 1.0f); + Math_ApproachF(&this->actor.speed, 7.5f, 1.0f, 1.0f); Math_ApproachS(&this->unk_170, 0x4E20, 2, 0xFA0); } else { if ((D_80B7E124 == 0) && (D_80B7E0B6 == 2)) { this->unk_190 = 1.0f; this->unk_194 = 2000.0f; - Math_ApproachF(&this->actor.speedXZ, 3.0f, 1.0f, 0.2f); + Math_ApproachF(&this->actor.speed, 3.0f, 1.0f, 0.2f); } else { this->unk_190 = 1.4f; this->unk_194 = 5000.0f; - Math_ApproachF(&this->actor.speedXZ, 5.0f, 1.0f, 0.5f); + Math_ApproachF(&this->actor.speed, 5.0f, 1.0f, 0.5f); } if (this->unk_150 == 0) { @@ -3713,7 +3713,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { D_80B7E11C = 1.3f - (this->unk_1AC * 0.00899f * 1.4f); } - Math_ApproachF(&this->actor.speedXZ, 2.0f, 1.0f, 0.5f); + Math_ApproachF(&this->actor.speed, 2.0f, 1.0f, 0.5f); if (this->unk_17A[1] == 0) { this->unk_152 = 0; @@ -3734,7 +3734,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { } if (D_80B7E124 || (D_80B7E0B6 != 2)) { - if (this->actor.speedXZ < 3.0f) { + if (this->actor.speed < 3.0f) { if ((D_80B7E0AE & 8) != 0) { sp100.x = -0.8f; } else { @@ -3759,11 +3759,11 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { if ((SQ(sp10C.x) + SQ(sp10C.y) + SQ(sp10C.z)) > SQ(20.0f)) { Math_ApproachF(&this->actor.world.pos.x, sReelLinePos[LINE_SEG_COUNT - 2].x, 0.2f, - 2.0f * (this->actor.speedXZ * 1.5f)); + 2.0f * (this->actor.speed * 1.5f)); Math_ApproachF(&this->actor.world.pos.y, sReelLinePos[LINE_SEG_COUNT - 2].y, 0.2f, - 2.0f * (this->actor.speedXZ * 1.5f) * 5.0f * 0.1f); + 2.0f * (this->actor.speed * 1.5f) * 5.0f * 0.1f); Math_ApproachF(&this->actor.world.pos.z, sReelLinePos[LINE_SEG_COUNT - 2].z, 0.2f, - 2.0f * (this->actor.speedXZ * 1.5f)); + 2.0f * (this->actor.speed * 1.5f)); } if (CHECK_BTN_ALL(input->cur.button, BTN_A) || (input->rel.stick_y < -30)) { @@ -3814,7 +3814,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { player->unk_860 = 3; Rumble_Override(0.0f, 1, 3, 1); D_80B7E084++; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); D_80B7A6CC = 100; D_80B7FEC8 = 45.0f; D_80B7A694 = 5; @@ -3995,7 +3995,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { D_80B7A898 = 3; } - Math_ApproachF(&this->actor.speedXZ, 5.0f, 1.0f, 1.0f); + Math_ApproachF(&this->actor.speed, 5.0f, 1.0f, 1.0f); if (sp124 < 20.0f) { Math_ApproachS(&this->unk_170, 0x4E20, 2, 0xFA0); @@ -4054,7 +4054,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { spF6 = -0x1F40; } - if (this->actor.speedXZ >= 3.2f) { + if (this->actor.speed >= 3.2f) { Math_ApproachS(&this->unk_16E, spF6, 2, 0x4E20); } else { Math_ApproachS(&this->unk_16E, spF6, 3, 0xBB8); @@ -4088,7 +4088,7 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { Math_ApproachS(&this->unk_162, this->unk_168, spF0, spEE); Math_ApproachS(&this->unk_164, this->unk_16A, spFA, 0x2000); - if (this->actor.speedXZ <= 0.5f) { + if (this->actor.speed <= 0.5f) { Math_ApproachS(&this->actor.shape.rot.x, 0, 10, this->unk_178); Math_ApproachS(&this->unk_178, 0x500, 1, 0x20); } else { @@ -4119,13 +4119,13 @@ void Fishing_UpdateFish(Actor* thisx, PlayState* play2) { if ((this->actor.world.pos.y < WATER_SURFACE_Y(play)) && (this->actor.world.pos.y > (WATER_SURFACE_Y(play) - 10.0f)) && ((this->unk_15C & 1) == 0) && - (this->actor.speedXZ > 0.0f)) { + (this->actor.speed > 0.0f)) { Vec3f pos = this->actor.world.pos; pos.y = WATER_SURFACE_Y(play); Fishing_SpawnRipple(&this->actor.projectedPos, play->specialEffects, &pos, 80.0f, 500.0f, 150, 90); } - if ((this->actor.speedXZ > 0.0f) || (this->unk_158 == 5)) { + if ((this->actor.speed > 0.0f) || (this->unk_158 == 5)) { f32 velocityY = this->actor.velocity.y; spD8 = this->unk_1AC * 0.1f; @@ -5189,7 +5189,7 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { if ((D_80B7E0AC != 0) && (D_80B7A6CC == 0) && (player->actor.world.pos.z > 1360.0f) && (fabsf(player->actor.world.pos.x) < 25.0f)) { player->actor.world.pos.z = 1360.0f; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; if (D_80B7A6D0 == 0) { D_80B7A6CC = 10; @@ -5344,7 +5344,7 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { mainCam->eyeNext = sSubCamEye; mainCam->at = sSubCamAt; Play_ReturnToMainCam(play, sSubCamId, 0); - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); D_80B7A6CC = 0; sSubCamId = SUB_CAM_ID_DONE; Environment_EnableUnderwaterLights(play, 0); @@ -5357,7 +5357,7 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { case 10: { Camera* mainCam; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); sSubCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, sSubCamId, CAM_STAT_ACTIVE); @@ -5377,7 +5377,7 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { case 11: player->actor.world.pos.z = 1360.0f; - player->actor.speedXZ = 0.0f; + player->actor.speed = 0.0f; if (Message_GetState(&play->msgCtx) == TEXT_STATE_NONE) { Camera* mainCam = Play_GetCamera(play, CAM_ID_MAIN); @@ -5386,7 +5386,7 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { mainCam->eyeNext = sSubCamEye; mainCam->at = sSubCamAt; Play_ReturnToMainCam(play, sSubCamId, 0); - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); D_80B7A6CC = 0; sSubCamId = SUB_CAM_ID_DONE; @@ -5399,7 +5399,7 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { case 20: { Camera* mainCam; - func_80064520(play, &play->csCtx); + Cutscene_StartManual(play, &play->csCtx); sSubCamId = Play_CreateSubCamera(play); Play_ChangeCameraStatus(play, CAM_ID_MAIN, CAM_STAT_WAIT); Play_ChangeCameraStatus(play, sSubCamId, CAM_STAT_ACTIVE); @@ -5490,7 +5490,7 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { mainCam->eyeNext = sSubCamEye; mainCam->at = sSubCamAt; Play_ReturnToMainCam(play, sSubCamId, 0); - func_80064534(play, &play->csCtx); + Cutscene_StopManual(play, &play->csCtx); func_8002DF54(play, &this->actor, PLAYER_CSMODE_7); D_80B7A6CC = 0; sSubCamId = SUB_CAM_ID_DONE; @@ -5527,7 +5527,7 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { } if ((player->actor.floorHeight < (WATER_SURFACE_Y(play) - 3.0f)) && - (player->actor.world.pos.y < (player->actor.floorHeight + 3.0f)) && (player->actor.speedXZ > 1.0f) && + (player->actor.world.pos.y < (player->actor.floorHeight + 3.0f)) && (player->actor.speed > 1.0f) && ((play->gameplayFrames % 2) == 0)) { Vec3f pos; @@ -5538,7 +5538,7 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { } if ((player->actor.floorHeight < WATER_SURFACE_Y(play)) && - (player->actor.floorHeight > (WATER_SURFACE_Y(play) - 10.0f)) && (player->actor.speedXZ >= 4.0f) && + (player->actor.floorHeight > (WATER_SURFACE_Y(play) - 10.0f)) && (player->actor.speed >= 4.0f) && ((play->gameplayFrames % 4) == 0)) { s16 i; diff --git a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c index 2850184c78..3d3e699641 100644 --- a/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c +++ b/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c @@ -212,10 +212,10 @@ void func_80B85B28(ItemEtcetera* this, PlayState* play) { } void ItemEtcetera_UpdateFireArrow(ItemEtcetera* this, PlayState* play) { - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[0] != NULL)) { - LOG_NUM("(game_play->demo_play.npcdemopnt[0]->dousa)", play->csCtx.npcActions[0]->action, - "../z_item_etcetera.c", 441); - if (play->csCtx.npcActions[0]->action == 2) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[0] != NULL)) { + LOG_NUM("(game_play->demo_play.npcdemopnt[0]->dousa)", play->csCtx.actorCues[0]->id, "../z_item_etcetera.c", + 441); + if (play->csCtx.actorCues[0]->id == 2) { this->actor.draw = ItemEtcetera_Draw; this->actor.gravity = -0.1f; this->actor.minVelocityY = -4.0f; diff --git a/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c b/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c index 8f10760c82..44e3300df5 100644 --- a/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c +++ b/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c @@ -90,7 +90,7 @@ void ItemOcarina_Fly(ItemOcarina* this, PlayState* play) { } } - if (play->csCtx.frames == 881) { + if (play->csCtx.curFrame == 881) { this->actor.world.pos.x = 250.0f; this->actor.world.pos.y = 60.0f; this->actor.world.pos.z = 1075.0f; @@ -99,7 +99,7 @@ void ItemOcarina_Fly(ItemOcarina* this, PlayState* play) { this->actor.velocity.z = -7.0f; } - if (play->csCtx.frames == 897) { + if (play->csCtx.curFrame == 897) { EffectSsGRipple_Spawn(play, &this->actor.world.pos, 100, 500, 0); EffectSsGSplash_Spawn(play, &this->actor.world.pos, NULL, NULL, 1, 0); this->actor.velocity.x = 0.0f; @@ -112,7 +112,7 @@ void ItemOcarina_Fly(ItemOcarina* this, PlayState* play) { } // landed in water - if (play->csCtx.frames == 906) { + if (play->csCtx.curFrame == 906) { ripplePos.x = 274.0f; ripplePos.y = -60.0f; ripplePos.z = 907.0f; @@ -142,7 +142,7 @@ void func_80B864EC(ItemOcarina* this, PlayState* play) { } } - if (play->csCtx.frames == 220) { + if (play->csCtx.curFrame == 220) { this->actor.world.pos.x = 144.0f; this->actor.world.pos.y = 80.0f; this->actor.world.pos.z = 1686.0f; @@ -168,7 +168,7 @@ void ItemOcarina_DoNothing(ItemOcarina* this, PlayState* play) { void ItemOcarina_StartSoTCutscene(ItemOcarina* this, PlayState* play) { if (Actor_TextboxIsClosing(&this->actor, play)) { - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gHyruleFieldZeldaSongOfTimeCs); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gHyruleFieldZeldaSongOfTimeCs); gSaveContext.cutsceneTrigger = 1; } } diff --git a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c index 434bfcc716..deae7eb69f 100644 --- a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c +++ b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c @@ -130,7 +130,7 @@ void func_80B86BC8(ItemShield* this, PlayState* play) { this->actor.velocity.y = 4.0f; this->actor.minVelocityY = -4.0f; this->actor.gravity = -0.8f; - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->timer = 160; } else { Collider_UpdateCylinder(&this->actor, &this->collider); @@ -205,7 +205,7 @@ void func_80B86F68(ItemShield* this, PlayState* play) { this->actor.gravity = -0.8; this->unk_198 = 0; this->timer = 70; - this->actor.speedXZ = 0; + this->actor.speed = 0; } void ItemShield_Update(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c index fce4027007..df81286693 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -249,7 +249,7 @@ void ObjBean_FollowPath(ObjBean* this, PlayState* play) { f32 sp30; f32 mag; - Math_StepToF(&this->dyna.actor.speedXZ, sBeanSpeeds[this->unk_1F6].velocity, sBeanSpeeds[this->unk_1F6].accel); + Math_StepToF(&this->dyna.actor.speed, sBeanSpeeds[this->unk_1F6].velocity, sBeanSpeeds[this->unk_1F6].accel); path = &play->pathList[(this->dyna.actor.params >> 8) & 0x1F]; nextPathPoint = &((Vec3s*)SEGMENTED_TO_VIRTUAL(path->points))[this->nextPointIndex]; @@ -257,7 +257,7 @@ void ObjBean_FollowPath(ObjBean* this, PlayState* play) { Math_Vec3f_Diff(&pathPointsFloat, &this->pathPoints, &acell); mag = Math3D_Vec3fMagnitude(&acell); - speed = CLAMP_MIN(this->dyna.actor.speedXZ, 0.5f); + speed = CLAMP_MIN(this->dyna.actor.speed, 0.5f); if (speed > mag) { currentPoint = &((Vec3s*)SEGMENTED_TO_VIRTUAL(path->points))[this->currentPointIndex]; @@ -273,12 +273,12 @@ void ObjBean_FollowPath(ObjBean* this, PlayState* play) { Math_Vec3s_DiffToVec3f(&sp40, nextPathPoint, currentPoint); Math_Vec3s_DiffToVec3f(&sp34, sp4C, nextPathPoint); if (Math3D_CosOut(&sp40, &sp34, &sp30)) { - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; } else { - this->dyna.actor.speedXZ *= (sp30 + 1.0f) * 0.5f; + this->dyna.actor.speed *= (sp30 + 1.0f) * 0.5f; } } else { - Math_Vec3f_Scale(&acell, this->dyna.actor.speedXZ / mag); + Math_Vec3f_Scale(&acell, this->dyna.actor.speed / mag); this->pathPoints.x += acell.x; this->pathPoints.y += acell.y; this->pathPoints.z += acell.z; @@ -632,7 +632,7 @@ void ObjBean_SetupWaitForWater(ObjBean* this) { void ObjBean_WaitForWater(ObjBean* this, PlayState* play) { this->transformFunc(this); - if (!(this->stateFlags & BEAN_STATE_BEEN_WATERED) && Flags_GetEnv(play, 5) && (D_80B90E30 == NULL) && + if (!(this->stateFlags & BEAN_STATE_BEEN_WATERED) && CutsceneFlags_Get(play, 5) && (D_80B90E30 == NULL) && (this->dyna.actor.xzDistToPlayer < 50.0f)) { ObjBean_SetupGrowWaterPhase1(this); D_80B90E30 = this; @@ -641,7 +641,7 @@ void ObjBean_WaitForWater(ObjBean* this, PlayState* play) { return; } - if ((D_80B90E30 == this) && !Flags_GetEnv(play, 5)) { + if ((D_80B90E30 == this) && !CutsceneFlags_Get(play, 5)) { D_80B90E30 = NULL; if (D_80B90E30) {} } @@ -764,7 +764,7 @@ void ObjBean_WaitForPlayer(ObjBean* this, PlayState* play) { void ObjBean_SetupFly(ObjBean* this) { this->actionFunc = ObjBean_Fly; ObjBean_SetDrawMode(this, BEAN_STATE_DRAW_PLANT); - this->dyna.actor.speedXZ = 0.0f; + this->dyna.actor.speed = 0.0f; this->dyna.actor.flags |= ACTOR_FLAG_4; // Never stop updating } diff --git a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c index 6d21732974..de87dacecc 100644 --- a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c +++ b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c @@ -71,55 +71,64 @@ void ObjDekujr_Init(Actor* thisx, PlayState* play) { void ObjDekujr_Destroy(Actor* thisx, PlayState* play) { } -void ObjDekujr_SetInitialPos(CsCmdActorAction* npcAction, Vec3f* initPos) { - initPos->x = npcAction->startPos.x; - initPos->y = npcAction->startPos.y; - initPos->z = npcAction->startPos.z; +void ObjDekujr_GetCueStartPos(CsCmdActorCue* cue, Vec3f* dest) { + dest->x = cue->startPos.x; + dest->y = cue->startPos.y; + dest->z = cue->startPos.z; } -void ObjDekujr_SetFinalPos(CsCmdActorAction* npcAction, Vec3f* finalPos) { - finalPos->x = npcAction->endPos.x; - finalPos->y = npcAction->endPos.y; - finalPos->z = npcAction->endPos.z; +void ObjDekujr_GetCueEndPos(CsCmdActorCue* cue, Vec3f* dest) { + dest->x = cue->endPos.x; + dest->y = cue->endPos.y; + dest->z = cue->endPos.z; } void ObjDekujr_ComeUp(ObjDekujr* this, PlayState* play) { - CsCmdActorAction* csCmdNPCAction; + CsCmdActorCue* cue; Vec3f initPos; Vec3f finalPos; Vec3f velocity = { 0.0f, 0.0f, 0.0f }; - f32 actionLength; + f32 cueDuration; f32 gravity; if (play->csCtx.state == CS_STATE_IDLE) { this->unk_19C = 2; this->unk_19B = 0; } else { - if (play->csCtx.frames == 351) { + if (play->csCtx.curFrame == 351) { Actor_PlaySfx(&this->actor, NA_SE_EV_COME_UP_DEKU_JR); } - csCmdNPCAction = play->csCtx.npcActions[1]; - if (csCmdNPCAction != NULL) { - ObjDekujr_SetInitialPos(csCmdNPCAction, &initPos); - ObjDekujr_SetFinalPos(csCmdNPCAction, &finalPos); + + cue = play->csCtx.actorCues[1]; + + if (cue != NULL) { + ObjDekujr_GetCueStartPos(cue, &initPos); + ObjDekujr_GetCueEndPos(cue, &finalPos); + if (this->unk_19C == 0) { this->actor.world.pos = initPos; this->unk_19C = 1; } - this->actor.shape.rot.x = csCmdNPCAction->urot.x; - this->actor.shape.rot.y = csCmdNPCAction->urot.y; - this->actor.shape.rot.z = csCmdNPCAction->urot.z; + + this->actor.shape.rot.x = cue->rot.x; + this->actor.shape.rot.y = cue->rot.y; + this->actor.shape.rot.z = cue->rot.z; + this->actor.velocity = velocity; - if (csCmdNPCAction->endFrame >= play->csCtx.frames) { - actionLength = csCmdNPCAction->endFrame - csCmdNPCAction->startFrame; - this->actor.velocity.x = (finalPos.x - initPos.x) / actionLength; + + if (cue->endFrame >= play->csCtx.curFrame) { + cueDuration = cue->endFrame - cue->startFrame; + + this->actor.velocity.x = (finalPos.x - initPos.x) / cueDuration; gravity = this->actor.gravity; - this->actor.velocity.y = (finalPos.y - initPos.y) / actionLength; + this->actor.velocity.y = (finalPos.y - initPos.y) / cueDuration; this->actor.velocity.y += gravity; + if (this->actor.velocity.y < this->actor.minVelocityY) { this->actor.velocity.y = this->actor.minVelocityY; } - this->actor.velocity.z = (finalPos.z - initPos.z) / actionLength; + + this->actor.velocity.z = (finalPos.z - initPos.z) / cueDuration; } } } diff --git a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c index 5b412818fa..07da586e12 100644 --- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c +++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c @@ -226,7 +226,7 @@ void ObjKibako_SetupHeld(ObjKibako* this) { void ObjKibako_Held(ObjKibako* this, PlayState* play) { if (Actor_HasNoParent(&this->actor, play)) { this->actor.room = play->roomCtx.curRoom.num; - if (fabsf(this->actor.speedXZ) < 0.1f) { + if (fabsf(this->actor.speed) < 0.1f) { Actor_PlaySfx(&this->actor, NA_SE_EV_PUT_DOWN_WOODBOX); ObjKibako_SetupIdle(this); this->collider.base.ocFlags1 &= ~OC1_TYPE_PLAYER; @@ -240,8 +240,8 @@ void ObjKibako_Held(ObjKibako* this, PlayState* play) { } void ObjKibako_SetupThrown(ObjKibako* this) { - this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speedXZ; - this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speedXZ; + this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speed; + this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speed; this->actor.colChkInfo.mass = 240; this->actionFunc = ObjKibako_Thrown; } diff --git a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c index 216fbbab30..e0867fc0c9 100644 --- a/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c +++ b/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c @@ -171,7 +171,7 @@ s32 ObjTimeblock_WaitForOcarina(ObjTimeblock* this, PlayState* play) { if (ObjTimeblock_PlayerIsInRange(this, play)) { if (player->stateFlags2 & PLAYER_STATE2_24) { - func_8010BD58(play, OCARINA_ACTION_FREE_PLAY); + Message_StartOcarina(play, OCARINA_ACTION_FREE_PLAY); this->songObserverFunc = ObjTimeblock_WaitForSong; } else { player->stateFlags2 |= PLAYER_STATE2_23; diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c index fb25414121..50ffebcb94 100644 --- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c +++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c @@ -292,8 +292,8 @@ void ObjTsubo_LiftedUp(ObjTsubo* this, PlayState* play) { } void ObjTsubo_SetupThrown(ObjTsubo* this) { - this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speedXZ; - this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speedXZ; + this->actor.velocity.x = Math_SinS(this->actor.world.rot.y) * this->actor.speed; + this->actor.velocity.z = Math_CosS(this->actor.world.rot.y) * this->actor.speed; this->actor.colChkInfo.mass = 240; D_80BA1B50 = (Rand_ZeroOne() - 0.7f) * 2800.0f; D_80BA1B58 = (Rand_ZeroOne() - 0.5f) * 2000.0f; diff --git a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c index f400b1f550..de519b1c52 100644 --- a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c +++ b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c @@ -158,7 +158,7 @@ s32 func_80BA2218(ObjWarp2block* this, PlayState* play) { if (func_80BA1ECC(this, play)) { if (player->stateFlags2 & PLAYER_STATE2_24) { - func_8010BD58(play, OCARINA_ACTION_FREE_PLAY); + Message_StartOcarina(play, OCARINA_ACTION_FREE_PLAY); this->func_168 = func_80BA228C; } else { player->stateFlags2 |= PLAYER_STATE2_23; diff --git a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c index 8e71cf9357..11bd9849b4 100644 --- a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c +++ b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c @@ -204,7 +204,7 @@ void ObjectKankyo_Fairies(ObjectKankyo* this, PlayState* play) { } func_800F436C(&sSfxPos, NA_SE_EV_NAVY_FLY - SFX_FLAG, (0.4f * dist) + 0.6f); - switch (play->csCtx.frames) { + switch (play->csCtx.curFrame) { case 473: func_800788CC(NA_SE_VO_NA_HELLO_3); break; @@ -722,11 +722,11 @@ void ObjectKankyo_DrawSnow(Actor* thisx, PlayState* play2) { } void ObjectKankyo_Lightning(ObjectKankyo* this, PlayState* play) { - if (play->csCtx.state != 0 && play->csCtx.npcActions[0] != NULL) { + if (play->csCtx.state != 0 && play->csCtx.actorCues[0] != NULL) { switch (this->effects[0].state) { case 0: this->effects[0].timer = 0; - if (play->csCtx.npcActions[0]->action == 2) { + if (play->csCtx.actorCues[0]->id == 2) { this->effects[0].state++; } break; @@ -738,7 +738,7 @@ void ObjectKankyo_Lightning(ObjectKankyo* this, PlayState* play) { break; case 2: - if (play->csCtx.npcActions[0]->action == 1) { + if (play->csCtx.actorCues[0]->id == 1) { this->effects[0].state = 0; } break; @@ -756,8 +756,8 @@ void ObjectKankyo_DrawLightning(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_object_kankyo.c", 1182); if (this->effects[0].state == 1) { - Matrix_Translate(play->csCtx.npcActions[0]->startPos.x, play->csCtx.npcActions[0]->startPos.y, - play->csCtx.npcActions[0]->startPos.z, MTXMODE_NEW); + Matrix_Translate(play->csCtx.actorCues[0]->startPos.x, play->csCtx.actorCues[0]->startPos.y, + play->csCtx.actorCues[0]->startPos.z, MTXMODE_NEW); Matrix_RotateX(DEG_TO_RAD(20), MTXMODE_APPLY); Matrix_RotateZ(DEG_TO_RAD(20), MTXMODE_APPLY); Matrix_Scale(2.0f, 5.0f, 2.0f, MTXMODE_APPLY); @@ -798,7 +798,7 @@ void ObjectKankyo_WaitForSunGraveSparkObject(ObjectKankyo* this, PlayState* play void ObjectKankyo_SunGraveSpark(ObjectKankyo* this, PlayState* play) { if (play->csCtx.state != 0) { - if (play->csCtx.npcActions[1] != NULL && play->csCtx.npcActions[1]->action == 2) { + if (play->csCtx.actorCues[1] != NULL && play->csCtx.actorCues[1]->id == 2) { Actor_PlaySfx(&this->actor, NA_SE_EN_BIRI_SPARK - SFX_FLAG); if ((s16)this->effects[0].alpha + 20 > 255) { this->effects[0].alpha = 255; @@ -819,7 +819,7 @@ void ObjectKankyo_DrawSunGraveSpark(Actor* thisx, PlayState* play2) { OPEN_DISPS(play->state.gfxCtx, "../z_object_kankyo.c", 1324); if (play->csCtx.state != 0) { - if (play->csCtx.npcActions[1] != NULL && play->csCtx.npcActions[1]->action == 2 && this->requiredObjectLoaded) { + if (play->csCtx.actorCues[1] != NULL && play->csCtx.actorCues[1]->id == 2 && this->requiredObjectLoaded) { // apparently, light waves with larger amplitudes look brighter, so the name 'amplitude' kind of works here if (this->effects[0].state == 0) { this->effects[0].amplitude += 1.0f / 7.0f; @@ -839,16 +839,16 @@ void ObjectKankyo_DrawSunGraveSpark(Actor* thisx, PlayState* play2) { this->effects[0].timer = 0; } - start.x = play->csCtx.npcActions[1]->startPos.x; - start.y = play->csCtx.npcActions[1]->startPos.y; - start.z = play->csCtx.npcActions[1]->startPos.z; + start.x = play->csCtx.actorCues[1]->startPos.x; + start.y = play->csCtx.actorCues[1]->startPos.y; + start.z = play->csCtx.actorCues[1]->startPos.z; - end.x = play->csCtx.npcActions[1]->endPos.x; - end.y = play->csCtx.npcActions[1]->endPos.y; - end.z = play->csCtx.npcActions[1]->endPos.z; + end.x = play->csCtx.actorCues[1]->endPos.x; + end.y = play->csCtx.actorCues[1]->endPos.y; + end.z = play->csCtx.actorCues[1]->endPos.z; - weight = Environment_LerpWeight(play->csCtx.npcActions[1]->endFrame, play->csCtx.npcActions[1]->startFrame, - play->csCtx.frames); + weight = Environment_LerpWeight(play->csCtx.actorCues[1]->endFrame, play->csCtx.actorCues[1]->startFrame, + play->csCtx.curFrame); Matrix_Translate(LERP(start.x, end.x, weight), LERP(start.y, end.y, weight), LERP(start.z, end.z, weight), MTXMODE_NEW); Matrix_Scale(this->effects[0].size, this->effects[0].size, this->effects[0].size, MTXMODE_APPLY); @@ -898,7 +898,7 @@ void ObjectKankyo_Beams(ObjectKankyo* this, PlayState* play) { if (play->csCtx.state != 0) { for (i = 0; i < 6; i++) { - if (play->csCtx.npcActions[i + 1] != NULL && play->csCtx.npcActions[i + 1]->action == 2) { + if (play->csCtx.actorCues[i + 1] != NULL && play->csCtx.actorCues[i + 1]->id == 2) { if (this->effects[i].size == 0.1f) { Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_TRIAL_DESTROY); } diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c index e6c66a39de..3c757e9a67 100644 --- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c +++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c @@ -80,7 +80,8 @@ void OceffSpot_End(OceffSpot* this, PlayState* play) { this->unk_174 -= 0.05f; } else { Actor_Kill(&this->actor); - if (gTimeSpeed != 400 && play->msgCtx.unk_E40E == 0 && GET_EVENTINF_HORSES_STATE() != EVENTINF_HORSES_STATE_1) { + if (gTimeSpeed != 400 && !play->msgCtx.disableSunsSong && + GET_EVENTINF_HORSES_STATE() != EVENTINF_HORSES_STATE_1) { if (play->msgCtx.ocarinaAction != OCARINA_ACTION_CHECK_NOWARP_DONE || play->msgCtx.ocarinaMode != OCARINA_MODE_08) { gSaveContext.sunsSongState = SUNSSONG_START; diff --git a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c index fb7cbe0174..ebea8492a7 100644 --- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c +++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c @@ -142,7 +142,7 @@ void ShotSun_UpdateFairySpawner(ShotSun* this, PlayState* play) { } } if (this->fairySpawnerState == SPAWNER_OCARINA_START) { - func_8010BD58(play, OCARINA_ACTION_FREE_PLAY); + Message_StartOcarina(play, OCARINA_ACTION_FREE_PLAY); this->fairySpawnerState = SPAWNER_OCARINA_PLAYING; } else if (this->fairySpawnerState == SPAWNER_OCARINA_PLAYING && play->msgCtx.ocarinaMode == OCARINA_MODE_04) { if ((params == 0x40 && play->msgCtx.lastPlayedSong == OCARINA_SONG_SUNS) || @@ -170,7 +170,7 @@ void ShotSun_UpdateHyliaSun(ShotSun* this, PlayState* play) { osSyncPrintf(VT_FGCOL(CYAN) "SHOT_SUN HIT!!!!!!!\n" VT_RST); if (INV_CONTENT(ITEM_ARROW_FIRE) == ITEM_NONE) { Actor_Spawn(&play->actorCtx, play, ACTOR_ITEM_ETCETERA, 700.0f, -800.0f, 7261.0f, 0, 0, 0, 7); - play->csCtx.segment = SEGMENTED_TO_VIRTUAL(gLakeHyliaFireArrowsCS); + play->csCtx.script = SEGMENTED_TO_VIRTUAL(gLakeHyliaFireArrowsCS); if (1) {} gSaveContext.cutsceneTrigger = 1; } else { @@ -181,7 +181,7 @@ void ShotSun_UpdateHyliaSun(ShotSun* this, PlayState* play) { collectible = Item_DropCollectible(play, &spawnPos, ITEM00_MAGIC_LARGE); if (collectible != NULL) { collectible->despawnTimer = 6000; - collectible->actor.speedXZ = 0.0f; + collectible->actor.speed = 0.0f; } } Actor_Kill(&this->actor); diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index d886925c6c..fbc2a3346c 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -110,7 +110,7 @@ typedef struct { /* 0x00 */ s8 type; /* 0x04 */ union { void* ptr; - void (*func)(PlayState*, Player*, CsCmdActorAction*); + void (*func)(PlayState*, Player*, CsCmdActorCue*); }; } struct_80854B18; // size = 0x08 @@ -283,62 +283,62 @@ void func_808511FC(PlayState* play, Player* this, void* anim); void func_80851248(PlayState* play, Player* this, void* anim); void func_80851294(PlayState* play, Player* this, void* anim); void func_808512E0(PlayState* play, Player* this, void* arg2); -void func_80851368(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808513BC(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808514C0(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_8085157C(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808515A4(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851688(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851750(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851788(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851828(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808518DC(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_8085190C(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851998(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808519C0(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808519EC(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851A50(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851B90(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851BE8(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851CA4(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851D2C(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851D80(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851DEC(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851E28(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851E64(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851E90(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851ECC(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851F84(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80851FB0(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852048(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852080(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852174(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808521B8(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808521F4(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852234(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_8085225C(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852280(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852358(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852388(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852298(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852328(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852480(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852450(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808524B0(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808524D0(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852514(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852544(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852554(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852564(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808525C0(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852608(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852648(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808526EC(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_8085283C(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808528C8(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852944(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_808529D0(PlayState* play, Player* this, CsCmdActorAction* arg2); -void func_80852C50(PlayState* play, Player* this, CsCmdActorAction* arg2); +void func_80851368(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808513BC(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808514C0(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_8085157C(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808515A4(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851688(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851750(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851788(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851828(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808518DC(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_8085190C(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851998(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808519C0(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808519EC(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851A50(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851B90(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851BE8(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851CA4(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851D2C(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851D80(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851DEC(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851E28(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851E64(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851E90(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851ECC(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851F84(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80851FB0(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852048(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852080(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852174(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808521B8(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808521F4(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852234(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_8085225C(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852280(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852358(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852388(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852298(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852328(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852480(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852450(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808524B0(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808524D0(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852514(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852544(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852554(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852564(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808525C0(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852608(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852648(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808526EC(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_8085283C(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808528C8(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852944(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_808529D0(PlayState* play, Player* this, CsCmdActorCue* cue); +void func_80852C50(PlayState* play, Player* this, CsCmdActorCue* cue); void func_80852E14(Player* this, PlayState* play); s32 Player_IsDroppingFish(PlayState* play); s32 Player_StartFishing(PlayState* play); @@ -1574,7 +1574,7 @@ static LinkAnimationHeader* D_808543D4[] = { // return type can't be void due to regalloc in func_8084FCAC BAD_RETURN(s32) func_80832210(Player* this) { - this->actor.speedXZ = 0.0f; + this->actor.speed = 0.0f; this->linearVelocity = 0.0f; } @@ -3916,14 +3916,14 @@ void func_80837C0C(PlayState* play, Player* this, s32 arg2, f32 arg3, f32 arg4, if (arg2 == 2) { this->unk_850 = 4; - this->actor.speedXZ = 3.0f; + this->actor.speed = 3.0f; this->linearVelocity = 3.0f; this->actor.velocity.y = 6.0f; func_80832C2C(play, this, GET_PLAYER_ANIM(PLAYER_ANIMGROUP_damage_run, this->modelAnimType)); func_80832698(this, NA_SE_VO_LI_DAMAGE_S); } else { - this->actor.speedXZ = arg3; + this->actor.speed = arg3; this->linearVelocity = arg3; this->actor.velocity.y = arg4; @@ -4083,7 +4083,7 @@ s32 func_808382DC(Player* this, PlayState* play) { } func_80832698(this, NA_SE_VO_LI_TAKEN_AWAY); - play->unk_11DE9 = true; + play->haltAllActors = true; func_80078884(NA_SE_OC_ABYSS); } else if ((this->unk_8A1 != 0) && ((this->unk_8A1 >= 2) || (this->invincibilityTimer == 0))) { u8 sp5C[] = { 2, 1, 1 }; @@ -8530,7 +8530,7 @@ void func_8084409C(PlayState* play, Player* this, f32 speedXZ, f32 velocityY) { if (!func_80835644(play, this, heldActor)) { heldActor->world.rot.y = this->actor.shape.rot.y; - heldActor->speedXZ = speedXZ; + heldActor->speed = speedXZ; heldActor->velocity.y = velocityY; func_80834644(play, this); Player_PlaySfx(this, NA_SE_PL_THROW); @@ -9094,24 +9094,24 @@ void func_808458D0(Player* this, PlayState* play) { } } -s32 func_80845964(PlayState* play, Player* this, CsCmdActorAction* arg2, f32 arg3, s16 arg4, s32 arg5) { +s32 func_80845964(PlayState* play, Player* this, CsCmdActorCue* cue, f32 arg3, s16 arg4, s32 arg5) { if ((arg5 != 0) && (this->linearVelocity == 0.0f)) { return LinkAnimation_Update(play, &this->skelAnime); } if (arg5 != 2) { f32 sp34 = R_UPDATE_RATE * 0.5f; - f32 selfDistX = arg2->endPos.x - this->actor.world.pos.x; - f32 selfDistZ = arg2->endPos.z - this->actor.world.pos.z; + f32 selfDistX = cue->endPos.x - this->actor.world.pos.x; + f32 selfDistZ = cue->endPos.z - this->actor.world.pos.z; f32 sp28 = sqrtf(SQ(selfDistX) + SQ(selfDistZ)) / sp34; - s32 sp24 = (arg2->endFrame - play->csCtx.frames) + 1; + s32 sp24 = (cue->endFrame - play->csCtx.curFrame) + 1; arg4 = Math_Atan2S(selfDistZ, selfDistX); if (arg5 == 1) { - f32 distX = arg2->endPos.x - arg2->startPos.x; - f32 distZ = arg2->endPos.z - arg2->startPos.z; - s32 temp = (((sqrtf(SQ(distX) + SQ(distZ)) / sp34) / (arg2->endFrame - arg2->startFrame)) / 1.5f) * 4.0f; + f32 distX = cue->endPos.x - cue->startPos.x; + f32 distZ = cue->endPos.z - cue->startPos.z; + s32 temp = (((sqrtf(SQ(distX) + SQ(distZ)) / sp34) / (cue->endFrame - cue->startFrame)) / 1.5f) * 4.0f; if (temp >= sp24) { arg4 = this->actor.shape.rot.y; @@ -9307,7 +9307,7 @@ void func_80846120(Player* this, PlayState* play) { if (LinkAnimation_OnFrame(&this->skelAnime, 229.0f)) { Actor* heldActor = this->heldActor; - heldActor->speedXZ = Math_SinS(heldActor->shape.rot.x) * 40.0f; + heldActor->speed = Math_SinS(heldActor->shape.rot.x) * 40.0f; heldActor->velocity.y = Math_CosS(heldActor->shape.rot.x) * 40.0f; heldActor->gravity = -2.0f; heldActor->minVelocityY = -30.0f; @@ -9358,7 +9358,7 @@ void func_80846358(Player* this, PlayState* play) { Actor* heldActor = this->heldActor; heldActor->world.rot.y = this->actor.shape.rot.y; - heldActor->speedXZ = 10.0f; + heldActor->speed = 10.0f; heldActor->velocity.y = 20.0f; func_80834644(play, this); Player_PlaySfx(this, NA_SE_PL_THROW); @@ -9396,7 +9396,7 @@ void func_808464B0(Player* this, PlayState* play) { if (!func_80835644(play, this, heldActor)) { heldActor->velocity.y = 0.0f; - heldActor->speedXZ = 0.0f; + heldActor->speed = 0.0f; func_80834644(play, this); if (heldActor->id == ACTOR_EN_BOM_CHU) { func_8083B8F4(this, play); @@ -10282,7 +10282,7 @@ void Player_UpdateCamAndSeqModes(PlayState* play, Player* this) { } else { camMode = CAM_MODE_NORMAL; if ((this->linearVelocity == 0.0f) && - (!(this->stateFlags1 & PLAYER_STATE1_23) || (this->rideActor->speedXZ == 0.0f))) { + (!(this->stateFlags1 & PLAYER_STATE1_23) || (this->rideActor->speed == 0.0f))) { // not moving seqMode = SEQ_MODE_STILL; } @@ -10606,29 +10606,29 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { s16 yawDiff = this->actor.world.rot.y - sp6E; s32 pad; - if ((ABS(yawDiff) > 0x6000) && (this->actor.speedXZ != 0.0f)) { + if ((ABS(yawDiff) > 0x6000) && (this->actor.speed != 0.0f)) { sp70 = 0.0f; sp6E += 0x8000; } - if (Math_StepToF(&this->actor.speedXZ, sp70, 0.35f) && (sp70 == 0.0f)) { + if (Math_StepToF(&this->actor.speed, sp70, 0.35f) && (sp70 == 0.0f)) { this->actor.world.rot.y = this->currentYaw; } if (this->linearVelocity != 0.0f) { s32 phi_v0; - phi_v0 = (fabsf(this->linearVelocity) * 700.0f) - (fabsf(this->actor.speedXZ) * 100.0f); + phi_v0 = (fabsf(this->linearVelocity) * 700.0f) - (fabsf(this->actor.speed) * 100.0f); phi_v0 = CLAMP(phi_v0, 0, 1350); Math_ScaledStepToS(&this->actor.world.rot.y, sp6E, phi_v0); } - if ((this->linearVelocity == 0.0f) && (this->actor.speedXZ != 0.0f)) { - func_800F4138(&this->actor.projectedPos, 0xD0, this->actor.speedXZ); + if ((this->linearVelocity == 0.0f) && (this->actor.speed != 0.0f)) { + func_800F4138(&this->actor.projectedPos, 0xD0, this->actor.speed); } } else { - this->actor.speedXZ = this->linearVelocity; + this->actor.speed = this->linearVelocity; this->actor.world.rot.y = this->currentYaw; } @@ -10725,13 +10725,13 @@ void Player_UpdateCommon(Player* this, PlayState* play, Input* input) { if ((play->csCtx.state != CS_STATE_IDLE) && (this->csMode != PLAYER_CSMODE_6) && !(this->stateFlags1 & PLAYER_STATE1_23) && !(this->stateFlags2 & PLAYER_STATE2_7) && (this->actor.category == ACTORCAT_PLAYER)) { - CsCmdActorAction* linkActionCsCmd = play->csCtx.linkAction; + CsCmdActorCue* cue = play->csCtx.playerCue; - if ((linkActionCsCmd != NULL) && (D_808547C4[linkActionCsCmd->action] != PLAYER_CSMODE_NONE)) { + if ((cue != NULL) && (D_808547C4[cue->id] != PLAYER_CSMODE_NONE)) { func_8002DF54(play, NULL, PLAYER_CSMODE_6); func_80832210(this); } else if ((this->csMode == PLAYER_CSMODE_NONE) && !(this->stateFlags2 & PLAYER_STATE2_10) && - (play->csCtx.state != CS_STATE_UNSKIPPABLE_INIT)) { + (play->csCtx.state != CS_STATE_STOP)) { func_8002DF54(play, NULL, PLAYER_CSMODE_49); func_80832210(this); } @@ -12058,7 +12058,7 @@ void func_8084CC98(Player* this, PlayState* play) { this->currentYaw = this->actor.shape.rot.y = rideActor->actor.shape.rot.y; if ((this->csMode != PLAYER_CSMODE_NONE) || - (!func_8083224C(play) && ((rideActor->actor.speedXZ != 0.0f) || !func_8083B644(this, play)) && + (!func_8083224C(play) && ((rideActor->actor.speed != 0.0f) || !func_8083B644(this, play)) && !func_8083C1DC(this, play))) { if (D_808535E0 == 0) { if (this->unk_84F != 0) { @@ -12529,7 +12529,7 @@ void func_8084E3C4(Player* this, PlayState* play) { if (this->stateFlags2 & (PLAYER_STATE2_23 | PLAYER_STATE2_25)) { this->stateFlags2 |= PLAYER_STATE2_24; } else { - func_8010BD58(play, OCARINA_ACTION_FREE_PLAY); + Message_StartOcarina(play, OCARINA_ACTION_FREE_PLAY); } return; } @@ -12971,7 +12971,7 @@ void func_8084F390(Player* this, PlayState* play) { this->stateFlags2 |= PLAYER_STATE2_5 | PLAYER_STATE2_6; LinkAnimation_Update(play, &this->skelAnime); func_8084269C(play, this); - func_800F4138(&this->actor.projectedPos, NA_SE_PL_SLIP_LEVEL - SFX_FLAG, this->actor.speedXZ); + func_800F4138(&this->actor.projectedPos, NA_SE_PL_SLIP_LEVEL - SFX_FLAG, this->actor.speed); if (func_8083B040(this, play) == 0) { floorPoly = this->actor.floorPoly; @@ -13039,7 +13039,7 @@ void func_8084F698(Player* this, PlayState* play) { void func_8084F710(Player* this, PlayState* play) { s32 pad; - if ((this->unk_84F != 0) && (play->csCtx.frames < 0x131)) { + if ((this->unk_84F != 0) && (play->csCtx.curFrame < 0x131)) { this->actor.gravity = 0.0f; this->actor.velocity.y = 0.0f; } else if (D_80853600 < 150.0f) { @@ -13064,9 +13064,9 @@ void func_8084F710(Player* this, PlayState* play) { return; } - if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.linkAction != NULL)) { + if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.playerCue != NULL)) { f32 sp28 = this->actor.world.pos.y; - func_808529D0(play, this, play->csCtx.linkAction); + func_808529D0(play, this, play->csCtx.playerCue); this->actor.world.pos.y = sp28; } } @@ -13268,8 +13268,8 @@ void func_8085002C(Player* this) { sp26 = this->actor.world.rot.y - this->actor.shape.rot.y; - sp28 = (s32)(this->actor.speedXZ * -200.0f * Math_CosS(sp26) * (Rand_CenteredFloat(2.0f) + 10.0f)) & 0xFFFF; - sp2A = (s32)(this->actor.speedXZ * 100.0f * Math_SinS(sp26) * (Rand_CenteredFloat(2.0f) + 10.0f)) & 0xFFFF; + sp28 = (s32)(this->actor.speed * -200.0f * Math_CosS(sp26) * (Rand_CenteredFloat(2.0f) + 10.0f)) & 0xFFFF; + sp2A = (s32)(this->actor.speed * 100.0f * Math_SinS(sp26) * (Rand_CenteredFloat(2.0f) + 10.0f)) & 0xFFFF; D_80858AC8.unk_06 += sp28 >> 2; D_80858AC8.unk_08 += sp2A >> 2; @@ -13983,7 +13983,7 @@ void func_80851314(Player* this) { } } -void func_80851368(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851368(PlayState* play, Player* this, CsCmdActorCue* cue) { this->stateFlags1 |= PLAYER_STATE1_27; this->stateFlags2 |= PLAYER_STATE2_10; this->stateFlags1 &= ~(PLAYER_STATE1_18 | PLAYER_STATE1_19); @@ -13991,7 +13991,7 @@ void func_80851368(PlayState* play, Player* this, CsCmdActorAction* arg2) { func_80832284(play, this, &gPlayerAnim_link_swimer_swim); } -void func_808513BC(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808513BC(PlayState* play, Player* this, CsCmdActorCue* cue) { this->actor.gravity = 0.0f; if (this->unk_84F == 0) { @@ -14017,7 +14017,7 @@ void func_808513BC(PlayState* play, Player* this, CsCmdActorAction* arg2) { func_8084AEEC(this, &this->linearVelocity, 0.0f, this->actor.shape.rot.y); } -void func_808514C0(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808514C0(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80851314(this); if (func_808332B8(this)) { @@ -14037,11 +14037,11 @@ void func_808514C0(PlayState* play, Player* this, CsCmdActorAction* arg2) { } } -void func_8085157C(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_8085157C(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); } -void func_808515A4(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808515A4(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimationHeader* anim; if (func_808332B8(this)) { @@ -14051,7 +14051,7 @@ void func_808515A4(PlayState* play, Player* this, CsCmdActorAction* arg2) { anim = GET_PLAYER_ANIM(PLAYER_ANIMGROUP_nwait, this->modelAnimType); - if ((this->unk_446 == 6) || (this->unk_446 == 0x2E)) { + if ((this->cueId == 6) || (this->cueId == 0x2E)) { func_80832264(play, this, anim); } else { func_80832DB0(this); @@ -14062,7 +14062,7 @@ void func_808515A4(PlayState* play, Player* this, CsCmdActorAction* arg2) { func_80832210(this); } -void func_80851688(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851688(PlayState* play, Player* this, CsCmdActorCue* cue) { if (func_8084B3CC(play, this) == 0) { if ((this->csMode == PLAYER_CSMODE_49) && (play->csCtx.state == CS_STATE_IDLE)) { func_8002DF54(play, NULL, PLAYER_CSMODE_7); @@ -14087,12 +14087,12 @@ static struct_80832924 D_80855188[] = { { 0, -0x3030 }, }; -void func_80851750(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851750(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); func_80832924(this, D_80855188); } -void func_80851788(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851788(PlayState* play, Player* this, CsCmdActorCue* cue) { this->stateFlags1 &= ~PLAYER_STATE1_25; this->currentYaw = this->actor.shape.rot.y = this->actor.world.rot.y = @@ -14105,7 +14105,7 @@ void func_80851788(PlayState* play, Player* this, CsCmdActorAction* arg2) { } } -void func_80851828(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851828(PlayState* play, Player* this, CsCmdActorCue* cue) { f32 sp1C = 2.5f; func_80845BA0(play, this, &sp1C, 10); @@ -14128,11 +14128,11 @@ void func_80851828(PlayState* play, Player* this, CsCmdActorAction* arg2) { } } -void func_808518DC(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808518DC(PlayState* play, Player* this, CsCmdActorCue* cue) { func_8083CEAC(this, play); } -void func_8085190C(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_8085190C(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80851314(this); if (this->unk_850 != 0) { @@ -14147,12 +14147,12 @@ void func_8085190C(PlayState* play, Player* this, CsCmdActorAction* arg2) { } } -void func_80851998(PlayState* play, Player* this, CsCmdActorAction* arg2) { - func_80845964(play, this, arg2, 0.0f, 0, 0); +void func_80851998(PlayState* play, Player* this, CsCmdActorCue* cue) { + func_80845964(play, this, cue, 0.0f, 0, 0); } -void func_808519C0(PlayState* play, Player* this, CsCmdActorAction* arg2) { - func_80845964(play, this, arg2, 0.0f, 0, 1); +void func_808519C0(PlayState* play, Player* this, CsCmdActorCue* cue) { + func_80845964(play, this, cue, 0.0f, 0, 1); } // unused @@ -14163,7 +14163,7 @@ static LinkAnimationHeader* D_80855190[] = { static Vec3f D_80855198 = { -1.0f, 70.0f, 20.0f }; -void func_808519EC(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808519EC(PlayState* play, Player* this, CsCmdActorCue* cue) { Math_Vec3f_Copy(&this->actor.world.pos, &D_80855198); this->actor.shape.rot.y = -0x8000; func_808322D0(play, this, this->ageProperties->unk_9C); @@ -14180,7 +14180,7 @@ static struct_80832924 D_808551AC[] = { { 0, -0x4027 }, }; -void func_80851A50(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851A50(PlayState* play, Player* this, CsCmdActorCue* cue) { struct_808551A4* sp2C; Gfx** dLists; @@ -14211,7 +14211,7 @@ void func_80851A50(PlayState* play, Player* this, CsCmdActorAction* arg2) { } } -void func_80851B90(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851B90(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Change(play, &this->skelAnime, &gPlayerAnim_link_demo_warp, -(2.0f / 3.0f), 12.0f, 12.0f, ANIMMODE_ONCE, 0.0f); } @@ -14220,7 +14220,7 @@ static struct_80832924 D_808551B4[] = { { 0, -0x281E }, }; -void func_80851BE8(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851BE8(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); this->unk_850++; @@ -14234,7 +14234,7 @@ void func_80851BE8(PlayState* play, Player* this, CsCmdActorAction* arg2) { } } -void func_80851CA4(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851CA4(PlayState* play, Player* this, CsCmdActorCue* cue) { if (LinkAnimation_Update(play, &this->skelAnime) && (this->unk_850 == 0) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { func_80832264(play, this, &gPlayerAnim_link_normal_back_downB); @@ -14246,7 +14246,7 @@ void func_80851CA4(PlayState* play, Player* this, CsCmdActorAction* arg2) { } } -void func_80851D2C(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851D2C(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80850F1C(play, this, &gPlayerAnim_link_normal_okarina_start); func_8084B498(this); Player_SetModels(this, Player_ActionToModelGroup(this, this->itemAction)); @@ -14256,7 +14256,7 @@ static struct_80832924 D_808551B8[] = { { NA_SE_IT_SWORD_PICKOUT, -0x80C }, }; -void func_80851D80(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851D80(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); if (LinkAnimation_OnFrame(&this->skelAnime, 6.0f)) { @@ -14266,26 +14266,26 @@ void func_80851D80(PlayState* play, Player* this, CsCmdActorAction* arg2) { } } -void func_80851DEC(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851DEC(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); Math_StepToS(&this->actor.shape.face, 0, 1); } -void func_80851E28(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851E28(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); Math_StepToS(&this->actor.shape.face, 2, 1); } -void func_80851E64(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851E64(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80833064(play, this, &gPlayerAnim_link_swimer_swim_get, 0x98); } -void func_80851E90(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851E90(PlayState* play, Player* this, CsCmdActorCue* cue) { func_8083303C(play, this, &gPlayerAnim_clink_op3_negaeri, 0x9C); func_80832698(this, NA_SE_VO_LI_GROAN); } -void func_80851ECC(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851ECC(PlayState* play, Player* this, CsCmdActorCue* cue) { if (LinkAnimation_Update(play, &this->skelAnime)) { func_808330EC(play, this, &gPlayerAnim_clink_op3_wait2, 0x9C); } @@ -14300,7 +14300,7 @@ void func_80851F14(PlayState* play, Player* this, LinkAnimationHeader* anim, str } } -void func_80851F84(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851F84(PlayState* play, Player* this, CsCmdActorCue* cue) { this->actor.shape.shadowDraw = NULL; func_80851134(play, this, &gPlayerAnim_clink_op3_wait1); } @@ -14311,7 +14311,7 @@ static struct_80832924 D_808551BC[] = { { NA_SE_PL_SLIPDOWN, -0x900 }, }; -void func_80851FB0(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80851FB0(PlayState* play, Player* this, CsCmdActorCue* cue) { if (LinkAnimation_Update(play, &this->skelAnime)) { func_808330EC(play, this, &gPlayerAnim_clink_op3_wait3, 0x9C); this->unk_850 = 1; @@ -14330,24 +14330,26 @@ static struct_80832924 D_808551C8[] = { { 0, -0x4860 }, }; -void func_80852048(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852048(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); func_80832924(this, D_808551C8); } -void func_80852080(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852080(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80833064(play, this, &gPlayerAnim_clink_demo_futtobi, 0x9D); func_80832698(this, NA_SE_VO_LI_FALL_L); } -void func_808520BC(PlayState* play, Player* this, CsCmdActorAction* arg2) { - f32 startX = arg2->startPos.x; - f32 startY = arg2->startPos.y; - f32 startZ = arg2->startPos.z; - f32 distX = (arg2->endPos.x - startX); - f32 distY = (arg2->endPos.y - startY); - f32 distZ = (arg2->endPos.z - startZ); - f32 sp4 = (f32)(play->csCtx.frames - arg2->startFrame) / (f32)(arg2->endFrame - arg2->startFrame); +void func_808520BC(PlayState* play, Player* this, CsCmdActorCue* cue) { + f32 startX = cue->startPos.x; + f32 startY = cue->startPos.y; + f32 startZ = cue->startPos.z; + + f32 distX = cue->endPos.x - startX; + f32 distY = cue->endPos.y - startY; + f32 distZ = cue->endPos.z - startZ; + + f32 sp4 = (f32)(play->csCtx.curFrame - cue->startFrame) / (f32)(cue->endFrame - cue->startFrame); this->actor.world.pos.x = distX * sp4 + startX; this->actor.world.pos.y = distY * sp4 + startY; @@ -14359,37 +14361,37 @@ static struct_80832924 D_808551D8[] = { { NA_SE_PL_BOUND, -0x101E }, }; -void func_80852174(PlayState* play, Player* this, CsCmdActorAction* arg2) { - func_808520BC(play, this, arg2); +void func_80852174(PlayState* play, Player* this, CsCmdActorCue* cue) { + func_808520BC(play, this, cue); LinkAnimation_Update(play, &this->skelAnime); func_80832924(this, D_808551D8); } -void func_808521B8(PlayState* play, Player* this, CsCmdActorAction* arg2) { - if (arg2 != NULL) { - func_808520BC(play, this, arg2); +void func_808521B8(PlayState* play, Player* this, CsCmdActorCue* cue) { + if (cue != NULL) { + func_808520BC(play, this, cue); } LinkAnimation_Update(play, &this->skelAnime); } -void func_808521F4(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808521F4(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80832B0C(play, this, GET_PLAYER_ANIM(PLAYER_ANIMGROUP_nwait, this->modelAnimType)); func_80832210(this); } -void func_80852234(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852234(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); } -void func_8085225C(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_8085225C(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80832F54(play, this, 0x98); } -void func_80852280(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852280(PlayState* play, Player* this, CsCmdActorCue* cue) { this->actor.draw = Player_Draw; } -void func_80852298(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852298(PlayState* play, Player* this, CsCmdActorCue* cue) { if (LinkAnimation_Update(play, &this->skelAnime)) { func_8083313C(play, this, &gPlayerAnim_clink_demo_koutai_wait); this->unk_850 = 1; @@ -14405,7 +14407,7 @@ static struct_80832924 D_808551E0[] = { { 0, -0x3018 }, }; -void func_80852328(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852328(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80851F14(play, this, &gPlayerAnim_link_demo_furimuki2_wait, D_808551E0); } @@ -14414,17 +14416,17 @@ static struct_80832924 D_808551E8[] = { { 0, -0x4023 }, }; -void func_80852358(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852358(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80851F14(play, this, &gPlayerAnim_link_demo_nozokikomi_wait, D_808551E8); } -void func_80852388(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852388(PlayState* play, Player* this, CsCmdActorCue* cue) { if (LinkAnimation_Update(play, &this->skelAnime)) { func_808322A4(play, this, &gPlayerAnim_demo_link_twait); this->unk_850 = 1; } - if ((this->unk_850 != 0) && (play->csCtx.frames >= 900)) { + if ((this->unk_850 != 0) && (play->csCtx.curFrame >= 900)) { this->rightHandType = PLAYER_MODELTYPE_LH_OPEN; } else { this->rightHandType = PLAYER_MODELTYPE_RH_FF; @@ -14443,7 +14445,7 @@ static struct_80832924 D_808551F0[] = { { 0, -0x3021 }, }; -void func_80852450(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852450(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80852414(play, this, &gPlayerAnim_clink_demo_koutai_wait, D_808551F0); } @@ -14451,31 +14453,31 @@ static struct_80832924 D_808551F8[] = { { NA_SE_PL_KNOCK, -0x84E }, }; -void func_80852480(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852480(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80852414(play, this, &gPlayerAnim_link_demo_kakeyori_wait, D_808551F8); } -void func_808524B0(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808524B0(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80837704(play, this); } -void func_808524D0(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808524D0(PlayState* play, Player* this, CsCmdActorCue* cue) { sControlInput->press.button |= BTN_B; func_80844E68(this, play); } -void func_80852514(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852514(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80844E68(this, play); } -void func_80852544(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852544(PlayState* play, Player* this, CsCmdActorCue* cue) { } -void func_80852554(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852554(PlayState* play, Player* this, CsCmdActorCue* cue) { } -void func_80852564(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852564(PlayState* play, Player* this, CsCmdActorCue* cue) { this->stateFlags3 |= PLAYER_STATE3_1; this->linearVelocity = 2.0f; this->actor.velocity.y = -1.0f; @@ -14490,16 +14492,16 @@ static void (*D_808551FC[])(Player* this, PlayState* play) = { func_80843A38, }; -void func_808525C0(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808525C0(PlayState* play, Player* this, CsCmdActorCue* cue) { D_808551FC[this->unk_850](this, play); } -void func_80852608(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852608(PlayState* play, Player* this, CsCmdActorCue* cue) { func_80846720(play, this, 0); func_808322D0(play, this, &gPlayerAnim_link_demo_return_to_past); } -void func_80852648(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852648(PlayState* play, Player* this, CsCmdActorCue* cue) { LinkAnimation_Update(play, &this->skelAnime); if (LinkAnimation_OnFrame(&this->skelAnime, 10.0f)) { @@ -14523,7 +14525,7 @@ static Vec3s D_80855210[2][2] = { { { -200, 500, 0 }, { 600, 400, 600 } }, }; -void func_808526EC(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808526EC(PlayState* play, Player* this, CsCmdActorCue* cue) { static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f }; static Color_RGBA8 primColor = { 255, 255, 255, 0 }; static Color_RGBA8 envColor = { 0, 128, 128, 0 }; @@ -14550,9 +14552,9 @@ void func_808526EC(PlayState* play, Player* this, CsCmdActorAction* arg2) { EffectSsKiraKira_SpawnDispersed(play, &sparklePos, &zeroVec, &zeroVec, &primColor, &envColor, 600, -10); } -void func_8085283C(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_8085283C(PlayState* play, Player* this, CsCmdActorCue* cue) { if (LinkAnimation_Update(play, &this->skelAnime)) { - func_80852944(play, this, arg2); + func_80852944(play, this, cue); } else if (this->unk_850 == 0) { Item_Give(play, ITEM_SWORD_MASTER); func_80846720(play, this, 0); @@ -14561,7 +14563,7 @@ void func_8085283C(PlayState* play, Player* this, CsCmdActorAction* arg2) { } } -void func_808528C8(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_808528C8(PlayState* play, Player* this, CsCmdActorCue* cue) { if (LinkAnimation_Update(play, &this->skelAnime)) { func_8084285C(this, 0.0f, 99.0f, this->skelAnime.endFrame - 8.0f); } @@ -14571,7 +14573,7 @@ void func_808528C8(PlayState* play, Player* this, CsCmdActorAction* arg2) { } } -void func_80852944(PlayState* play, Player* this, CsCmdActorAction* arg2) { +void func_80852944(PlayState* play, Player* this, CsCmdActorCue* cue) { if (func_808332B8(this)) { func_80838F18(play, this); func_80832340(play, this); @@ -14586,36 +14588,38 @@ void func_80852944(PlayState* play, Player* this, CsCmdActorAction* arg2) { this->unk_6AD = 0; } -void func_808529D0(PlayState* play, Player* this, CsCmdActorAction* arg2) { - this->actor.world.pos.x = arg2->startPos.x; - this->actor.world.pos.y = arg2->startPos.y; +void func_808529D0(PlayState* play, Player* this, CsCmdActorCue* cue) { + this->actor.world.pos.x = cue->startPos.x; + this->actor.world.pos.y = cue->startPos.y; + if ((play->sceneId == SCENE_KOKIRI_FOREST) && !LINK_IS_ADULT) { this->actor.world.pos.y -= 1.0f; } - this->actor.world.pos.z = arg2->startPos.z; - this->currentYaw = this->actor.shape.rot.y = arg2->rot.y; + + this->actor.world.pos.z = cue->startPos.z; + this->currentYaw = this->actor.shape.rot.y = cue->rot.y; } -void func_80852A54(PlayState* play, Player* this, CsCmdActorAction* arg2) { - f32 dx = arg2->startPos.x - (s32)this->actor.world.pos.x; - f32 dy = arg2->startPos.y - (s32)this->actor.world.pos.y; - f32 dz = arg2->startPos.z - (s32)this->actor.world.pos.z; +void func_80852A54(PlayState* play, Player* this, CsCmdActorCue* cue) { + f32 dx = cue->startPos.x - (s32)this->actor.world.pos.x; + f32 dy = cue->startPos.y - (s32)this->actor.world.pos.y; + f32 dz = cue->startPos.z - (s32)this->actor.world.pos.z; f32 dist = sqrtf(SQ(dx) + SQ(dy) + SQ(dz)); - s16 yawDiff = arg2->rot.y - this->actor.shape.rot.y; + s16 yawDiff = (s16)cue->rot.y - this->actor.shape.rot.y; if ((this->linearVelocity == 0.0f) && ((dist > 50.0f) || (ABS(yawDiff) > 0x4000))) { - func_808529D0(play, this, arg2); + func_808529D0(play, this, cue); } this->skelAnime.moveFlags = 0; func_80832DB0(this); } -void func_80852B4C(PlayState* play, Player* this, CsCmdActorAction* arg2, struct_80854B18* arg3) { +void func_80852B4C(PlayState* play, Player* this, CsCmdActorCue* cue, struct_80854B18* arg3) { if (arg3->type > 0) { D_80854AA4[arg3->type](play, this, arg3->ptr); } else if (arg3->type < 0) { - arg3->func(play, this, arg2); + arg3->func(play, this, cue); } if ((D_80858AA0 & 4) && !(this->skelAnime.moveFlags & 4)) { @@ -14631,30 +14635,31 @@ void func_80852C0C(PlayState* play, Player* this, s32 csMode) { } } -void func_80852C50(PlayState* play, Player* this, CsCmdActorAction* arg2) { - CsCmdActorAction* linkCsAction = play->csCtx.linkAction; +void func_80852C50(PlayState* play, Player* this, CsCmdActorCue* cueUnused) { + CsCmdActorCue* cue = play->csCtx.playerCue; s32 pad; s32 csMode; - if (play->csCtx.state == CS_STATE_UNSKIPPABLE_INIT) { + if (play->csCtx.state == CS_STATE_STOP) { func_8002DF54(play, NULL, PLAYER_CSMODE_7); - this->unk_446 = 0; + this->cueId = 0; func_80832210(this); return; } - if (linkCsAction == NULL) { + if (cue == NULL) { this->actor.flags &= ~ACTOR_FLAG_6; return; } - if (this->unk_446 != linkCsAction->action) { - csMode = D_808547C4[linkCsAction->action]; - if (csMode >= 0) { + if (this->cueId != cue->id) { + csMode = D_808547C4[cue->id]; + + if (csMode >= PLAYER_CSMODE_NONE) { if ((csMode == PLAYER_CSMODE_3) || (csMode == PLAYER_CSMODE_4)) { - func_80852A54(play, this, linkCsAction); + func_80852A54(play, this, cue); } else { - func_808529D0(play, this, linkCsAction); + func_808529D0(play, this, cue); } } @@ -14663,15 +14668,15 @@ void func_80852C50(PlayState* play, Player* this, CsCmdActorAction* arg2) { func_80832DBC(this); osSyncPrintf("TOOL MODE=%d\n", csMode); func_80852C0C(play, this, ABS(csMode)); - func_80852B4C(play, this, linkCsAction, &D_80854B18[ABS(csMode)]); + func_80852B4C(play, this, cue, &D_80854B18[ABS(csMode)]); this->unk_850 = 0; this->unk_84F = 0; - this->unk_446 = linkCsAction->action; + this->cueId = cue->id; } - csMode = D_808547C4[this->unk_446]; - func_80852B4C(play, this, linkCsAction, &D_80854E50[ABS(csMode)]); + csMode = D_808547C4[this->cueId]; + func_80852B4C(play, this, cue, &D_80854E50[ABS(csMode)]); } void func_80852E14(Player* this, PlayState* play) { diff --git a/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c b/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c index be37446a40..aad2a21f53 100644 --- a/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c +++ b/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c @@ -132,8 +132,8 @@ void EffectSsGSpk_Update(PlayState* play, u32 index, EffectSs* this) { void EffectSsGSpk_UpdateNoAccel(PlayState* play, u32 index, EffectSs* this) { if (this->actor != NULL) { if ((this->actor->category == ACTORCAT_EXPLOSIVE) && (this->actor->update != NULL)) { - this->pos.x += (Math_SinS(this->actor->world.rot.y) * this->actor->speedXZ); - this->pos.z += (Math_CosS(this->actor->world.rot.y) * this->actor->speedXZ); + this->pos.x += (Math_SinS(this->actor->world.rot.y) * this->actor->speed); + this->pos.z += (Math_CosS(this->actor->world.rot.y) * this->actor->speed); } } diff --git a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c index db2bbafe7d..b6223aab2a 100644 --- a/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c +++ b/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c @@ -76,6 +76,6 @@ void EffectSsStone1_Draw(PlayState* play, u32 index, EffectSs* this) { void EffectSsStone1_Update(PlayState* play, u32 index, EffectSs* this) { if ((this->life == 6) && (this->rReg0 != 0)) { - iREG(50) = 0; + R_TRANS_FADE_FLASH_ALPHA_STEP = 0; } } diff --git a/tools/csdis.py b/tools/csdis.py index b5aedb19c2..ce0de398f9 100755 --- a/tools/csdis.py +++ b/tools/csdis.py @@ -13,127 +13,127 @@ command_continue_stop = { 0xFF: "CS_CMD_STOP", } -cutscene_terminator_destinations = { - 0x00: "INVALID_DESTINATION_0", - 0x01: "CUTSCENE_MAP_GANON_HORSE", - 0x02: "CUTSCENE_MAP_THREE_GODESSES_POST_DEKU_TREE", - 0x03: "GERUDO_VALLEY_DIN", - 0x04: "DEATH_MOUNTAIN_TRAIL_NAYRU", - 0x05: "KOKIRI_FOREST_FARORE", - 0x06: "CUTSCENE_MAP_TRIFORCE_CREATION", - 0x07: "KOKIRI_FOREST_RECEIVE_KOKIRI_EMERALD", - 0x08: "TEMPLE_OF_TIME_AFTER_USE_MS", - 0x09: "GERUDO_VALLEY_DIN_2", - 0x0A: "LINKS_HOUSE_INTRO", - 0x0B: "KOKIRI_FOREST_INTRO", - 0x0C: "DEATH_MOUNTAIN_TRAIL_AFTER_GORON_RUBY", - 0x0D: "ZORAS_FOUNTAIN_AFTER_ZORAS_SAPPHIRE", - 0x0E: "KOKIRI_FOREST_AFTER_KOKIRI_EMERALD", - 0x0F: "TEMPLE_OF_TIME_KOKIRI_EMERALD", #unused - 0x10: "TEMPLE_OF_TIME_GORON_RUBY", #unused - 0x11: "TEMPLE_OF_TIME_ZORAS_SAPPHIRE", #unused - 0x12: "TEMPLE_OF_TIME_AFTER_USE_MS_FIRST", - 0x13: "DEATH_MOUNTAIN_TRAIL_AFTER_INTRO", - 0x14: "INVALID_DESTINATION_14", - 0x15: "LAKE_HYLIA_WATER_RISES", - 0x16: "DESERT_COLOSSUS_REQUIEM", - 0x17: "CUTSCENE_MAP_CURSE_YOU", - 0x18: "JABU_JABU_INTRO", - 0x19: "CHAMBER_OF_SAGES_LIGHT_MEDALLION", - 0x1A: "TEMPLE_OF_TIME_KOKIRI_EMERALD_2", #duplicate of 0x000F - 0x1B: "TEMPLE_OF_TIME_GORON_RUBY_2", #duplicate of 0x0010 - 0x1C: "TEMPLE_OF_TIME_ZORAS_SAPPHIRE_2", #duplicate of 0x0011 - 0x1D: "CHAMBER_OF_SAGES_FOREST_MEDALLION", - 0x1E: "CHAMBER_OF_SAGES_FIRE_MEDALLION", - 0x1F: "CHAMBER_OF_SAGES_WATER_MEDALLION", - 0x20: "HYRULE_FIELD_FLASHBACK", #lacs part 4 - 0x21: "HYRULE_FIELD_AFTER_LAKE_HYLIA_OWL", - 0x22: "CUTSCENE_MAP_GANON_AFTER_USE_MS", - 0x23: "HYRULE_FIELD_INTRO_ZELDA_ESCAPE", - 0x24: "INVALID_DESTINATION_24", - 0x25: "INVALID_DESTINATION_25", - 0x26: "CUTSCENE_MAP_SHEIKAH_LEGEND", #lacs part 2 - 0x27: "TEMPLE_OF_TIME_ZELDA_REVEAL", #lacs part 3 - 0x28: "TEMPLE_OF_TIME_GET_LIGHT_ARROWS", #lacs part 5 - 0x29: "LAKE_HYLIA_AFTER_BLUE_WARP", - 0x2A: "KAKARIKO_VILLAGE_DRAIN_WELL", - 0x2B: "WINDMILL_AFTER_DRAIN_WELL", - 0x2C: "TEMPLE_OF_TIME_AFTER_DOOR_OF_TIME_OPENS", - 0x2D: "INVALID_DESTINATION_2D", - 0x2E: "TEMPLE_OF_TIME_AFTER_USE_MS_FIRST_2", #duplicate of 0x0012 - 0x2F: "KAKARIKO_VILLAGE_NOCTURNE_PART_2", - 0x30: "DESERT_COLOSSUS_AFTER_REQUIEM", - 0x31: "TEMPLE_OF_TIME_AFTER_LIGHT_ARROWS", - 0x32: "KAKARIKO_VILLAGE_AFTER_NOCTURNE", - 0x33: "HYRULE_FIELD_IMPA_ESCORT_CS", - 0x34: "TEMPLE_OF_TIME_SONG_OF_TIME", - 0x35: "HYRULE_FIELD_AFTER_SONG_OF_TIME", - 0x36: "GERUDO_VALLEY_CREDITS", - 0x37: "GERUDO_FORTRESS_CREDITS", - 0x38: "KAKARIKO_VILLAGE_CREDITS", - 0x39: "DEATH_MOUNTAIN_TRAIL_CREDITS_1", - 0x3A: "GORON_CITY_CREDITS", #unused? - 0x3B: "LAKE_HYLIA_CREDITS", - 0x3C: "ZORAS_FOUNTAIN_CREDITS", #unused - 0x3D: "ZORAS_DOMAIN_CREDITS", - 0x3E: "KOKIRI_FOREST_CREDITS_1", - 0x3F: "KOKIRI_FOREST_CREDITS_2", - 0x40: "HYRULE_FIELD_CREDITS", - 0x41: "LON_LON_RANCH_CREDITS_1", - 0x42: "KAKARIKO_VILLAGE_AFTER_TRAIL_OWL", - 0x43: "HTRULE_FIELD_UNUSED_ENTRANCE", - 0x44: "CUTSCENE_MAP_FIRE", - 0x45: "KOKIRI_FOREST_POST_FOREST_MEDALLION", - 0x46: "DEATH_MOUNTAIN_TRAIL_CREDITS_2", - 0x47: "TEMPLE_OF_TIME_CREDITS", - 0x48: "ZELDAS_COURTYARD_CREDITS", - 0x49: "LON_LON_RANCH_CREDITS_1_2", #duplicate of 0x0041 - 0x4A: "LON_LON_RANCH_CREDITS_2", - 0x4B: "LON_LON_RANCH_CREDITS_3", - 0x4C: "LON_LON_RANCH_CREDITS_4", - 0x4D: "LON_LON_RANCH_CREDITS_5", - 0x4E: "LON_LON_RANCH_CREDITS_6", - 0x4F: "LON_LON_RANCH_NO_CS_1", - 0x50: "LON_LON_RANCH_NO_CS_2", - 0x51: "LON_LON_RANCH_NO_CS_3", - 0x52: "LON_LON_RANCH_NO_CS_4", - 0x53: "LON_LON_RANCH_NO_CS_5", - 0x54: "LON_LON_RANCH_NO_CS_6", - 0x55: "LON_LON_RANCH_NO_CS_7", - 0x56: "LON_LON_RANCH_NO_CS_8", - 0x57: "LON_LON_RANCH_NO_CS_9", - 0x58: "LON_LON_RANCH_NO_CS_10", - 0x59: "LON_LON_RANCH_NO_CS_11", - 0x5A: "LON_LON_RANCH_NO_CS_12", - 0x5B: "LON_LON_RANCH_NO_CS_13", - 0x5C: "LON_LON_RANCH_NO_CS_14", - 0x5D: "LON_LON_RANCH_NO_CS_15", - 0x5E: "LON_LON_RANCH_NO_CS_EPONAS_SONG", - 0x5F: "CONDITIONAL_DESTINATION", # more descriptive name? - 0x60: "DESERT_COLOSSUS_SPIRIT_BLUE_WARP", - 0x61: "GRAVEYARD_AFTER_SHADOW_BLUE_WARP", - 0x62: "DEATH_MOUNTAIN_CRATER_AFTER_FIRE_BLUE_WARP", - 0x63: "SACRED_FOREST_MEADOW_AFTER_FOREST_BLUE_WARP", - 0x64: "KOKIRI_FOREST_AFTER_FOREST_BLUE_WARP", - 0x65: "DESERT_COLOSSUS_AFTER_SILVER_GAUNTLETS", - 0x66: "TEMPLE_OF_TIME_FRONT_OF_PEDESTAL", - 0x67: "HYRULE_FIELD_TITLE_SCREEN", - 0x68: "SPIRIT_TEMPLE_BOSS_TITLE_SCREEN", - 0x69: "GRAVEYARD_SUNS_SONG", - 0x6A: "ROYAL_FAMILYS_TOMB_SUNS_SONG", - 0x6B: "GANONS_CASTLE_AFTER_FOREST_TRIAL", - 0x6C: "GANONS_CASTLE_AFTER_WATER_TRIAL", - 0x6D: "GANONS_CASTLE_AFTER_SHADOW_TRIAL", - 0x6E: "GANONS_CASTLE_AFTER_FIRE_TRIAL", - 0x6F: "GANONS_CASTLE_AFTER_LIGHT_TRIAL", - 0x70: "GANONS_CASTLE_AFTER_SPIRIT_TRIAL", - 0x71: "GANONS_CASTLE_DISPEL_BARRIER_IF_CONDITIONS", - 0x72: "HYRULE_FIELD_INTRO", - 0x73: "HYRULE_FIELD_AFTER_IMPA_ESCORT", - 0x74: "DESERT_COLOSSUS_SPIRIT_BLUE_WARP_2", - 0x75: "HYRULE_FIELD_SKY", - 0x76: "GANON_BATTLE_TOWER_COLLAPSE", - 0x77: "ZELDAS_COURTYARD_RECEIVE_LETTER", +cutscene_destinations = { + 0x00: "CS_DEST_UNIMPLEMENTED_0", + 0x01: "CS_DEST_CUTSCENE_MAP_GANON_HORSE", + 0x02: "CS_DEST_CUTSCENE_MAP_THREE_GODDESSES", + 0x03: "CS_DEST_GERUDO_VALLEY_DIN_PART_1", + 0x04: "CS_DEST_DEATH_MOUNTAIN_TRAIL_NAYRU", + 0x05: "CS_DEST_KOKIRI_FOREST_FARORE", + 0x06: "CS_DEST_CUTSCENE_MAP_TRIFORCE_CREATION", + 0x07: "CS_DEST_KOKIRI_FOREST_RECEIVE_KOKIRI_EMERALD", + 0x08: "CS_DEST_TEMPLE_OF_TIME_FROM_MASTER_SWORD", + 0x09: "CS_DEST_GERUDO_VALLEY_DIN_PART_2", + 0x0A: "CS_DEST_LINKS_HOUSE_INTRO", + 0x0B: "CS_DEST_KOKIRI_FOREST_INTRO", + 0x0C: "CS_DEST_DEATH_MOUNTAIN_TRAIL_FROM_GORON_RUBY", + 0x0D: "CS_DEST_ZORAS_FOUNTAIN_FROM_ZORAS_SAPPHIRE", + 0x0E: "CS_DEST_KOKIRI_FOREST_FROM_KOKIRI_EMERALD", + 0x0F: "CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED", + 0x10: "CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED", + 0x11: "CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED", + 0x12: "CS_DEST_TEMPLE_OF_TIME_AFTER_LIGHT_MEDALLION", + 0x13: "CS_DEST_DEATH_MOUNTAIN_TRAIL", + 0x14: "CS_DEST_UNIMPLEMENTED_14", + 0x15: "CS_DEST_LAKE_HYLIA_WATER_RESTORED", + 0x16: "CS_DEST_DESERT_COLOSSUS_REQUIEM", + 0x17: "CS_DEST_CUTSCENE_MAP_GANONDORF_DEFEATED_CREDITS", + 0x18: "CS_DEST_JABU_JABU", + 0x19: "CS_DEST_CHAMBER_OF_SAGES_LIGHT_MEDALLION", + 0x1A: "CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED_2", + 0x1B: "CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED_2", + 0x1C: "CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED_2", + 0x1D: "CS_DEST_CHAMBER_OF_SAGES_FOREST_MEDALLION", + 0x1E: "CS_DEST_CHAMBER_OF_SAGES_FIRE_MEDALLION", + 0x1F: "CS_DEST_CHAMBER_OF_SAGES_WATER_MEDALLION", + 0x20: "CS_DEST_HYRULE_FIELD_FLASHBACK", + 0x21: "CS_DEST_HYRULE_FIELD_FROM_ZELDA_ESCAPE", + 0x22: "CS_DEST_CUTSCENE_MAP_GANONDORF_FROM_MASTER_SWORD", + 0x23: "CS_DEST_HYRULE_FIELD_INTRO_DREAM", + 0x24: "CS_DEST_UNIMPLEMENTED_24", + 0x25: "CS_DEST_UNIMPLEMENTED_25", + 0x26: "CS_DEST_CUTSCENE_MAP_SHEIKAH_LEGEND", + 0x27: "CS_DEST_TEMPLE_OF_TIME_ZELDA_REVEAL", + 0x28: "CS_DEST_TEMPLE_OF_TIME_GET_LIGHT_ARROWS", + 0x29: "CS_DEST_LAKE_HYLIA_FROM_LAKE_RESTORED", + 0x2A: "CS_DEST_KAKARIKO_VILLAGE_DRAIN_WELL", + 0x2B: "CS_DEST_WINDMILL_FROM_WELL_DRAINED", + 0x2C: "CS_DEST_TEMPLE_OF_TIME_FROM_ALL_STONES_RESTORED", + 0x2D: "CS_DEST_UNIMPLEMENTED_2D", + 0x2E: "CS_DEST_TEMPLE_OF_TIME_AFTER_LIGHT_MEDALLION_ALT", + 0x2F: "CS_DEST_KAKARIKO_VILLAGE_NOCTURNE_PART_2", + 0x30: "CS_DEST_DESERT_COLOSSUS_FROM_REQUIEM", + 0x31: "CS_DEST_TEMPLE_OF_TIME_FROM_LIGHT_ARROWS", + 0x32: "CS_DEST_KAKARIKO_VILLAGE_FROM_NOCTURNE", + 0x33: "CS_DEST_HYRULE_FIELD_FROM_ZELDAS_COURTYARD", + 0x34: "CS_DEST_TEMPLE_OF_TIME_SONG_OF_TIME", + 0x35: "CS_DEST_HYRULE_FIELD_FROM_SONG_OF_TIME", + 0x36: "CS_DEST_GERUDO_VALLEY_CREDITS", + 0x37: "CS_DEST_GERUDO_FORTRESS_CREDITS", + 0x38: "CS_DEST_KAKARIKO_VILLAGE_CREDITS", + 0x39: "CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_1", + 0x3A: "CS_DEST_GORON_CITY_CREDITS", + 0x3B: "CS_DEST_LAKE_HYLIA_CREDITS", + 0x3C: "CS_DEST_ZORAS_FOUNTAIN_CREDITS", + 0x3D: "CS_DEST_ZORAS_DOMAIN_CREDITS", + 0x3E: "CS_DEST_KOKIRI_FOREST_CREDITS_PART_1", + 0x3F: "CS_DEST_KOKIRI_FOREST_CREDITS_PART_2", + 0x40: "CS_DEST_HYRULE_FIELD_CREDITS", + 0x41: "CS_DEST_LON_LON_RANCH_CREDITS_PART_1_ALT", + 0x42: "CS_DEST_KAKARIKO_VILLAGE_FROM_TRAIL_OWL", + 0x43: "CS_DEST_HYRULE_FIELD_FROM_LAKE_HYLIA_OWL", + 0x44: "CS_DEST_CUTSCENE_MAP_DEKU_SPROUT_PART_2", + 0x45: "CS_DEST_KOKIRI_FOREST_DEKU_SPROUT_PART_3", + 0x46: "CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_2", + 0x47: "CS_DEST_TEMPLE_OF_TIME_CREDITS", + 0x48: "CS_DEST_ZELDAS_COURTYARD_CREDITS", + 0x49: "CS_DEST_LON_LON_RANCH_CREDITS_PART_1", + 0x4A: "CS_DEST_LON_LON_RANCH_CREDITS_PART_2", + 0x4B: "CS_DEST_LON_LON_RANCH_CREDITS_PART_3", + 0x4C: "CS_DEST_LON_LON_RANCH_CREDITS_PART_4", + 0x4D: "CS_DEST_LON_LON_RANCH_CREDITS_PART_5", + 0x4E: "CS_DEST_LON_LON_RANCH_CREDITS_PART_6", + 0x4F: "CS_DEST_LON_LON_RANCH_1", + 0x50: "CS_DEST_LON_LON_RANCH_2", + 0x51: "CS_DEST_LON_LON_RANCH_3", + 0x52: "CS_DEST_LON_LON_RANCH_4", + 0x53: "CS_DEST_LON_LON_RANCH_5", + 0x54: "CS_DEST_LON_LON_RANCH_6", + 0x55: "CS_DEST_LON_LON_RANCH_7", + 0x56: "CS_DEST_LON_LON_RANCH_8", + 0x57: "CS_DEST_LON_LON_RANCH_9", + 0x58: "CS_DEST_LON_LON_RANCH_10", + 0x59: "CS_DEST_LON_LON_RANCH_11", + 0x5A: "CS_DEST_LON_LON_RANCH_12", + 0x5B: "CS_DEST_LON_LON_RANCH_13", + 0x5C: "CS_DEST_LON_LON_RANCH_14", + 0x5D: "CS_DEST_LON_LON_RANCH_15", + 0x5E: "CS_DEST_LON_LON_RANCH_FROM_EPONAS_SONG", + 0x5F: "CS_DEST_STONES_RESTORED_CONDITIONAL", + 0x60: "CS_DEST_DESERT_COLOSSUS_FROM_CHAMBER_OF_SAGES", + 0x61: "CS_DEST_GRAVEYARD_FROM_CHAMBER_OF_SAGES", + 0x62: "CS_DEST_DEATH_MOUNTAIN_CRATER_FROM_CHAMBER_OF_SAGES", + 0x63: "CS_DEST_SACRED_FOREST_MEADOW_WARP_PAD", + 0x64: "CS_DEST_KOKIRI_FOREST_FROM_CHAMBER_OF_SAGES", + 0x65: "CS_DEST_DESERT_COLOSSUS_FROM_NABOORU_CAPTURE", + 0x66: "CS_DEST_TEMPLE_OF_TIME_FRONT_OF_PEDESTAL", + 0x67: "CS_DEST_HYRULE_FIELD_TITLE_SCREEN", + 0x68: "CS_DEST_TITLE_SCREEN_DEMO", + 0x69: "CS_DEST_GRAVEYARD_SUNS_SONG_PART_2", + 0x6A: "CS_DEST_ROYAL_FAMILYS_TOMB_SUNS_SONG_PART_3", + 0x6B: "CS_DEST_GANONS_CASTLE_DISPEL_FOREST_BEAM", + 0x6C: "CS_DEST_GANONS_CASTLE_DISPEL_WATER_BEAM", + 0x6D: "CS_DEST_GANONS_CASTLE_DISPEL_SHADOW_BEAM", + 0x6E: "CS_DEST_GANONS_CASTLE_DISPEL_FIRE_BEAM", + 0x6F: "CS_DEST_GANONS_CASTLE_DISPEL_LIGHT_BEAM", + 0x70: "CS_DEST_GANONS_CASTLE_DISPEL_SPIRIT_BEAM", + 0x71: "CS_DEST_GANONS_CASTLE_DISPEL_BARRIER_CONDITONAL", + 0x72: "CS_DEST_HYRULE_FIELD_FROM_FAIRY_OCARINA", + 0x73: "CS_DEST_HYRULE_FIELD_FROM_IMPA_ESCORT", + 0x74: "CS_DEST_FROM_RAURU_FINAL_MESSAGE_CONDITIONAL", + 0x75: "CS_DEST_HYRULE_FIELD_CREDITS_SKY", + 0x76: "CS_DEST_GANON_BATTLE_TOWER_COLLAPSE", + 0x77: "CS_DEST_ZELDAS_COURTYARD_RECEIVE_LETTER", } ocarina_action_ids = { @@ -228,26 +228,26 @@ cutscene_command_macros = { ("CS_MISC_LIST(%w1:1:s)", 2, None, 0, "CS_MISC(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %w1:3:x, %w1:4:x, %w1:5:x, %w1:6:x, %w1:7:x, %w1:8:x, %w1:9:x, %w1:10:x, %w1:11:x, %w1:12:x)", 12), 4: - ("CS_LIGHTING_LIST(%w1:1:s)", 2, None, 0, - "CS_LIGHTING(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %w1:3:x, %w1:4:x, %w1:5:x, %w1:6:x, %w1:7:x, %w1:8:x, %w1:9:x)", 12), + ("CS_LIGHT_SETTING_LIST(%w1:1:s)", 2, None, 0, + "CS_LIGHT_SETTING(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %w1:3:x, %w1:4:x, %w1:5:x, %w1:6:x, %w1:7:x, %w1:8:x, %w1:9:x)", 12), 86: - ("CS_PLAY_BGM_LIST(%w1:1:s)", 2, None, 0, - "CS_PLAY_BGM(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %w1:3:x, %w1:4:x, %w1:5:x, %w1:6:x, %w1:7:x, %w1:8:x, %w1:9:x)", 12), + ("CS_START_SEQ_LIST(%w1:1:s)", 2, None, 0, + "CS_START_SEQ(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %w1:3:x, %w1:4:x, %w1:5:x, %w1:6:x, %w1:7:x, %w1:8:x, %w1:9:x)", 12), 87: - ("CS_STOP_BGM_LIST(%w1:1:s)", 2, None, 0, - "CS_STOP_BGM(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %w1:3:x, %w1:4:x, %w1:5:x, %w1:6:x, %w1:7:x, %w1:8:x, %w1:9:x)", 12), + ("CS_STOP_SEQ_LIST(%w1:1:s)", 2, None, 0, + "CS_STOP_SEQ(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %w1:3:x, %w1:4:x, %w1:5:x, %w1:6:x, %w1:7:x, %w1:8:x, %w1:9:x)", 12), 124: - ("CS_FADE_BGM_LIST(%w1:1:s)", 2, None, 0, - "CS_FADE_BGM(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %w1:3:x, %w1:4:x, %w1:5:x, %w1:6:x, %w1:7:x, %w1:8:x, %w1:9:x)", 12), + ("CS_FADE_OUT_SEQ_LIST(%w1:1:s)", 2, None, 0, + "CS_FADE_OUT_SEQ(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %w1:3:x, %w1:4:x, %w1:5:x, %w1:6:x, %w1:7:x, %w1:8:x, %w1:9:x)", 12), 9: - ("CS_CMD_09_LIST(%w1:1:s)", 2, None, 0, - "CS_CMD_09(%h2:1:x, %h1:1:s, %h2:2:s, %b2:2:x, %b1:2:x, %b4:3:x, %b3:3:x, %h1:3:x)", 3), + ("CS_RUMBLE_CONTROLLER_LIST(%w1:1:s)", 2, None, 0, + "CS_RUMBLE_CONTROLLER(%h2:1:x, %h1:1:s, %h2:2:s, %b2:2:x, %b1:2:x, %b4:3:x, %b3:3:x, %h1:3:x)", 3), 140: ("CS_TIME_LIST(%w1:1:s)", 2, None, 0, "CS_TIME(%h2:1:x, %h1:1:s, %h2:2:s, %b2:2:x, %b1:2:x, %w1:3:x)", 3), 10: - ("CS_PLAYER_ACTION_LIST(%w1:1:s)", 2, None, 0, - "CS_PLAYER_ACTION(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %h2:3:x, %h1:3:x, %w1:4:s, %w1:5:s, %w1:6:s, %w1:7:s, %w1:8:s, %w1:9:s, %w1:10:f, %w1:11:f, %w1:12:f)", 12), + ("CS_PLAYER_CUE_LIST(%w1:1:s)", 2, None, 0, + "CS_PLAYER_CUE(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %h2:3:x, %h1:3:x, %w1:4:s, %w1:5:s, %w1:6:s, %w1:7:s, %w1:8:s, %w1:9:s, %w1:10:f, %w1:11:f, %w1:12:f)", 12), (15,17,18,23,34,39,46,76,85,93,105,107,110,119,123,138,139,144, # npc action 1 14,16,24,35,40,48,64,68,70,78,80,94,116,118,120,125,131,141, # npc action 2 25,36,41,50,67,69,72,74,81,106,117,121,126,132, # npc action 3 @@ -258,34 +258,34 @@ cutscene_command_macros = { 49,60,89,111,114,134,142, # npc action 8 62, # npc action 9 143): # npc action 10 - ("CS_NPC_ACTION_LIST(%w1:0:s, %w1:1:s)", 2, None, 0, - "CS_NPC_ACTION(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %h2:3:x, %h1:3:x, %w1:4:s, %w1:5:s, %w1:6:s, %w1:7:s, %w1:8:s, %w1:9:s, %w1:10:f, %w1:11:f, %w1:12:f)", 12), + ("CS_ACTOR_CUE_LIST(%w1:0:s, %w1:1:s)", 2, None, 0, + "CS_ACTOR_CUE(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %h2:3:x, %h1:3:x, %w1:4:s, %w1:5:s, %w1:6:s, %w1:7:s, %w1:8:s, %w1:9:s, %w1:10:f, %w1:11:f, %w1:12:f)", 12), 1: - ("CS_CAM_EYE_LIST(%h1:1:s, %h2:2:s)", 3, 0, None, - "CS_CAM_EYE(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), + ("CS_CAM_EYE_SPLINE(%h1:1:s, %h2:2:s)", 3, 0, None, + "CS_CAM_POINT(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), 5: - ("CS_CAM_EYE_REL_TO_PLAYER_LIST(%h1:1:s, %h2:2:s)", 3, 0, None, - "CS_CAM_EYE_REL_TO_PLAYER(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), + ("CS_CAM_EYE_SPLINE_REL_TO_PLAYER(%h1:1:s, %h2:2:s)", 3, 0, None, + "CS_CAM_POINT(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), 2: - ("CS_CAM_AT_LIST(%h1:1:s, %h2:2:s)", 3, 0, None, - "CS_CAM_AT(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), + ("CS_CAM_AT_SPLINE(%h1:1:s, %h2:2:s)", 3, 0, None, + "CS_CAM_POINT(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), 6: - ("CS_CAM_AT_REL_TO_PLAYER_LIST(%h1:1:s, %h2:2:s)", 3, 0, None, - "CS_CAM_AT_REL_TO_PLAYER(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), + ("CS_CAM_AT_SPLINE_REL_TO_PLAYER(%h1:1:s, %h2:2:s)", 3, 0, None, + "CS_CAM_POINT(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), 7: - ("CS_CMD_07_LIST(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x)", 3, None, -1, - "CS_CMD_07(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), + ("CS_CAM_EYE_LIST(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x)", 3, None, -1, + "CS_CAM_POINT(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), 8: - ("CS_CMD_08_LIST(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x)", 3, None, -1, - "CS_CMD_08(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), + ("CS_CAM_AT_LIST(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x)", 3, None, -1, + "CS_CAM_POINT(%b4:1:e0, %b3:1:x, %h1:1:s, %w1:2:f, %h2:3:s, %h1:3:s, %h2:4:s, %h1:4:x)", 4), 1000: - ("CS_TERMINATOR(%h2:2:e1, %h1:2:s, %h2:3:s)", 4, None, None, + ("CS_DESTINATION(%h2:2:e1, %h1:2:s, %h2:3:s)", 4, None, None, None, None), 19: ("CS_TEXT_LIST(%w1:1:s)", 2, None, 0, "__SPECIAL(CS_TEXT_LIST)", 3), 45: - ("CS_SCENE_TRANS_FX(%h2:2:x, %h1:2:s, %h2:3:s)", 4, None, None, + ("CS_TRANSITION(%h2:2:x, %h1:2:s, %h2:3:s)", 4, None, None, None, None), } @@ -389,7 +389,7 @@ def format_arg(arg, words): if enum_no == 0: result = command_continue_stop[unsigned_value] elif enum_no == 1: - result = cutscene_terminator_destinations[unsigned_value] + result = cutscene_destinations[unsigned_value] elif enum_no == 2: result = ocarina_action_ids[unsigned_value] elif format_type == "u": @@ -412,9 +412,9 @@ def format_cmd(cmd, words): if get_short_unsigned(words[1], 0) == 0xFFFF: cmd = "CS_TEXT_NONE(%h1:1:s, %h2:2:s)" elif get_short(words[2], 1) == 2: - cmd = "CS_TEXT_LEARN_SONG(%h2:1:e2, %h1:1:s, %h2:2:s, %h2:3:x)" + cmd = "CS_TEXT_OCARINA_ACTION(%h2:1:e2, %h1:1:s, %h2:2:s, %h2:3:x)" else: - cmd = "CS_TEXT_DISPLAY_TEXTBOX(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %h2:3:x, %h1:3:x)" + cmd = "CS_TEXT(%h2:1:x, %h1:1:s, %h2:2:s, %h1:2:x, %h2:3:x, %h1:3:x)" for arg in args_list(cmd): cmd = cmd.replace(arg, format_arg(arg, words)) return cmd