From 55dc1b64033dd1f148aac1628294cf8e20b089be Mon Sep 17 00:00:00 2001 From: Agent X <44549182+Agent-11@users.noreply.github.com> Date: Sun, 14 May 2023 22:15:25 -0400 Subject: [PATCH] Reset paintings on network shutdown (#393) --- levels/castle_inside/header.h | 14 ++ levels/castle_inside/painting.inc.c | 378 ++++++++++++++++++++++++++++ levels/hmc/areas/1/painting.inc.c | 27 ++ levels/hmc/header.h | 1 + levels/ttm/areas/1/painting.inc.c | 27 ++ levels/ttm/header.h | 1 + src/game/hardcoded.c | 20 ++ 7 files changed, 468 insertions(+) diff --git a/levels/castle_inside/header.h b/levels/castle_inside/header.h index 285d84cb..cf61ec45 100644 --- a/levels/castle_inside/header.h +++ b/levels/castle_inside/header.h @@ -73,6 +73,20 @@ extern struct Painting ttm_painting; extern struct Painting ttc_painting; extern struct Painting sl_painting; extern struct Painting thi_huge_painting; +extern struct Painting default_bob_painting; +extern struct Painting default_ccm_painting; +extern struct Painting default_wf_painting; +extern struct Painting default_jrb_painting; +extern struct Painting default_lll_painting; +extern struct Painting default_ssl_painting; +extern struct Painting default_hmc_painting; +extern struct Painting default_ddd_painting; +extern struct Painting default_wdw_painting; +extern struct Painting default_thi_tiny_painting; +extern struct Painting default_ttm_painting; +extern struct Painting default_ttc_painting; +extern struct Painting default_sl_painting; +extern struct Painting default_thi_huge_painting; extern const Gfx inside_castle_seg7_dl_07023DB0[]; extern const Gfx inside_castle_seg7_dl_07028FD0[]; extern const Gfx inside_castle_seg7_dl_07029578[]; diff --git a/levels/castle_inside/painting.inc.c b/levels/castle_inside/painting.inc.c index 8508d58d..fe277e41 100644 --- a/levels/castle_inside/painting.inc.c +++ b/levels/castle_inside/painting.inc.c @@ -1743,3 +1743,381 @@ struct Painting thi_huge_painting = { /* Size */ 1638.4f, /* Ripples */ { 0 }, }; + +struct Painting default_bob_painting = { + /* id */ 0x0000, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 90.0f, + /* Position */ -5222.4f, 409.6f, -153.6f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_07023050, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_070235C0, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 614.0f, + /* Ripples */ { 0 }, +}; + +struct Painting default_ccm_painting = { + /* id */ 0x0001, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 0.0f, + /* Position */ -2611.2f, -307.2f, -4352.0f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_070230B0, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_070235C8, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 614.0f, + /* Ripples */ { 0 }, +}; + +struct Painting default_wf_painting = { + /* id */ 0x0002, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 0.0f, + /* Position */ -51.2f, -204.8f, -4505.6f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_07023110, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_070235D0, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 614.0f, + /* Ripples */ { 0 }, +}; + +struct Painting default_jrb_painting = { + /* id */ 0x0003, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 270.0f, + /* Position */ 4300.8f, 409.6f, -537.6f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_07023170, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_070235D8, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 614.0f, + /* Ripples */ { 0 }, +}; + +struct Painting default_lll_painting = { + /* id */ 0x0004, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 0.0f, + /* Position */ -1689.6f, -1126.4f, -3942.4f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_070231D0, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_070235E0, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 614.0f, + /* Ripples */ { 0 }, +}; + +struct Painting default_ssl_painting = { + /* id */ 0x0005, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 180.0f, + /* Position */ -2611.2f, -1177.6f, -1075.2f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_07023230, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_070235E8, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 614.0f, + /* Ripples */ { 0 }, +}; + +struct Painting default_hmc_painting = { + /* id */ 0x000E, + /* Image Count */ 0x01, + /* Texture Type */ PAINTING_ENV_MAP, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 270.0f, 0.0f, + /* Position */ 2099.2f, -1484.8f, -2278.4f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 10.0f, 30.0f, + /* Ripple Decay */ 1.0f, 1.0f, 0.98f, + /* Ripple Rate */ 0.0f, 0.05f, 0.05f, + /* Ripple Dispersion */ 0.0f, 15.0f, 15.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_07023580, + /* Texture Maps */ inside_castle_seg7_painting_env_map_texture_maps_07023044, + /* Textures */ inside_castle_seg7_painting_textures_070235F0, + /* Texture w, h */ 32, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07022640, + /* Ripple Trigger */ RIPPLE_TRIGGER_CONTINUOUS, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 768.0f, + /* Ripples */ { 0 }, +}; + +struct Painting default_ddd_painting = { + /* id */ 0x0007, + /* Image Count */ 0x01, + /* Texture Type */ PAINTING_ENV_MAP, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 270.0f, + /* Position */ 3456.0f, -1075.2f, 1587.2f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 10.0f, 30.0f, + /* Ripple Decay */ 1.0f, 1.0f, 0.98f, + /* Ripple Rate */ 0.0f, 0.05f, 0.05f, + /* Ripple Dispersion */ 0.0f, 15.0f, 15.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_070235B8, + /* Texture Maps */ inside_castle_seg7_painting_env_map_texture_maps_07023044, + /* Textures */ inside_castle_seg7_painting_textures_070235F4, + /* Texture w, h */ 32, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07022640, + /* Ripple Trigger */ RIPPLE_TRIGGER_CONTINUOUS, + /* Alpha */ 0xB4, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 819.2f, + /* Ripples */ { 0 }, +}; + +struct Painting default_wdw_painting = { + /* id */ 0x0008, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 0.0f, + /* Position */ -966.656f, 1305.6f, -143.36f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_07023290, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_070235F8, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 614.0f, + /* Ripples */ { 0 }, +}; + +struct Painting default_thi_tiny_painting = { + /* id */ 0x0009, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 180.0f, + /* Position */ -4598.7842f, 1354.752f, 3005.44f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_070232F0, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_07023600, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 393.216f, + /* Ripples */ { 0 }, +}; + +struct Painting default_ttm_painting = { + /* id */ 0x000A, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 180.0f, + /* Position */ -546.816f, 1356.8f, 3813.376f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_07023350, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_07023608, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 256.0f, + /* Ripples */ { 0 }, +}; + +struct Painting default_ttc_painting = { + /* id */ 0x000B, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 180.0f, + /* Position */ 0.0f, 2713.6f, 7232.5122f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_070233B0, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_07023610, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 409.6f, + /* Ripples */ { 0 }, +}; + +struct Painting default_sl_painting = { + /* id */ 0x000C, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 0.0f, + /* Position */ 3179.52f, 1408.0f, -271.36f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_07023410, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_07023618, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 716.8f, + /* Ripples */ { 0 }, +}; + +struct Painting default_thi_huge_painting = { + /* id */ 0x000D, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 0.0f, + /* Position */ -5614.5918f, 1510.4f, -3292.16f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 40.0f, 160.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.12f, 0.07f, + /* Ripple Dispersion */ 0.0f, 80.0f, 60.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ inside_castle_seg7_painting_dl_070232F0, + /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518, + /* Textures */ inside_castle_seg7_painting_textures_07023600, + /* Texture w, h */ 64, 32, + /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 1638.4f, + /* Ripples */ { 0 }, +}; diff --git a/levels/hmc/areas/1/painting.inc.c b/levels/hmc/areas/1/painting.inc.c index 06685e34..64d520a9 100644 --- a/levels/hmc/areas/1/painting.inc.c +++ b/levels/hmc/areas/1/painting.inc.c @@ -547,3 +547,30 @@ struct Painting cotmc_painting = { /* Size */ 723.968018f, /* Ripples */ { 0 }, }; + +struct Painting default_cotmc_painting = { + /* id */ 0x000E, + /* Image Count */ 0x01, + /* Texture Type */ PAINTING_ENV_MAP, + /* Floor Status */ 0x00, 0x00 , 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 270.0f, 0.0f, + /* Position */ 2989.055908f, -4485.120117f, 5135.359863f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 10.0f, 30.0f, + /* Ripple Decay */ 1.0f, 1.0f, 0.98f, + /* Ripple Rate */ 0.0f, 0.05f, 0.05f, + /* Ripple Dispersion */ 0.0f, 15.0f, 15.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ hmc_seg7_painting_dl_070254E0, + /* Texture Maps */ hmc_seg7_painting_texture_maps_07024CD4, + /* Textures */ hmc_seg7_painting_textures_07025518, + /* Texture w, h */ 32, 32, + /* Ripple DList */ hmc_seg7_painting_dl_070242D0, + /* Ripple Trigger */ RIPPLE_TRIGGER_CONTINUOUS, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 723.968018f, + /* Ripples */ { 0 }, +}; diff --git a/levels/hmc/header.h b/levels/hmc/header.h index 6cf715a6..b4f8cb4c 100644 --- a/levels/hmc/header.h +++ b/levels/hmc/header.h @@ -76,6 +76,7 @@ extern const Gfx hmc_seg7_dl_07024268[]; extern const Gfx hmc_seg7_dl_070242A0[]; extern const u8 *const hmc_seg7_painting_textures_07025518[]; extern struct Painting cotmc_painting; +extern struct Painting default_cotmc_painting; extern const Collision hmc_seg7_collision_level[]; extern const MacroObject hmc_seg7_macro_objs[]; extern const u8 hmc_seg7_rooms[]; diff --git a/levels/ttm/areas/1/painting.inc.c b/levels/ttm/areas/1/painting.inc.c index 0c9692b8..32b69a83 100644 --- a/levels/ttm/areas/1/painting.inc.c +++ b/levels/ttm/areas/1/painting.inc.c @@ -576,3 +576,30 @@ struct Painting ttm_slide_painting = { /* Size */ 460.8f, /* Ripples */ { 0 }, }; + +struct Painting default_ttm_slide_painting = { + /* id */ 0x0000, + /* Image Count */ 0x02, + /* Texture Type */ PAINTING_IMAGE, + /* Floor Status */ 0x00, 0x00, 0x00 /* which of the painting's nearby special floors Mario's on */, + /* Ripple Status */ 0x00, + /* Rotation */ 0.0f, 90.0f, + /* Position */ 3072.0f, 921.6f, -819.2f, + /* curr passive entry */ + /* Ripple Magnitude */ 0.0f, 20.0f, 80.0f, + /* Ripple Decay */ 1.0f, 0.9608f, 0.9524f, + /* Ripple Rate */ 0.0f, 0.24f, 0.14f, + /* Ripple Dispersion */ 0.0f, 40.0f, 30.0f, + /* Curr Ripple Timer */ 0.0f, + /* Curr Ripple x, y */ 0.0f, 0.0f, + /* Normal DList */ ttm_seg7_painting_dl_07012E98, + /* Texture Maps */ ttm_seg7_painting_texture_maps_07012E88, + /* Textures */ ttm_seg7_painting_textures_07012EF8, + /* Texture w, h */ 64, 32, + /* Ripple DList */ ttm_seg7_painting_dl_07012430, + /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY, + /* Alpha */ 0xFF, + /* Mario Below */ 0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */ + /* Size */ 460.8f, + /* Ripples */ { 0 }, +}; diff --git a/levels/ttm/header.h b/levels/ttm/header.h index 3c060526..c7d38df7 100644 --- a/levels/ttm/header.h +++ b/levels/ttm/header.h @@ -72,6 +72,7 @@ extern const Gfx ttm_seg7_dl_070123A0[]; extern const Gfx ttm_seg7_dl_070123B8[]; extern const Gfx ttm_seg7_dl_07012410[]; extern struct Painting ttm_slide_painting; +extern struct Painting default_ttm_slide_painting; extern const Gfx ttm_seg7_dl_07013430[]; extern const Gfx ttm_seg7_dl_07013608[]; extern const Collision ttm_seg7_collision_pitoune_2[]; diff --git a/src/game/hardcoded.c b/src/game/hardcoded.c index d088aa50..f22774e9 100644 --- a/src/game/hardcoded.c +++ b/src/game/hardcoded.c @@ -299,5 +299,25 @@ __attribute__((constructor)) void hardcoded_reset_default_values(void) { gLevelValues = gDefaultLevelValues; gBehaviorValues = gDefaultBehaviorValues; + + memcpy(&cotmc_painting, &default_cotmc_painting, sizeof(struct Painting)); + + memcpy(&bob_painting, &default_bob_painting, sizeof(struct Painting)); + memcpy(&ccm_painting, &default_ccm_painting, sizeof(struct Painting)); + memcpy(&wf_painting, &default_wf_painting, sizeof(struct Painting)); + memcpy(&jrb_painting, &default_jrb_painting, sizeof(struct Painting)); + memcpy(&lll_painting, &default_lll_painting, sizeof(struct Painting)); + memcpy(&ssl_painting, &default_ssl_painting, sizeof(struct Painting)); + memcpy(&hmc_painting, &default_hmc_painting, sizeof(struct Painting)); + memcpy(&ddd_painting, &default_ddd_painting, sizeof(struct Painting)); + memcpy(&wdw_painting, &default_wdw_painting, sizeof(struct Painting)); + memcpy(&thi_tiny_painting, &default_thi_tiny_painting, sizeof(struct Painting)); + memcpy(&ttm_painting, &default_ttm_painting, sizeof(struct Painting)); + memcpy(&ttc_painting, &default_ttc_painting, sizeof(struct Painting)); + memcpy(&sl_painting, &default_sl_painting, sizeof(struct Painting)); + memcpy(&thi_huge_painting, &default_thi_huge_painting, sizeof(struct Painting)); + + memcpy(&ttm_slide_painting, &default_ttm_slide_painting, sizeof(struct Painting)); + gPaintingValues = gDefaultPaintingValues; }