From a54da956de3a0c1937865bd9428dce84789dcfaa Mon Sep 17 00:00:00 2001 From: Arceveti <73617174+Arceveti@users.noreply.github.com> Date: Sat, 27 Nov 2021 15:53:54 -0800 Subject: [PATCH] Reduce fish poly count from 38 to 24 --- actors/blue_fish/geo.inc.c | 8 +-- actors/blue_fish/model.inc.c | 94 ++++++++++++++++-------------------- actors/common1.h | 8 +-- 3 files changed, 50 insertions(+), 60 deletions(-) diff --git a/actors/blue_fish/geo.inc.c b/actors/blue_fish/geo.inc.c index a70704534..291a4b607 100644 --- a/actors/blue_fish/geo.inc.c +++ b/actors/blue_fish/geo.inc.c @@ -6,9 +6,9 @@ const GeoLayout fish_shadow_geo[] = { GEO_OPEN_NODE(), GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -16, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_body), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_tail), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), @@ -22,9 +22,9 @@ const GeoLayout fish_geo[] = { GEO_OPEN_NODE(), GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, -16, 0, 0, NULL), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_0301BFB8), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 0, 0, 0, blue_fish_seg3_dl_body), GEO_OPEN_NODE(), - GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_0301C150), + GEO_ANIMATED_PART(LAYER_OCCLUDE_SILHOUETTE_OPAQUE, 97, 0, 0, blue_fish_seg3_dl_tail), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), GEO_CLOSE_NODE(), diff --git a/actors/blue_fish/model.inc.c b/actors/blue_fish/model.inc.c index 3545358a4..c43bac9ba 100644 --- a/actors/blue_fish/model.inc.c +++ b/actors/blue_fish/model.inc.c @@ -12,48 +12,44 @@ ALIGNED8 static const Texture blue_fish_seg3_texture_0301B5E0[] = { }; // 0x0301BDE0 -static const Vtx blue_fish_seg3_vertex_0301BDE0[] = { - {{{ -108, 1, 0}, 0, { 14, 566}, {0x89, 0x00, 0xd7, 0xff}}}, - {{{ -44, -13, -31}, 0, { 286, 688}, {0xeb, 0x89, 0xdc, 0xff}}}, - {{{ -62, -19, 12}, 0, { 210, 502}, {0xe8, 0x84, 0x0a, 0xff}}}, - {{{ -44, 16, -31}, 0, { 286, 688}, {0xea, 0x77, 0xdc, 0xff}}}, - {{{ -62, 21, 12}, 0, { 210, 502}, {0xe8, 0x7c, 0x0b, 0xff}}}, - {{{ -47, 1, -64}, 0, { 274, 830}, {0xbd, 0xff, 0x95, 0xff}}}, - {{{ -97, 1, 23}, 0, { 62, 462}, {0xa2, 0x00, 0x54, 0xff}}}, - {{{ 55, 1, 127}, 0, { 712, -8}, {0x1a, 0x00, 0x7c, 0xff}}}, - {{{ 41, 16, 56}, 0, { 656, 298}, {0x43, 0x67, 0x1b, 0xff}}}, - {{{ 50, 16, -43}, 0, { 692, 722}, {0x35, 0x6f, 0xe6, 0xff}}}, - {{{ 41, -14, 56}, 0, { 656, 298}, {0x43, 0x99, 0x1b, 0xff}}}, - {{{ 50, -13, -43}, 0, { 692, 722}, {0x35, 0x91, 0xe6, 0xff}}}, - {{{ 62, 1, -92}, 0, { 742, 930}, {0x42, 0xff, 0x94, 0xff}}}, - {{{ 101, 1, 1}, 0, { 910, 520}, {0x7e, 0x00, 0x01, 0xff}}}, +static const Vtx blue_fish_seg3_vertex_body[] = { + {{{ -108, 1, 0}, 0, { 14, 566}, {0x89, 0x00, 0xd7, 0xff}}}, // 0 + {{{ -62, -19, 12}, 0, { 210, 502}, {0xe8, 0x84, 0x0a, 0xff}}}, // 1 + {{{ -62, 21, 12}, 0, { 210, 502}, {0xe8, 0x7c, 0x0b, 0xff}}}, // 2 + {{{ -47, 1, -64}, 0, { 274, 830}, {0xbd, 0xff, 0x95, 0xff}}}, // 3 + {{{ -97, 1, 23}, 0, { 62, 462}, {0xa2, 0x00, 0x54, 0xff}}}, // 4 + {{{ 55, 1, 127}, 0, { 712, -8}, {0x1a, 0x00, 0x7c, 0xff}}}, // 5 + {{{ 41, 16, 56}, 0, { 656, 298}, {0x43, 0x67, 0x1b, 0xff}}}, // 6 + {{{ 50, 16, -43}, 0, { 692, 722}, {0x35, 0x6f, 0xe6, 0xff}}}, // 7 + {{{ 41, -14, 56}, 0, { 656, 298}, {0x43, 0x99, 0x1b, 0xff}}}, // 8 + {{{ 50, -13, -43}, 0, { 692, 722}, {0x35, 0x91, 0xe6, 0xff}}}, // 9 + {{{ 62, 1, -92}, 0, { 742, 930}, {0x42, 0xff, 0x94, 0xff}}}, // 10 + {{{ 101, 1, 1}, 0, { 910, 520}, {0x7e, 0x00, 0x01, 0xff}}}, // 11 }; // 0x0301BEC0 - 0x0301BFB8 -const Gfx blue_fish_seg3_dl_0301BEC0[] = { +const Gfx blue_fish_seg3_sub_dl_body[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPLight(&blue_fish_seg3_lights_0301B5C8.l, 1), gsSPLight(&blue_fish_seg3_lights_0301B5C8.a, 2), - gsSPVertex(blue_fish_seg3_vertex_0301BDE0, 14, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0), - gsSP2Triangles( 5, 0, 3, 0x0, 2, 6, 0, 0x0), - gsSP2Triangles( 0, 6, 4, 0x0, 5, 1, 0, 0x0), - gsSP2Triangles( 4, 6, 7, 0x0, 6, 2, 7, 0x0), - gsSP2Triangles( 7, 8, 4, 0x0, 9, 4, 8, 0x0), - gsSP2Triangles( 9, 3, 4, 0x0, 2, 10, 7, 0x0), - gsSP2Triangles( 1, 11, 2, 0x0, 11, 10, 2, 0x0), - gsSP2Triangles( 1, 5, 12, 0x0, 12, 5, 3, 0x0), - gsSP2Triangles( 9, 11, 12, 0x0, 3, 9, 12, 0x0), - gsSP2Triangles(12, 11, 1, 0x0, 8, 7, 10, 0x0), - gsSP2Triangles(13, 9, 8, 0x0, 9, 13, 11, 0x0), - gsSP2Triangles(11, 13, 10, 0x0, 10, 13, 8, 0x0), + gsSPVertex(blue_fish_seg3_vertex_body, 12, 0), + gsSP2Triangles( 3, 0, 2, 0x0, 1, 4, 0, 0x0), + gsSP2Triangles( 0, 4, 2, 0x0, 3, 1, 0, 0x0), + gsSP2Triangles( 2, 4, 5, 0x0, 4, 1, 5, 0x0), + gsSP2Triangles( 5, 6, 2, 0x0, 7, 2, 6, 0x0), + gsSP2Triangles( 1, 8, 5, 0x0, 9, 8, 1, 0x0), + gsSP2Triangles( 1, 3, 10, 0x0, 10, 3, 2, 0x0), + gsSP2Triangles( 7, 9, 10, 0x0, 2, 7, 10, 0x0), + gsSP2Triangles(10, 9, 1, 0x0, 6, 5, 8, 0x0), + gsSP2Triangles(11, 7, 6, 0x0, 7, 11, 9, 0x0), + gsSP2Triangles( 9, 11, 8, 0x0, 8, 11, 6, 0x0), gsSPEndDisplayList(), }; // 0x0301BFB8 - 0x0301C018 -const Gfx blue_fish_seg3_dl_0301BFB8[] = { +const Gfx blue_fish_seg3_dl_body[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), @@ -61,7 +57,7 @@ const Gfx blue_fish_seg3_dl_0301BFB8[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPDisplayList(blue_fish_seg3_dl_0301BEC0), + gsSPDisplayList(blue_fish_seg3_sub_dl_body), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), @@ -69,48 +65,42 @@ const Gfx blue_fish_seg3_dl_0301BFB8[] = { }; // 0x0301C018 -static const Vtx blue_fish_seg3_vertex_0301C018[] = { - {{{ 67, 0, -58}, 0, { 736, 728}, {0x7a, 0x00, 0xde, 0xff}}}, - {{{ 67, -3, -28}, 0, { 704, 574}, {0x53, 0xa3, 0x14, 0xff}}}, - {{{ 0, 1, -3}, 0, { 1022, 356}, {0xa1, 0xf9, 0xad, 0xff}}}, - {{{ 67, 4, 27}, 0, { 644, 290}, {0x3f, 0x6d, 0xf3, 0xff}}}, - {{{ 53, 0, 0}, 0, { 744, 414}, {0x7e, 0x00, 0xfe, 0xff}}}, - {{{ 67, -3, 27}, 0, { 644, 290}, {0x40, 0x95, 0xeb, 0xff}}}, - {{{ 0, 0, 5}, 0, { 1016, 312}, {0x9e, 0xfd, 0x50, 0xff}}}, - {{{ 67, 4, -28}, 0, { 704, 574}, {0x54, 0x5c, 0x15, 0xff}}}, - {{{ 67, 0, 57}, 0, { 612, 138}, {0x7a, 0x00, 0x22, 0xff}}}, +static const Vtx blue_fish_seg3_vertex_tail[] = { + {{{ 67, 0, -58}, 0, { 736, 728}, {0x7a, 0x00, 0xde, 0xff}}}, // 0 bottom tip + {{{ 67, 0, -28}, 0, { 704, 574}, {0x54, 0x7f, 0x14, 0xff}}}, // 1 lower + {{{ 0, 0, 0}, 0, { 1019, 336}, {0xa0, 0xfb, 0x7e, 0xff}}}, // 2 joint + {{{ 53, 0, 0}, 0, { 744, 414}, {0x7e, 0x00, 0xfe, 0xff}}}, // 3 middle + {{{ 67, 0, 27}, 0, { 644, 290}, {0x40, 0x7f, 0xef, 0xff}}}, // 4 upper + {{{ 67, 0, 57}, 0, { 612, 138}, {0x7a, 0x00, 0x22, 0xff}}}, // 5 top tip }; // 0x0301C0A8 - 0x0301C150 -const Gfx blue_fish_seg3_dl_0301C0A8[] = { +const Gfx blue_fish_seg3_sub_dl_tail[] = { gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, blue_fish_seg3_texture_0301B5E0), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)), gsSPLight(&blue_fish_seg3_lights_0301B5C8.l, 1), gsSPLight(&blue_fish_seg3_lights_0301B5C8.a, 2), - gsSPVertex(blue_fish_seg3_vertex_0301C018, 9, 0), - gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 4, 0x0), - gsSP2Triangles( 4, 5, 2, 0x0, 2, 5, 6, 0x0), - gsSP2Triangles( 2, 1, 4, 0x0, 2, 6, 3, 0x0), - gsSP2Triangles( 4, 7, 2, 0x0, 2, 7, 0, 0x0), - gsSP2Triangles( 6, 8, 3, 0x0, 3, 8, 5, 0x0), - gsSP2Triangles( 3, 5, 4, 0x0, 4, 1, 7, 0x0), - gsSP2Triangles( 6, 5, 8, 0x0, 1, 0, 7, 0x0), + gsSPVertex(blue_fish_seg3_vertex_tail, 6, 0), + gsSP2Triangles( 2, 4, 3, 0x0, 3, 1, 2, 0x0), + gsSP2Triangles( 2, 1, 0, 0x0, 2, 5, 4, 0x0), gsSPEndDisplayList(), }; // 0x0301C150 - 0x0301C1B0 -const Gfx blue_fish_seg3_dl_0301C150[] = { +const Gfx blue_fish_seg3_dl_tail[] = { gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB), + gsSPClearGeometryMode(G_CULL_BACK), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, G_TX_LOADTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK, G_TX_NOLOD), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC), - gsSPDisplayList(blue_fish_seg3_dl_0301C0A8), + gsSPDisplayList(blue_fish_seg3_sub_dl_tail), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF), gsDPPipeSync(), gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), + gsSPSetGeometryMode(G_CULL_BACK), gsSPEndDisplayList(), }; diff --git a/actors/common1.h b/actors/common1.h index 42ae8e256..1e0a25fb6 100644 --- a/actors/common1.h +++ b/actors/common1.h @@ -6,10 +6,10 @@ // blue_fish extern const GeoLayout fish_shadow_geo[]; extern const GeoLayout fish_geo[]; -extern const Gfx blue_fish_seg3_dl_0301BEC0[]; -extern const Gfx blue_fish_seg3_dl_0301BFB8[]; -extern const Gfx blue_fish_seg3_dl_0301C0A8[]; -extern const Gfx blue_fish_seg3_dl_0301C150[]; +extern const Gfx blue_fish_seg3_sub_dl_body[]; +extern const Gfx blue_fish_seg3_dl_body[]; +extern const Gfx blue_fish_seg3_sub_dl_tail[]; +extern const Gfx blue_fish_seg3_dl_tail[]; extern const struct Animation *const blue_fish_seg3_anims_0301C2B0[]; // bowser_key