Skip to content

Commit 85871da

Browse files
committed
map3_s05: func_800D6D1C
1 parent c06897f commit 85871da

2 files changed

Lines changed: 122 additions & 1 deletion

File tree

include/maps/map3/map3_s05.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,27 @@
2323
#define MAP_ROOM_MAX_Z Q12(160.0f)
2424

2525
extern u8 D_800DD528;
26+
2627
extern s16 D_800DD52A; // Time.
28+
29+
extern u16 D_800DAC70;
30+
31+
extern u8 D_800DAC74;
32+
2733
extern s16 D_800DACF0;
34+
2835
extern s16 D_800DACE8;
36+
2937
extern VECTOR3 D_800DD420;
38+
3039
extern VECTOR3 D_800DD430;
40+
3141
extern SVECTOR3 D_800DD440;
42+
3243
extern SVECTOR3 D_800DD448;
44+
3345
extern s16 D_800DD52A;
46+
3447
extern s_WorldObjectDesc g_WorldObject0;
3548
extern s_WorldObjectDescNoRot g_WorldObject1[6];
3649
extern s_WorldObjectDesc g_WorldObject2;
@@ -67,6 +80,8 @@ void func_800D6BE0(void);
6780

6881
void func_800D6CF0(void);
6982

83+
void func_800D6D1C(void);
84+
7085
void func_800D719C(void);
7186

7287
void func_800D7280(void);

src/maps/map3_s05/map3_s05.c

Lines changed: 107 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,113 @@ void func_800D6CF0(void) // 0x800D6CF0
627627
Event_ItemTake(InventoryItemId_ExaminationRoomKey, DEFAULT_PICKUP_ITEM_COUNT, EventFlag_M3S05_PickupExaminationRoomKey, 21);
628628
}
629629

630-
INCLUDE_ASM("asm/maps/map3_s05/nonmatchings/map3_s05", func_800D6D1C);
630+
void func_800D6D1C(void) // 0x800D6D1C
631+
{
632+
if ((g_Controller0->btnsClicked_10 & g_GameWorkPtr->config_0.controllerConfig_0.skip_4) &&
633+
g_SysWork.sysStateStep_C[0] > 0 && g_SysWork.sysStateStep_C[0] < 11)
634+
{
635+
SysWork_StateStepSet(0, 15);
636+
}
637+
638+
switch (g_SysWork.sysStateStep_C[0])
639+
{
640+
case 0:
641+
Player_ControlFreeze();
642+
g_SysWork.field_30 = 20;
643+
644+
Camera_PositionSet(NULL, Q12(18.1f), Q12(-1.71f), Q12(-97.34f), Q12(0.0f), Q12(0.0f), Q12(0.0f), Q12(0.0f), true);
645+
Camera_LookAtSet(NULL, Q12(20.04f), Q12(-0.74f), Q12(-100.7f), Q12(0.0f), Q12(0.0f), Q12(0.0f), Q12(0.0f), true);
646+
647+
D_800DAC74 = 0;
648+
func_8003D03C();
649+
sharedFunc_800D2EB4_0_s00();
650+
Game_TurnFlashlightOn();
651+
652+
SysWork_StateStepIncrement(0);
653+
654+
case 1:
655+
Map_MessageWithAudio(18, &D_800DAC74, &D_800DAC70);
656+
break;
657+
658+
case 2:
659+
func_80086C58(&g_SysWork.player_4C.chara_0, 116);
660+
break;
661+
662+
case 3:
663+
Map_MessageWithAudio(19, &D_800DAC74, &D_800DAC70);
664+
break;
665+
666+
case 4:
667+
func_800865FC(true, 0, 0, FP_ANGLE(0.0f), Q12(21.7f), Q12(-100.9f));
668+
func_800865FC(true, 0, 1, FP_ANGLE(0.0f), Q12(21.9f), Q12(-100.3f));
669+
func_800865FC(true, 0, 2, FP_ANGLE(0.0f), Q12(21.0f), Q12(-99.4f));
670+
SysWork_StateStepIncrement(0);
671+
672+
case 5:
673+
func_800866D4(53, 3, false);
674+
SysWork_StateStepIncrementDelayed(Q12(2.0f), false);
675+
break;
676+
677+
case 6:
678+
Camera_PositionSet(NULL, Q12(18.44f), Q12(-4.54f), Q12(-100.98f), Q12(0.0f), Q12(0.0f), Q12(0.0f), Q12(0.0f), true);
679+
Camera_LookAtSet(NULL, Q12(20.54f), Q12(-1.58f), Q12(-99.3f), Q12(0.0f), Q12(0.0f), Q12(0.0f), Q12(0.0f), true);
680+
SysWork_StateStepIncrement(0);
681+
682+
case 7:
683+
func_800866D4(53, 3, false);
684+
break;
685+
686+
case 8:
687+
MapMsg_DisplayAndHandleSelection(false, 20, 0, 0, 0, false);
688+
break;
689+
690+
case 9:
691+
func_80086E50(FILE_TIM_ALESSA_TIM, 0, 0);
692+
break;
693+
694+
case 10:
695+
func_800862F8(2, FILE_1ST_2ZANKO80_TIM, false);
696+
MapMsg_DisplayAndHandleSelection(false, 16, 0, 0, 0, false);
697+
break;
698+
699+
case 11:
700+
vcReturnPreAutoCamWork(true);
701+
SysWork_StateStepIncrement(0);
702+
703+
case 12:
704+
func_80086F44(0, 0);
705+
break;
706+
707+
case 13:
708+
MapMsg_DisplayAndHandleSelection(false, 17, 0, 0, 0, false);
709+
break;
710+
711+
case 15:
712+
SysWork_StateStepIncrementAfterFade(2, true, 0, Q12(0.0f), false);
713+
break;
714+
715+
case 16:
716+
vcReturnPreAutoCamWork(true);
717+
718+
g_SysWork.player_4C.chara_0.position_18.vx = Q12(21.0f);
719+
g_SysWork.player_4C.chara_0.position_18.vz = Q12(-99.4f);
720+
g_SysWork.player_4C.chara_0.rotation_24.vy = FP_ANGLE(0.0f);
721+
722+
SysWork_StateStepIncrementAfterFade(0, false, 0, Q12(0.0f), false);
723+
724+
default:
725+
Player_ControlUnfreeze(false);
726+
SysWork_StateSetNext(SysState_Gameplay);
727+
728+
func_8003D01C();
729+
sharedFunc_800D2EF4_0_s00();
730+
731+
SysWork_StateStepIncrementAfterFade(0, false, 2, Q12(0.0f), false);
732+
733+
Savegame_EventFlagSet(EventFlag_260);
734+
break;
735+
}
736+
}
631737

632738
void func_800D719C(void) // 0x800D719C
633739
{

0 commit comments

Comments
 (0)