@@ -1326,7 +1326,259 @@ INCLUDE_ASM("asm/maps/map7_s03/nonmatchings/map7_s03_2", func_800E3E84);
13261326
13271327INCLUDE_ASM ("asm/maps/map7_s03/nonmatchings/map7_s03_2" , func_800E3F30 );
13281328
1329- INCLUDE_ASM ("asm/maps/map7_s03/nonmatchings/map7_s03_2" , func_800E4714 );
1329+ void func_800E4714 (void ) // 0x800E4714
1330+ {
1331+ s32 temp_v0 ;
1332+
1333+ switch (g_SysWork .sysStateStep_C [0 ])
1334+ {
1335+ case 0 :
1336+ D_800F4807 = 1 ;
1337+ D_800F4828 = 0 ;
1338+
1339+ if (!Savegame_EventFlagGet (EventFlag_449 ))
1340+ {
1341+ func_800E9260 (Chara_Alessa , 2 );
1342+ func_800E9260 (Chara_EndingDahlia , 3 );
1343+ func_800E941C ();
1344+ func_800E9444 (Chara_EndingDahlia , & g_SysWork .npcs_1A0 [1 ]);
1345+ func_800E9444 (Chara_Alessa , & g_SysWork .npcs_1A0 [2 ]);
1346+ D_800F480A = 1 ;
1347+ D_800F4809 = 1 ;
1348+ }
1349+
1350+ func_80085EB8 (0 , & g_SysWork .player_4C .chara_0 , 153 , false);
1351+ D_800F4804 = 0 ;
1352+ D_800EDA08 = 0 ;
1353+ Savegame_EventFlagSet (EventFlag_592 );
1354+ g_SysWork .field_2378 = Q12 (0.8f );
1355+ SysWork_StateStepIncrement (0 );
1356+ break ;
1357+
1358+ case 1 :
1359+ if (!Savegame_EventFlagGet (EventFlag_449 ))
1360+ {
1361+ func_80085EB8 (0 , & g_SysWork .npcs_1A0 [1 ], 5 , false);
1362+ func_80085EB8 (0 , & g_SysWork .npcs_1A0 [2 ], 10 , false);
1363+ }
1364+ SysWork_StateStepIncrement (0 );
1365+
1366+ case 2 :
1367+ SysWork_StateStepIncrementAfterFade (2 , false, 0 , Q12 (0.0f ), false);
1368+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (92.0f ), Q12 (112.0f ), true, false);
1369+ break ;
1370+
1371+ case 3 :
1372+ Map_MessageWithAudio (24 , & D_800F4804 , & D_800ED77C );
1373+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (92.0f ), Q12 (112.0f ), true, false);
1374+ temp_v0 = sharedFunc_800D2DAC_0_s00 ();
1375+ if (temp_v0 == 1 && D_800EDA08 == 0 )
1376+ {
1377+ func_80085EB8 (0 , & g_SysWork .player_4C .chara_0 , 131 , false);
1378+ D_800EDA08 = temp_v0 ;
1379+ }
1380+ break ;
1381+
1382+ case 4 :
1383+ func_80085EB8 (0 , & g_SysWork .npcs_1A0 [1 ], 15 , false);
1384+ SysWork_StateStepIncrement (0 );
1385+
1386+ case 5 :
1387+ Map_MessageWithAudio (30 , & D_800F4804 , & D_800ED77C );
1388+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (113.0f ), Q12 (129.0f ), true, false);
1389+ break ;
1390+
1391+ case 6 :
1392+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (113.0f ), Q12 (129.0f ), true, true);
1393+ break ;
1394+
1395+ case 7 :
1396+ func_80085EB8 (0 , & g_SysWork .player_4C .chara_0 , 70 , false);
1397+ func_800E9260 (Chara_Incubator , 1 );
1398+ D_800F4814 = 1 ;
1399+ SysWork_StateStepIncrement (0 );
1400+
1401+ case 8 :
1402+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (113.0f ), Q12 (134.0f ), false, true);
1403+ break ;
1404+
1405+ case 9 :
1406+ if (Fs_QueueDoThingWhenEmpty ())
1407+ {
1408+ SysWork_StateStepIncrement (0 );
1409+ }
1410+ break ;
1411+
1412+ case 10 :
1413+ func_80085EB8 (0 , & g_SysWork .player_4C .chara_0 , 51 , false);
1414+ func_80085EB8 (0 , & g_SysWork .npcs_1A0 [1 ], 16 , false);
1415+ SysWork_StateStepIncrement (0 );
1416+
1417+ case 11 :
1418+ Map_MessageWithAudio (31 , & D_800F4804 , & D_800ED77C );
1419+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (135.0f ), Q12 (142.0f ), true, false);
1420+ break ;
1421+
1422+ case 12 :
1423+ Map_MessageWithAudio (35 , & D_800F4804 , & D_800ED77C );
1424+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (135.0f ), Q12 (142.0f ), true, false);
1425+ break ;
1426+
1427+ case 13 :
1428+ Map_MessageWithAudio (44 , & D_800F4804 , & D_800ED77C );
1429+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (135.0f ), Q12 (142.0f ), true, false);
1430+ break ;
1431+
1432+ case 14 :
1433+ func_80085EB8 (0 , & g_SysWork .npcs_1A0 [1 ], 6 , false);
1434+ SysWork_StateStepIncrement (0 );
1435+
1436+ case 15 :
1437+ Map_MessageWithAudio (49 , & D_800F4804 , & D_800ED77C );
1438+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (8.5f ), Q12 (143.0f ), Q12 (207.0f ), true, false);
1439+
1440+ Savegame_EventFlagClear (EventFlag_576 );
1441+ Savegame_EventFlagSet (EventFlag_593 );
1442+ Savegame_EventFlagSet (EventFlag_575 );
1443+
1444+ if (g_SysWork .sysStateStep_C [0 ] != 15 )
1445+ {
1446+ Sd_EngineCmd (19 );
1447+ }
1448+ break ;
1449+
1450+ case 16 :
1451+ Sd_EngineCmd (Sfx_Unk4696 );
1452+ SysWork_StateStepIncrement (0 );
1453+
1454+ case 17 :
1455+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (8.5f ), Q12 (143.0f ), Q12 (207.0f ), true, false);
1456+ if (func_80045B28 () == 1 )
1457+ {
1458+ SysWork_StateStepIncrement (0 );
1459+ }
1460+ break ;
1461+
1462+ case 18 :
1463+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (8.5f ), Q12 (143.0f ), Q12 (207.0f ), true, false);
1464+ if (func_80045B28 () == 1 )
1465+ {
1466+ SysWork_StateStepIncrement (0 );
1467+ }
1468+ else
1469+ {
1470+ break ;
1471+ }
1472+
1473+ case 19 :
1474+ func_80085EB8 (0 , & g_SysWork .player_4C .chara_0 , 171 , false);
1475+ func_80085EB8 (0 , & g_SysWork .npcs_1A0 [1 ], 18 , false);
1476+ func_800E1788 (1 );
1477+ SysWork_StateStepIncrement (0 );
1478+
1479+ case 20 :
1480+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (208.0f ), Q12 (231.0f ), true, true);
1481+ break ;
1482+
1483+ case 21 :
1484+ D_800F4809 = 0 ;
1485+ Model_AnimFlagsClear (& g_SysWork .npcs_1A0 [1 ].model_0 , 2 );
1486+ func_800E941C ();
1487+ func_800E9444 (Chara_Incubator , & g_SysWork .npcs_1A0 [4 ]);
1488+ D_800F4814 = 2 ;
1489+ Model_AnimFlagsClear (& g_SysWork .npcs_1A0 [4 ].model_0 , 2 );
1490+ SysWork_StateStepIncrement (0 );
1491+
1492+ case 22 :
1493+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (232.0f ), Q12 (287.0f ), false, true);
1494+
1495+ if (D_800F47F0 > Q12 (230.0f ))
1496+ {
1497+ if (D_800F481B == 0 )
1498+ {
1499+ Model_AnimFlagsClear (& g_SysWork .npcs_1A0 [2 ].model_0 , 2 );
1500+ func_800E1788 (2 );
1501+ D_800F481B ++ ;
1502+ }
1503+ }
1504+
1505+ if (D_800F47F0 > Q12 (260.0f ) && D_800F481B == 1 )
1506+ {
1507+ D_800F481B ++ ;
1508+ }
1509+
1510+ if (D_800F47F0 > Q12 (285.0f ))
1511+ {
1512+ if (D_800F481B == 2 )
1513+ {
1514+ func_800E1788 (3 );
1515+ D_800F481B ++ ;
1516+ }
1517+ }
1518+ break ;
1519+
1520+ case 23 :
1521+ func_800E9490 (& g_SysWork .npcs_1A0 [2 ]);
1522+ D_800F480A = 0 ;
1523+ D_800F4811 = 0 ;
1524+ SysWork_StateStepIncrement (0 );
1525+
1526+ case 24 :
1527+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (232.0f ), Q12 (292.0f ), false, true);
1528+ break ;
1529+
1530+ case 25 :
1531+ func_80085EB8 (0 , & g_SysWork .npcs_1A0 [4 ], 1 , false);
1532+ D_800F480C = 1 ;
1533+ Model_AnimFlagsSet (& g_SysWork .npcs_1A0 [4 ].model_0 , 2 );
1534+ func_800DD7D0 (& g_SysWork .npcs_1A0 [1 ].position_18 );
1535+ D_800F4828 = 1 ;
1536+ SysWork_StateStepIncrement (0 );
1537+
1538+ case 26 :
1539+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (232.0f ), Q12 (332.0f ), false, true);
1540+ break ;
1541+
1542+ case 27 :
1543+ func_80085EB8 (0 , & g_SysWork .npcs_1A0 [4 ], 2 , false);
1544+ SysWork_StateStepIncrement (0 );
1545+
1546+ case 28 :
1547+ SysWork_StateStepIncrementAfterTime (& D_800F47F0 , Q12 (10.0f ), Q12 (232.0f ), Q12 (341.0f ), true, true);
1548+ break ;
1549+
1550+ case 29 :
1551+ D_800F480A = 0 ;
1552+ func_800D9394 ();
1553+
1554+ if (Savegame_EventFlagGet (EventFlag_391 ))
1555+ {
1556+ Fs_QueueStartRead (FILE_ANIM_LAST3_DMS , FS_BUFFER_18 );
1557+ D_800F4815 = 1 ;
1558+ }
1559+ else
1560+ {
1561+ Fs_QueueStartRead (FILE_ANIM_LAST5_DMS , FS_BUFFER_18 );
1562+ D_800F4817 = 1 ;
1563+ }
1564+
1565+ SysWork_StateStepIncrement (0 );
1566+
1567+ case 30 :
1568+ SysWork_StateStepIncrementDelayed (Q12 (4.0f ), false);
1569+ break ;
1570+
1571+ default :
1572+ g_SysWork .sysStateStep_C [0 ] = 0 ;
1573+ D_800F4805 ++ ;
1574+ break ;
1575+ }
1576+
1577+ if (D_800F4828 )
1578+ {
1579+ func_800DD868 ();
1580+ }
1581+ }
13301582
13311583INCLUDE_ASM ("asm/maps/map7_s03/nonmatchings/map7_s03_2" , func_800E514C );
13321584
0 commit comments