From 19fdd010ce78082b80f10028106b8db7364cafe1 Mon Sep 17 00:00:00 2001 From: Cuyler36 Date: Fri, 13 Oct 2023 06:47:23 -0400 Subject: [PATCH] Implement & link m_scene_ftr.c --- rel/m_scene_ftr.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 rel/m_scene_ftr.c diff --git a/rel/m_scene_ftr.c b/rel/m_scene_ftr.c new file mode 100644 index 00000000..ca9a1d52 --- /dev/null +++ b/rel/m_scene_ftr.c @@ -0,0 +1,35 @@ +#include "m_scene_ftr.h" + +#include "m_scene.h" +#include "m_play.h" + +static void mScn_KeepMyRoomBankNew(Object_Exchange_c* exchange, s16 bank_id, size_t size) { + Object_Bank_c* bank = exchange->banks + exchange->bank_idx; + + bank->bank_id = bank_id; + bank->dma_start = exchange->next_bank_ram_address; + bank->ram_start = exchange->next_bank_ram_address; + bank->size = size; + + if (exchange->bank_idx < (mSc_OBJECT_BANK_NUM - 1)) { + exchange->next_bank_ram_address = (char*)ALIGN_NEXT((u32)exchange->next_bank_ram_address + size, 16); + exchange->bank_idx++; + } +} + +static void mScn_ObtainCarpetBank(GAME_PLAY* play) { + Object_Exchange_c* exchange = &play->object_exchange; + int i; + + for (i = 0; i < 2; i++) { + mScn_KeepMyRoomBankNew(exchange, 18, 0x2020); // carpet tex + pal + } + + for (i = 0; i < 2; i++) { + mScn_KeepMyRoomBankNew(exchange, 19, 0x1020); // wall tex + pal + } +} + +extern void mScn_ObtainMyRoomBank(GAME_PLAY* play) { + mScn_ObtainCarpetBank(play); +}