From 6ba48a123f1db841aadbadb687ffeb203a3f8319 Mon Sep 17 00:00:00 2001 From: Cuyler36 Date: Sun, 17 Aug 2025 04:25:30 -0400 Subject: [PATCH] Finish off furniture, all game code diffed --- config/GAFU01_00/foresta/splits.txt | 2 +- config/GAFU01_00/splits.txt | 122 +++++++++--------- src/furniture/ac_ike_island_hako01.c | 41 ++++++ src/furniture/ac_kon_snowtv.c | 181 ++++++++++++++++++++------- src/furniture/ac_nog_fan01.c | 34 +++-- src/furniture/ac_nog_nabe.c | 6 +- src/furniture/ac_sum_hal_table01.c | 4 + src/furniture/ac_sum_tv01.c | 103 +++++++++++++++ src/furniture/ac_sum_tv02.c | 113 +++++++++++++++-- src/furniture/ac_tak_table02.c | 4 + 10 files changed, 480 insertions(+), 130 deletions(-) diff --git a/config/GAFU01_00/foresta/splits.txt b/config/GAFU01_00/foresta/splits.txt index f30af693..d31063d9 100644 --- a/config/GAFU01_00/foresta/splits.txt +++ b/config/GAFU01_00/foresta/splits.txt @@ -3560,7 +3560,7 @@ audio.c: .data start:0x00087810 end:0x000878A0 .bss start:0x002332D8 end:0x002332DC -f_furniture.o: +f_furniture.c: .text start:0x002C4694 end:0x002C49C0 .text start:0x002C49C0 end:0x002C4B80 .text start:0x002C4B80 end:0x002C4C50 diff --git a/config/GAFU01_00/splits.txt b/config/GAFU01_00/splits.txt index 20267f6f..490e6dd2 100644 --- a/config/GAFU01_00/splits.txt +++ b/config/GAFU01_00/splits.txt @@ -58,18 +58,18 @@ nintendo_hi_0.o: .text start:0x800084B0 end:0x800084B0 .data start:0x800CD680 end:0x800D6F80 -jaudio_NES.o/dummyprobe.c: +jaudio_NES/game/dummyprobe.c: .text start:0x800084B0 end:0x800084B8 -jaudio_NES.o/audioheaders.c: +jaudio_NES/game/audioheaders.c: .text start:0x800084B8 end:0x800084B8 .data start:0x800D6F80 end:0x800D8DC0 -jaudio_NES.o/verysimple.c: +jaudio_NES/game/verysimple.c: .text start:0x800084B8 end:0x80008540 .sdata start:0x802299A0 end:0x802299A8 -jaudio_NES.o/emusound.c: +jaudio_NES/game/emusound.c: .text start:0x80008540 end:0x80008540 .text start:0x80008540 end:0x80008D40 .text start:0x80008D40 end:0x80009400 @@ -88,7 +88,7 @@ jaudio_NES.o/emusound.c: .sbss start:0x8022A160 end:0x8022A1C8 .sdata2 start:0x8022ABA0 end:0x8022AC20 -jaudio_NES.o/game64.c: +jaudio_NES/game/game64.c: .text start:0x8000BBC0 end:0x8000BBC0 .text start:0x8000BBC0 end:0x8000BD48 .text start:0x8000BD48 end:0x8001560C @@ -99,35 +99,35 @@ jaudio_NES.o/game64.c: .sbss start:0x8022A1C8 end:0x8022A270 .sdata2 start:0x8022AC20 end:0x8022AD20 -jaudio_NES.o/melody.c: +jaudio_NES/game/melody.c: .text start:0x8001560C end:0x80015A3C .rodata start:0x800B3958 end:0x800B42C0 .sbss start:0x8022A270 end:0x8022A280 .sdata2 start:0x8022AD20 end:0x8022AD28 -jaudio_NES.o/rhythm.c: +jaudio_NES/game/rhythm.c: .text start:0x80015A3C end:0x800165DC .bss start:0x80186CD8 end:0x80186D80 .sdata start:0x802299F0 end:0x802299F8 .sbss start:0x8022A280 end:0x8022A290 .sdata2 start:0x8022AD28 end:0x8022AD40 -jaudio_NES.o/radio.c: +jaudio_NES/game/radio.c: .text start:0x800165DC end:0x8001675C .sdata2 start:0x8022AD40 end:0x8022AD50 -jaudio_NES.o/kappa.c: +jaudio_NES/game/kappa.c: .text start:0x8001675C end:0x80016830 .sbss start:0x8022A290 end:0x8022A298 .sdata2 start:0x8022AD50 end:0x8022AD60 -jaudio_NES.o/staff.c: +jaudio_NES/game/staff.c: .text start:0x80016830 end:0x80016D00 .data start:0x800DA2C8 end:0x800DA3E0 .sbss start:0x8022A298 end:0x8022A2A8 .sdata2 start:0x8022AD60 end:0x8022AD68 -jaudio_NES.o/rspsim.c: +jaudio_NES/internal/rspsim.c: .text start:0x80016D00 end:0x80017E60 .data start:0x800DA3E0 end:0x800DA668 .bss start:0x80186D80 end:0x80187EA0 @@ -135,23 +135,23 @@ jaudio_NES.o/rspsim.c: .sbss start:0x8022A2A8 end:0x8022A2D0 .sdata2 start:0x8022AD68 end:0x8022AD70 -jaudio_NES.o/aictrl.c: +jaudio_NES/internal/aictrl.c: .text start:0x80017E60 end:0x80018620 .rodata start:0x800B42C0 end:0x800B42D8 .bss start:0x80187EA0 end:0x80187EC0 .sbss start:0x8022A2D0 end:0x8022A300 .sdata2 start:0x8022AD70 end:0x8022AD80 -jaudio_NES.o/sample.c: +jaudio_NES/internal/sample.c: .text start:0x80018620 end:0x80018900 -jaudio_NES.o/dummyrom.c: +jaudio_NES/internal/dummyrom.c: .text start:0x80018900 end:0x80018BA0 .rodata start:0x800B42D8 end:0x800B42E8 .bss start:0x8021F4F4 end:0x8021F508 align:4 common .sbss start:0x8022A300 end:0x8022A320 -jaudio_NES.o/audiothread.c: +jaudio_NES/internal/audiothread.c: .text start:0x80018BA0 end:0x80019080 .text start:0x80019080 end:0x800190C0 .rodata start:0x800B42E8 end:0x800B42F8 @@ -160,46 +160,46 @@ jaudio_NES.o/audiothread.c: .sbss start:0x8022A320 end:0x8022A340 .sdata2 start:0x8022AD80 end:0x8022AD88 -jaudio_NES.o/neosthread.c: +jaudio_NES/internal/neosthread.c: .text start:0x800190C0 end:0x80019360 .rodata start:0x800B42F8 end:0x800B4318 .bss start:0x8018DF20 end:0x80194340 .sdata start:0x80229A00 end:0x80229A08 .sbss start:0x8022A340 end:0x8022A358 -jaudio_NES.o/streamctrl.c: +jaudio_NES/internal/streamctrl.c: .text start:0x80019360 end:0x80019740 .data start:0x800DA668 end:0x800DA738 .bss start:0x80194340 end:0x801943B0 .sdata2 start:0x8022AD88 end:0x8022AD98 -jaudio_NES.o/dspbuf.c: +jaudio_NES/internal/dspbuf.c: .text start:0x80019740 end:0x80019AC0 .rodata start:0x800B4318 end:0x800B4330 .bss start:0x801943B0 end:0x801943C0 .sbss start:0x8022A358 end:0x8022A368 -jaudio_NES.o/cpubuf.c: +jaudio_NES/internal/cpubuf.c: .text start:0x80019AC0 end:0x80019DA0 .bss start:0x801943C0 end:0x801943D0 .sbss start:0x8022A368 end:0x8022A378 -jaudio_NES.o/playercall.c: +jaudio_NES/internal/playercall.c: .text start:0x80019DA0 end:0x8001A0A0 .bss start:0x801943D0 end:0x80194490 -jaudio_NES.o/dvdthread.c: +jaudio_NES/internal/dvdthread.c: .text start:0x8001A0A0 end:0x8001AD78 .data start:0x800DA738 end:0x800DA758 .bss start:0x80194490 end:0x8019D0A8 .sbss start:0x8022A378 end:0x8022A3C8 -jaudio_NES.o/rate.c: +jaudio_NES/internal/rate.c: .text start:0x8001AD78 end:0x8001AD78 .sdata start:0x80229A08 end:0x80229A18 .sbss start:0x8022A3C8 end:0x8022A3D0 -jaudio_NES.o/driver.c: +jaudio_NES/internal/driver.c: .text start:0x8001AD78 end:0x8001AD80 .text start:0x8001AD80 end:0x8001B020 .text start:0x8001B020 end:0x8001D140 @@ -212,7 +212,7 @@ jaudio_NES.o/driver.c: .sbss start:0x8022A3D0 end:0x8022A3D8 .sdata2 start:0x8022AD98 end:0x8022ADB8 -jaudio_NES.o/memory.c: +jaudio_NES/internal/memory.c: .text start:0x8001DA14 end:0x8001DA20 .text start:0x8001DA20 end:0x8001DBC0 .text start:0x8001DBC0 end:0x8001DE00 @@ -228,7 +228,7 @@ jaudio_NES.o/memory.c: .sbss start:0x8022A3D8 end:0x8022A3E0 .sdata2 start:0x8022ADB8 end:0x8022AE00 -jaudio_NES.o/system.c: +jaudio_NES/internal/system.c: .text start:0x80020C2C end:0x80020C40 .text start:0x80020C40 end:0x80021300 .text start:0x80021300 end:0x80021B00 @@ -248,7 +248,7 @@ jaudio_NES.o/system.c: .sbss start:0x8022A3E0 end:0x8022A3F0 .sdata2 start:0x8022AE00 end:0x8022AE10 -jaudio_NES.o/sub_sys.c: +jaudio_NES/internal/sub_sys.c: .text start:0x80024AB4 end:0x80024AC0 .text start:0x80024AC0 end:0x80024AC0 .text start:0x80024AC0 end:0x800250E0 @@ -260,30 +260,30 @@ jaudio_NES.o/sub_sys.c: .sbss start:0x8022A3F0 end:0x8022A408 .sdata2 start:0x8022AE10 end:0x8022AE28 -jaudio_NES.o/audiowork.c: +jaudio_NES/internal/audiowork.c: .text start:0x800260F8 end:0x800260F8 .bss start:0x80220598 end:0x802298D8 align:4 common .sbss start:0x8022A408 end:0x8022A420 -jaudio_NES.o/audiotable.c: +jaudio_NES/internal/audiotable.c: .text start:0x800260F8 end:0x800260F8 .data start:0x800DA850 end:0x800DDB28 -jaudio_NES.o/os.c: +jaudio_NES/internal/os.c: .text start:0x800260F8 end:0x80026100 .text start:0x80026100 end:0x80026160 .text start:0x80026160 end:0x80026160 .text start:0x80026160 end:0x80026160 .text start:0x80026160 end:0x800262E0 -jaudio_NES.o/astest.c: +jaudio_NES/internal/astest.c: .text start:0x800262E0 end:0x800263C8 -jaudio_NES.o/audioconst.c: +jaudio_NES/internal/audioconst.c: .text start:0x800263C8 end:0x800263C8 .data start:0x800DDB28 end:0x800DDB88 -jaudio_NES.o/channel.c: +jaudio_NES/internal/channel.c: .text start:0x800263C8 end:0x800263E0 .text start:0x800263E0 end:0x80026820 .text start:0x80026820 end:0x80026DE0 @@ -293,7 +293,7 @@ jaudio_NES.o/channel.c: .text start:0x800280C0 end:0x800281A8 .sdata2 start:0x8022AE28 end:0x8022AE60 -jaudio_NES.o/effect.c: +jaudio_NES/internal/effect.c: .text start:0x800281A8 end:0x800281C0 .text start:0x800281C0 end:0x800284E0 .text start:0x800284E0 end:0x80028A40 @@ -302,7 +302,7 @@ jaudio_NES.o/effect.c: .sdata start:0x80229A30 end:0x80229A38 .sdata2 start:0x8022AE60 end:0x8022AE90 -jaudio_NES.o/track.c: +jaudio_NES/internal/track.c: .text start:0x80028E2C end:0x80028E40 .text start:0x80028E40 end:0x80029080 .text start:0x80029080 end:0x80029A40 @@ -317,31 +317,31 @@ jaudio_NES.o/track.c: .sbss start:0x8022A420 end:0x8022A428 .sdata2 start:0x8022AE90 end:0x8022AED0 -jaudio_NES.o/dspboot.c: +jaudio_NES/internal/dspboot.c: .text start:0x8002C900 end:0x8002C980 .text start:0x8002C980 end:0x8002CD00 .rodata start:0x800B4540 end:0x800B4560 .data start:0x800DDFC0 end:0x800DF9C0 .sdata2 start:0x8022AED0 end:0x8022AED8 -jaudio_NES.o/dspproc.c: +jaudio_NES/internal/dspproc.c: .text start:0x8002CD00 end:0x8002CFC0 .sdata start:0x80229A38 end:0x80229A40 -jaudio_NES.o/ipldec.c: +jaudio_NES/internal/ipldec.c: .text start:0x8002CFC0 end:0x8002D220 .bss start:0x802298D8 end:0x80229918 align:4 common .sbss start:0x8022A428 end:0x8022A430 -jaudio_NES.o/dsp_cardunlock.c: +jaudio_NES/internal/dsp_cardunlock.c: .text start:0x8002D220 end:0x8002DA40 .rodata start:0x800B4560 end:0x800B45A0 -jaudio_NES.o/dsp_GBAKey.c: +jaudio_NES/internal/dsp_GBAKey.c: .text start:0x8002DA40 end:0x8002DBE0 .rodata start:0x800B45A0 end:0x800B45F8 -jaudio_NES.o/driverinterface.c: +jaudio_NES/internal/driverinterface.c: .text start:0x8002DBE0 end:0x8002F520 .data start:0x800DF9C0 end:0x800DFA58 .bss start:0x8019D0C0 end:0x801B1240 @@ -349,76 +349,76 @@ jaudio_NES.o/driverinterface.c: .sbss start:0x8022A430 end:0x8022A440 .sdata2 start:0x8022AED8 end:0x8022AEF0 -jaudio_NES.o/dspdriver.c: +jaudio_NES/internal/dspdriver.c: .text start:0x8002F520 end:0x8002FDA0 .data start:0x800DFA58 end:0x800DFA80 .bss start:0x801B1240 end:0x801B1640 .sbss start:0x8022A440 end:0x8022A448 .sdata2 start:0x8022AEF0 end:0x8022AF00 -jaudio_NES.o/dspinterface.c: +jaudio_NES/internal/dspinterface.c: .text start:0x8002FDA0 end:0x80030480 .data start:0x800DFA80 end:0x800DFEE0 .bss start:0x801B1640 end:0x801B76C0 .sdata start:0x80229A48 end:0x80229A58 -jaudio_NES.o/fxinterface.c: +jaudio_NES/internal/fxinterface.c: .text start:0x80030480 end:0x800305B4 .data start:0x800DFEE0 end:0x800DFEF8 -jaudio_NES.o/tables.c: +jaudio_NES/internal/tables.c: .text start:0x800305B4 end:0x800305C0 .data start:0x800DFEF8 end:0x800E00F8 -jaudio_NES.o/bankread.c: +jaudio_NES/internal/bankread.c: .text start:0x800305C0 end:0x800309A0 .bss start:0x801B76C0 end:0x801B7AC0 -jaudio_NES.o/waveread.c: +jaudio_NES/internal/waveread.c: .text start:0x800309A0 end:0x80030EA0 .bss start:0x801B7AC0 end:0x801B82C0 .bss start:0x80229918 end:0x80229958 align:4 common -jaudio_NES.o/connect.c: +jaudio_NES/internal/connect.c: .text start:0x80030EA0 end:0x80031540 .bss start:0x801B82C0 end:0x801B86C0 -jaudio_NES.o/bankdrv.c: +jaudio_NES/internal/bankdrv.c: .text start:0x80031540 end:0x80031CC0 .data start:0x800E00F8 end:0x800E0108 .sdata2 start:0x8022AF00 end:0x8022AF28 -jaudio_NES.o/random.c: +jaudio_NES/internal/random.c: .text start:0x80031CC0 end:0x80031D60 .sdata start:0x80229A58 end:0x80229A60 .sdata2 start:0x8022AF28 end:0x8022AF38 -jaudio_NES.o/aramcall.c: +jaudio_NES/internal/aramcall.c: .text start:0x80031D60 end:0x800320A0 .data start:0x800E0108 end:0x800E0148 .bss start:0x80229958 end:0x80229984 align:4 common .sdata start:0x80229A60 end:0x80229A68 .sbss start:0x8022A448 end:0x8022A450 -jaudio_NES.o/ja_calc.c: +jaudio_NES/internal/ja_calc.c: .text start:0x800320A0 end:0x800322C0 .bss start:0x801B86C0 end:0x801B8AC8 .sdata2 start:0x8022AF38 end:0x8022AF70 -jaudio_NES.o/fat.c: +jaudio_NES/internal/fat.c: .text start:0x800322C0 end:0x80032720 .bss start:0x801B8AC8 end:0x801B96C8 .sbss start:0x8022A450 end:0x8022A458 -jaudio_NES.o/cmdstack.c: +jaudio_NES/internal/cmdstack.c: .text start:0x80032720 end:0x800328C0 .sbss start:0x8022A458 end:0x8022A468 -jaudio_NES.o/heapctrl.c: +jaudio_NES/internal/heapctrl.c: .text start:0x800328C0 end:0x80032CE0 .sbss start:0x8022A468 end:0x8022A470 -jaudio_NES.o/jammain_2.c: +jaudio_NES/internal/jammain_2.c: .text start:0x80032CE0 end:0x80033BA0 .text start:0x80033BA0 end:0x80034680 .text start:0x80034680 end:0x80034960 @@ -433,31 +433,31 @@ jaudio_NES.o/jammain_2.c: .sbss start:0x8022A470 end:0x8022A480 .sdata2 start:0x8022AF70 end:0x8022AFC8 -jaudio_NES.o/noteon.c: +jaudio_NES/internal/noteon.c: .text start:0x80036B60 end:0x800370A0 .sdata2 start:0x8022AFC8 end:0x8022AFD0 -jaudio_NES.o/seqsetup.c: +jaudio_NES/internal/seqsetup.c: .text start:0x800370A0 end:0x80037DA0 .bss start:0x801B97E8 end:0x801FD440 .sbss start:0x8022A480 end:0x8022A490 .sdata2 start:0x8022AFD0 end:0x8022AFE0 -jaudio_NES.o/midplay.c: +jaudio_NES/internal/midplay.c: .text start:0x80037DA0 end:0x80037DA0 .data start:0x800E0408 end:0x800E0808 -jaudio_NES.o/centcalc.c: +jaudio_NES/internal/centcalc.c: .text start:0x80037DA0 end:0x80037E60 .data start:0x800E0808 end:0x800E0908 .sdata2 start:0x8022AFE0 end:0x8022AFF8 -jaudio_NES.o/jamosc.c: +jaudio_NES/internal/jamosc.c: .text start:0x80037E60 end:0x800382A0 .data start:0x800E0908 end:0x800E09F0 .sdata2 start:0x8022AFF8 end:0x8022B000 -jaudio_NES.o/oneshot.c: +jaudio_NES/internal/oneshot.c: .text start:0x800382A0 end:0x80038F80 .text start:0x80038F80 end:0x80039400 .text start:0x80039400 end:0x80039520 diff --git a/src/furniture/ac_ike_island_hako01.c b/src/furniture/ac_ike_island_hako01.c index 87ea7e1d..e9edf43f 100644 --- a/src/furniture/ac_ike_island_hako01.c +++ b/src/furniture/ac_ike_island_hako01.c @@ -42,6 +42,46 @@ static void fIIH_ct(FTR_ACTOR* ftr_actor, u8* data) { cKF_SkeletonInfo_R_play(keyf); } +// Aus version reworks the treasure chest movement animation to process the state +// on the current frame instead of the previous frame's state. +#if VERSION >= VER_GAFU01_00 +void fIIH_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + cKF_SkeletonInfo_R_c* keyf = &ftr_actor->keyframe; + int state = cKF_SkeletonInfo_R_play(keyf); + + if (state == cKF_STATE_STOPPED) { + keyf->frame_control.speed = 0.0f; + } + + if ((ftr_actor->switch_changed_flag != FALSE) && + (aMR_GetContactInfoLayer1()->contact_direction == aMR_CONTACT_DIR_FRONT) && + (state == cKF_STATE_STOPPED)) { + ftr_actor->dynamic_work_s[0] = (ftr_actor->dynamic_work_s[0] + 1) & 1; + if (ftr_actor->dynamic_work_s[0] != FALSE) { + cKF_SkeletonInfo_R_init_standard_stop(keyf, &cKF_ba_r_int_ike_island_hako01, NULL); + keyf->frame_control.start_frame = 1.0f; + keyf->frame_control.end_frame = cKF_ba_r_int_ike_island_hako01.frames; + keyf->frame_control.speed = 0.5f; + sAdo_OngenTrgStart(0x16AU, &ftr_actor->position); + } else { + cKF_SkeletonInfo_R_init_standard_stop(keyf, &cKF_ba_r_int_ike_island_hako02, NULL); + keyf->frame_control.start_frame = 1.0f; + keyf->frame_control.end_frame = cKF_ba_r_int_ike_island_hako02.frames; + keyf->frame_control.speed = 0.5f; + sAdo_OngenTrgStart(0x16B, &ftr_actor->position); + } + } + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + if (ftr_actor->dynamic_work_s[0] != 0) { + if (keyf->frame_control.current_frame > 25.0f) { + sAdo_OngenPos((u32)ftr_actor, 0x52, &ftr_actor->position); + } + } else if (keyf->frame_control.current_frame < 25.0f) { + sAdo_OngenPos((u32)ftr_actor, 0x52, &ftr_actor->position); + } + } +} +#else void fIIH_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { cKF_SkeletonInfo_R_c* keyf; @@ -77,6 +117,7 @@ void fIIH_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { keyf->frame_control.speed = 0.0f; } } +#endif void fIIH_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { GAME_PLAY* play = (GAME_PLAY*)game; diff --git a/src/furniture/ac_kon_snowtv.c b/src/furniture/ac_kon_snowtv.c index ff826b5f..76dc1ff4 100644 --- a/src/furniture/ac_kon_snowtv.c +++ b/src/furniture/ac_kon_snowtv.c @@ -1,3 +1,106 @@ +// Aus version changed the naming to use their 'standard' +// It also updates the mv func to remove the animation frame logic. +// The dw function was updated to use the game frame instead of an internal counter. +#if VERSION >= VER_GAFU01_00 +static void fKST_ct(FTR_ACTOR* ftr_actor, u8* data); +static void fKST_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +static void fKST_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); +static void fKST_dt(FTR_ACTOR* ftr_actor, u8* data); + +extern u8 int_kon_snowtv07a_TA_tex_txt[]; +extern u8 int_kon_snowtv07b_TA_tex_txt[]; +extern u8 int_kon_snowtv07c_TA_tex_txt[]; +extern u8 int_kon_snowtv07d_TA_tex_txt[]; + +extern Gfx int_kon_snowtv_body_model[]; +extern Gfx int_kon_snowtv_face_model[]; + +u8* fKST_on_anime_table[] = { + int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt, + int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt, + int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07b_TA_tex_txt, + int_kon_snowtv07b_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, + int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, + int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, + int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07c_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, + int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, + int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, + int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, +}; + +static void fKST_ct(FTR_ACTOR* ftr_actor, u8* data) { +} + +static void fKST_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + + if (ftr_actor->switch_bit != FALSE) { + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + sAdo_OngenPos((u32)ftr_actor, 0x2B, &ftr_actor->position); + } + } + + if (ftr_actor->switch_changed_flag != FALSE) { + if (ftr_actor->switch_bit != FALSE) { + sAdo_OngenTrgStart(0x16, &ftr_actor->position); + } else { + sAdo_OngenTrgStart(0x17, &ftr_actor->position); + } + } +} + +static void fKST_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + u8* anime; + u32 ctr_ofs; + + OPEN_DISP(game->graph); + + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + if (ftr_actor->switch_bit != FALSE) { + if (ftr_actor->ctr_type == aFTR_CTR_TYPE_GAME_PLAY) { + ctr_ofs = play->game_frame; + } else { + ctr_ofs = game->frame_counter; + } + anime = fKST_on_anime_table[(ctr_ofs >> 1) % ARRAY_COUNT(fKST_on_anime_table)]; + gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, anime); + } else { + gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, int_kon_snowtv07a_TA_tex_txt); + } + + gSPDisplayList(NEXT_POLY_OPA_DISP, int_kon_snowtv_face_model); + gSPDisplayList(NEXT_POLY_OPA_DISP, int_kon_snowtv_body_model); + + CLOSE_DISP(game->graph); +} + +static void fKST_dt(FTR_ACTOR* ftr_actor, u8* data) { +} + +static aFTR_vtable_c fKST_func = { + &fKST_ct, &fKST_mv, &fKST_dw, &fKST_dt, NULL, +}; + +aFTR_PROFILE iam_kon_snowtv = { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 18.0f, + 0.01f, + aFTR_SHAPE_TYPEA, + mCoBG_FTR_TYPEA, + 0, + 0, + 0, + aFTR_INTERACTION_START_DISABLED, + &fKST_func, +}; +#else static void aKonsnowtv_ct(FTR_ACTOR* ftr_actor, u8* data); static void aKonsnowtv_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); static void aKonsnowtv_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data); @@ -24,80 +127,70 @@ u8* aKonsnowtv_on_anime[] = { int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, int_kon_snowtv07d_TA_tex_txt, }; -static void aKonsnowtv_ct(FTR_ACTOR* ftr_actor, u8* data){ - +static void aKonsnowtv_ct(FTR_ACTOR* ftr_actor, u8* data) { } -static void aKonsnowtv_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data){ +static void aKonsnowtv_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { - if(ftr_actor->switch_bit != FALSE){ - if(aFTR_CAN_PLAY_SE(ftr_actor)){ - sAdo_OngenPos((u32) ftr_actor, 0x2B, &ftr_actor->position); + if (ftr_actor->switch_bit != FALSE) { + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + sAdo_OngenPos((u32)ftr_actor, 0x2B, &ftr_actor->position); } ftr_actor->tex_animation.frame++; - if(ftr_actor->tex_animation.frame >= 60 || ftr_actor->tex_animation.frame < 0){ + if (ftr_actor->tex_animation.frame >= 60 || ftr_actor->tex_animation.frame < 0) { ftr_actor->tex_animation.frame = 0; } - } - if(ftr_actor->switch_changed_flag != FALSE){ - if(ftr_actor->switch_bit != FALSE){ + if (ftr_actor->switch_changed_flag != FALSE) { + if (ftr_actor->switch_bit != FALSE) { sAdo_OngenTrgStart(0x16, &ftr_actor->position); - } - else{ + } else { sAdo_OngenTrgStart(0x17, &ftr_actor->position); } } - } static void aKonsnowtv_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { OPEN_DISP(game->graph); - gSPMatrix(NEXT_POLY_OPA_DISP,_Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - if(ftr_actor->switch_bit != FALSE){ + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + if (ftr_actor->switch_bit != FALSE) { u8* anime = aKonsnowtv_on_anime[(s16)(ftr_actor->tex_animation.frame >> 1)]; gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, anime); - } - else{ + } else { gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, int_kon_snowtv07a_TA_tex_txt); } - gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_snowtv_face_model); - gSPDisplayList(NEXT_POLY_OPA_DISP,int_kon_snowtv_body_model); + gSPDisplayList(NEXT_POLY_OPA_DISP, int_kon_snowtv_face_model); + gSPDisplayList(NEXT_POLY_OPA_DISP, int_kon_snowtv_body_model); CLOSE_DISP(game->graph); } -static void aKonsnowtv_dt(FTR_ACTOR* ftr_actor, u8* data){ - +static void aKonsnowtv_dt(FTR_ACTOR* ftr_actor, u8* data) { } - static aFTR_vtable_c aKonsnowtv_func = { - &aKonsnowtv_ct, - &aKonsnowtv_mv, - &aKonsnowtv_dw, - &aKonsnowtv_dt, - NULL, + &aKonsnowtv_ct, &aKonsnowtv_mv, &aKonsnowtv_dw, &aKonsnowtv_dt, NULL, }; aFTR_PROFILE iam_kon_snowtv = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - 18.0f, - 0.01f, - aFTR_SHAPE_TYPEA, - mCoBG_FTR_TYPEA, - 0, - 0, - 0, - aFTR_INTERACTION_START_DISABLED, - &aKonsnowtv_func, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 18.0f, + 0.01f, + aFTR_SHAPE_TYPEA, + mCoBG_FTR_TYPEA, + 0, + 0, + 0, + aFTR_INTERACTION_START_DISABLED, + &aKonsnowtv_func, }; +#endif diff --git a/src/furniture/ac_nog_fan01.c b/src/furniture/ac_nog_fan01.c index f5ec2d55..0de8a240 100644 --- a/src/furniture/ac_nog_fan01.c +++ b/src/furniture/ac_nog_fan01.c @@ -49,9 +49,11 @@ static void aNogFan_ct(FTR_ACTOR* ftr_actor, u8* data) { } static void aNogFan_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { - static int fan_kurukuru_data[] = { - 1, 1, 1, 2, 2, 2, 2, 2, 3, 0xFFFFFFFF, - }; +#if VERSION >= VER_GAFU01_00 + static int fan_rot_frame_counter_dat[] = { 1, 1, 1, 2, 2, 2, 2, 2, 3, -1 }; +#else + static int fan_kurukuru_data[] = { 1, 1, 1, 2, 2, 2, 2, 2, 3, -1 }; +#endif int num; int idx; @@ -61,27 +63,36 @@ static void aNogFan_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u aNogFan_ChangeSwitch(ftr_actor); if (ftr_actor->switch_bit != FALSE) { - f32 step = sqrtf(0.94999998807907); - - add_calc(&ftr_actor->dynamic_work_f[0], 0.5f, 1.0f - step, 0.25f, 0.0005f); + add_calc(&ftr_actor->dynamic_work_f[0], 0.5f, CALC_EASE(0.05f), 0.25f, 0.0005f); if (aFTR_CAN_PLAY_SE(ftr_actor)) { sAdo_OngenPos((u32)ftr_actor, 1, &ftr_actor->position); } } else { - f32 step = sqrtf(0.94999998807907); - - add_calc(&ftr_actor->dynamic_work_f[0], 0.0f, 1.0f - step, 0.25f, 0.0005f); + add_calc(&ftr_actor->dynamic_work_f[0], 0.0f, CALC_EASE(0.05f), 0.25f, 0.0005f); } keyf->frame_control.speed = ftr_actor->dynamic_work_f[0]; cKF_SkeletonInfo_R_play(keyf); idx = 9.0f - (2.0f * (ftr_actor->dynamic_work_f[0] * 9.0f)); + +#if VERSION >= VER_GAFU01_00 + if ((idx != ARRAY_COUNT(fan_rot_frame_counter_dat) - 1)) { + ftr_actor->dynamic_work_s[0]++; + num = fan_rot_frame_counter_dat[idx]; + if ((ftr_actor->dynamic_work_s[0] >= num)) { + ftr_actor->dynamic_work_s[0] = 0; + ftr_actor->tex_animation.frame++; + + if (ftr_actor->tex_animation.frame >= 6 || ftr_actor->tex_animation.frame < 0) { + ftr_actor->tex_animation.frame = 0; + } + } + } +#else ftr_actor->dynamic_work_s[0]++; - num = fan_kurukuru_data[idx]; - if ((num != -1) && (ftr_actor->dynamic_work_s[0] >= num)) { ftr_actor->dynamic_work_s[0] = 0; ftr_actor->tex_animation.frame++; @@ -90,6 +101,7 @@ static void aNogFan_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u ftr_actor->tex_animation.frame = 0; } } +#endif } static void aNogFan_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { diff --git a/src/furniture/ac_nog_nabe.c b/src/furniture/ac_nog_nabe.c index 76d5018d..80d8d3ca 100644 --- a/src/furniture/ac_nog_nabe.c +++ b/src/furniture/ac_nog_nabe.c @@ -17,7 +17,6 @@ u8* fNNB_texture_table[] = { extern Gfx int_nog_nabe_fire_model[]; void fNNB_ct(FTR_ACTOR* ftr_actor, u8* data) { cKF_SkeletonInfo_R_c* keyf; - u32 t; keyf = &ftr_actor->keyframe; cKF_SkeletonInfo_R_ct(keyf, &cKF_bs_r_int_nog_nabe, &cKF_ba_r_int_nog_nabe, ftr_actor->joint, ftr_actor->morph); @@ -25,9 +24,8 @@ void fNNB_ct(FTR_ACTOR* ftr_actor, u8* data) { keyf->frame_control.speed = 0.0f; keyf->frame_control.start_frame = 1.0f; keyf->frame_control.end_frame = cKF_ba_r_int_nog_nabe.frames; - t = 1 - ftr_actor->switch_bit; - ftr_actor->dynamic_work_s[0] = t > 0; - if (ftr_actor->dynamic_work_s[0] == 0) { + ftr_actor->dynamic_work_s[0] = ftr_actor->switch_bit != TRUE; + if (!ftr_actor->dynamic_work_s[0]) { keyf->frame_control.current_frame = cKF_ba_r_int_nog_nabe.frames; } cKF_SkeletonInfo_R_play(keyf); diff --git a/src/furniture/ac_sum_hal_table01.c b/src/furniture/ac_sum_hal_table01.c index e8c7ed55..9bfdd939 100644 --- a/src/furniture/ac_sum_hal_table01.c +++ b/src/furniture/ac_sum_hal_table01.c @@ -10,7 +10,11 @@ aFTR_PROFILE iam_sum_hal_table01 = { NULL, NULL, NULL, +#if VERSION >= VER_GAFU01_00 + 33.0f, +#else 32.0f, +#endif 0.01f, aFTR_SHAPE_TYPEC, mCoBG_FTR_TYPEC, diff --git a/src/furniture/ac_sum_tv01.c b/src/furniture/ac_sum_tv01.c index 9c1b9e7a..cdc750de 100644 --- a/src/furniture/ac_sum_tv01.c +++ b/src/furniture/ac_sum_tv01.c @@ -1,3 +1,105 @@ +// Aus version changed the naming to use their 'standard' +// It also updates the mv func to remove the animation frame logic. +// The dw function was updated to use the game frame instead of an internal counter. +#if VERSION >= VER_GAFU01_00 +static void fST01_ct(FTR_ACTOR* ftr_actor, u8* data) { + // nothing +} + +static void fST01_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (ftr_actor->switch_bit) { + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + sAdo_OngenPos((u32)ftr_actor, 5, &ftr_actor->position); + } + } + + if (ftr_actor->switch_changed_flag) { + if (ftr_actor->switch_bit) { + sAdo_OngenTrgStart(0x16, &ftr_actor->position); + } else { + sAdo_OngenTrgStart(0x17, &ftr_actor->position); + } + } +} + +extern u8 int_sum_tv01_front1_TA_tex_txt[]; +extern u8 int_sum_tv01_front2_TA_tex_txt[]; +extern u8 int_sum_tv01_front3_TA_tex_txt[]; +extern u8 int_sum_tv01_front4_TA_tex_txt[]; + +extern Gfx int_sum_tv01_on_model[]; +extern Gfx int_sum_tv01_off_model[]; + +static u8* fST01_on_anime[] = { + int_sum_tv01_front2_TA_tex_txt, int_sum_tv01_front2_TA_tex_txt, int_sum_tv01_front2_TA_tex_txt, + int_sum_tv01_front3_TA_tex_txt, int_sum_tv01_front3_TA_tex_txt, int_sum_tv01_front3_TA_tex_txt, + int_sum_tv01_front2_TA_tex_txt, int_sum_tv01_front2_TA_tex_txt, int_sum_tv01_front2_TA_tex_txt, + int_sum_tv01_front3_TA_tex_txt, int_sum_tv01_front3_TA_tex_txt, int_sum_tv01_front3_TA_tex_txt, + int_sum_tv01_front2_TA_tex_txt, int_sum_tv01_front2_TA_tex_txt, int_sum_tv01_front2_TA_tex_txt, + int_sum_tv01_front3_TA_tex_txt, int_sum_tv01_front3_TA_tex_txt, int_sum_tv01_front3_TA_tex_txt, + int_sum_tv01_front4_TA_tex_txt, int_sum_tv01_front4_TA_tex_txt, int_sum_tv01_front4_TA_tex_txt, + int_sum_tv01_front4_TA_tex_txt, int_sum_tv01_front2_TA_tex_txt, int_sum_tv01_front2_TA_tex_txt, + int_sum_tv01_front2_TA_tex_txt, int_sum_tv01_front2_TA_tex_txt, int_sum_tv01_front2_TA_tex_txt, +}; + +static void fST01_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + u32 ctr_ofs; + u8* tex; + + OPEN_DISP(game->graph); + + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + if (ftr_actor->switch_bit) { + if (ftr_actor->ctr_type == aFTR_CTR_TYPE_GAME_PLAY) { + ctr_ofs = play->game_frame; + } else { + ctr_ofs = game->frame_counter; + } + + tex = fST01_on_anime[(ctr_ofs >> 1) % ARRAY_COUNT(fST01_on_anime)]; + gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, tex); + } else { + gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, int_sum_tv01_front1_TA_tex_txt); + } + + gSPDisplayList(NEXT_POLY_OPA_DISP, int_sum_tv01_on_model); + gSPDisplayList(NEXT_POLY_OPA_DISP, int_sum_tv01_off_model); + + CLOSE_DISP(game->graph); +} + +static void fST01_dt(FTR_ACTOR* ftr_actor, u8* data) { + // nothing +} + +static aFTR_vtable_c fST01_func = { + &fST01_ct, &fST01_mv, &fST01_dw, &fST01_dt, NULL, +}; + +aFTR_PROFILE iam_sum_tv01 = { + // clang-format off + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 18.0f, + 0.01f, + aFTR_SHAPE_TYPEA, + mCoBG_FTR_TYPEA, + 0, + 0, + 0, + aFTR_INTERACTION_START_DISABLED, + &fST01_func, + // clang-format on +}; +#else static void aSumTv01_ct(FTR_ACTOR* ftr_actor, u8* data) { // nothing } @@ -92,3 +194,4 @@ aFTR_PROFILE iam_sum_tv01 = { &aSumTv01_func, // clang-format on }; +#endif diff --git a/src/furniture/ac_sum_tv02.c b/src/furniture/ac_sum_tv02.c index 943fdc5b..c5a46663 100644 --- a/src/furniture/ac_sum_tv02.c +++ b/src/furniture/ac_sum_tv02.c @@ -1,8 +1,102 @@ -static void aSumTv02_ct(FTR_ACTOR* ftr_actor, u8* data) { +// Aus version changed the naming to use their 'standard' +// It also updates the mv func to remove the animation frame logic. +// The dw function was updated to use the game frame instead of an internal counter. +#if VERSION >= VER_GAFU01_00 +static void fST02_ct(FTR_ACTOR* ftr_actor, u8* data) { // nothing } -static void aSumTv02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +static void fST02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + if (ftr_actor->switch_bit) { + if (aFTR_CAN_PLAY_SE(ftr_actor)) { + sAdo_OngenPos((u32)ftr_actor, 4, &ftr_actor->position); + } + } + + if (ftr_actor->switch_changed_flag) { + if (ftr_actor->switch_bit) { + sAdo_OngenTrgStart(0x16, &ftr_actor->position); + } else { + sAdo_OngenTrgStart(0x17, &ftr_actor->position); + } + } +} + +extern u8 int_sum_tv02_front1_TA_tex_txt[]; +extern u8 int_sum_tv02_front2_TA_tex_txt[]; +extern u8 int_sum_tv02_front3_TA_tex_txt[]; + +extern Gfx int_sum_tv02_on_model[]; +extern Gfx int_sum_tv02_off_model[]; + +static u8* fST02_on_anime[] = { + int_sum_tv02_front2_TA_tex_txt, int_sum_tv02_front2_TA_tex_txt, int_sum_tv02_front3_TA_tex_txt, + int_sum_tv02_front3_TA_tex_txt, int_sum_tv02_front3_TA_tex_txt, +}; + +static void fST02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { + GAME_PLAY* play = (GAME_PLAY*)game; + u32 ctr_ofs; + u8* tex; + + OPEN_DISP(game->graph); + + gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + if (ftr_actor->switch_bit) { + if (ftr_actor->ctr_type == aFTR_CTR_TYPE_GAME_PLAY) { + ctr_ofs = play->game_frame; + } else { + ctr_ofs = game->frame_counter; + } + + tex = fST02_on_anime[(ctr_ofs >> 1) % ARRAY_COUNT(fST02_on_anime)]; + gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, tex); + } else { + gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, int_sum_tv02_front1_TA_tex_txt); + } + + gSPDisplayList(NEXT_POLY_OPA_DISP, int_sum_tv02_on_model); + gSPDisplayList(NEXT_POLY_OPA_DISP, int_sum_tv02_off_model); + + CLOSE_DISP(game->graph); +} + +static void fST02_dt(FTR_ACTOR* ftr_actor, u8* data) { + // nothing +} + +static aFTR_vtable_c fST02_func = { + &fST02_ct, &fST02_mv, &fST02_dw, &fST02_dt, NULL, +}; + +aFTR_PROFILE iam_sum_tv02 = { + // clang-format off + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + 18.0f, + 0.01f, + aFTR_SHAPE_TYPEB_0, + mCoBG_FTR_TYPEB_0, + 0, + 0, + 0, + aFTR_INTERACTION_START_DISABLED, + &fST02_func, + // clang-format on +}; +#else +static void fST02_ct(FTR_ACTOR* ftr_actor, u8* data) { + // nothing +} + +static void fST02_mv(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { if (ftr_actor->switch_bit) { if (aFTR_CAN_PLAY_SE(ftr_actor)) { sAdo_OngenPos((u32)ftr_actor, 4, &ftr_actor->position); @@ -30,19 +124,19 @@ extern u8 int_sum_tv02_front3_TA_tex_txt[]; extern Gfx int_sum_tv02_on_model[]; extern Gfx int_sum_tv02_off_model[]; -static u8* aSumTv02_on_anime[] = { +static u8* fST02_on_anime[] = { int_sum_tv02_front2_TA_tex_txt, int_sum_tv02_front2_TA_tex_txt, int_sum_tv02_front3_TA_tex_txt, int_sum_tv02_front3_TA_tex_txt, int_sum_tv02_front3_TA_tex_txt, }; -static void aSumTv02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { +static void fST02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, u8* data) { OPEN_DISP(game->graph); gSPMatrix(NEXT_POLY_OPA_DISP, _Matrix_to_Mtx_new(game->graph), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); if (ftr_actor->switch_bit) { int frame = (s16)(ftr_actor->tex_animation.frame >> 1); - u8* tex = aSumTv02_on_anime[frame]; + u8* tex = fST02_on_anime[frame]; gSPSegment(NEXT_POLY_OPA_DISP, G_MWO_SEGMENT_8, tex); } else { @@ -55,12 +149,12 @@ static void aSumTv02_dw(FTR_ACTOR* ftr_actor, ACTOR* my_room_actor, GAME* game, CLOSE_DISP(game->graph); } -static void aSumTv02_dt(FTR_ACTOR* ftr_actor, u8* data) { +static void fST02_dt(FTR_ACTOR* ftr_actor, u8* data) { // nothing } -static aFTR_vtable_c aSumTv02_func = { - &aSumTv02_ct, &aSumTv02_mv, &aSumTv02_dw, &aSumTv02_dt, NULL, +static aFTR_vtable_c fST02_func = { + &fST02_ct, &fST02_mv, &fST02_dw, &fST02_dt, NULL, }; aFTR_PROFILE iam_sum_tv02 = { @@ -81,6 +175,7 @@ aFTR_PROFILE iam_sum_tv02 = { 0, 0, aFTR_INTERACTION_START_DISABLED, - &aSumTv02_func, + &fST02_func, // clang-format on }; +#endif diff --git a/src/furniture/ac_tak_table02.c b/src/furniture/ac_tak_table02.c index 6a6d4b22..278ea5b7 100644 --- a/src/furniture/ac_tak_table02.c +++ b/src/furniture/ac_tak_table02.c @@ -9,7 +9,11 @@ aFTR_PROFILE iam_tak_table02 = { NULL, NULL, NULL, +#if VERSION >= VER_GAFU01_00 + 31.0f, +#else 30.0f, +#endif 0.01f, aFTR_SHAPE_TYPEC, mCoBG_FTR_TYPEC,