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