sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

model.inc.c (28618B)


      1 // Lakitu Enemy
      2 
      3 // Unreferenced light group
      4 UNUSED static const Lights1 lakitu_enemy_lights_unused1 = gdSPDefLights1(
      5     0x33, 0x1f, 0x0c,
      6     0xcc, 0x7f, 0x33, 0x28, 0x28, 0x28
      7 );
      8 
      9 // 0x0500ECB0
     10 static const Lights1 lakitu_enemy_seg5_lights_0500ECB0 = gdSPDefLights1(
     11     0x29, 0x13, 0x06,
     12     0xa5, 0x4f, 0x1b, 0x28, 0x28, 0x28
     13 );
     14 
     15 // Unreferenced light group
     16 UNUSED static const Lights1 lakitu_enemy_lights_unused2 = gdSPDefLights1(
     17     0x0d, 0x2c, 0x0b,
     18     0x34, 0xb2, 0x2c, 0x28, 0x28, 0x28
     19 );
     20 
     21 // Unreferenced texture
     22 // 0x0500ECE0
     23 ALIGNED8 static const Texture lakitu_enemy_seg5_texture_0500ECE0[] = {
     24 #include "actors/lakitu_enemy/lakitu_enemy_cloud_face_unused.rgba16.inc.c"
     25 };
     26 
     27 // 0x0500F4E0
     28 ALIGNED8 static const Texture lakitu_enemy_seg5_texture_0500F4E0[] = {
     29 #include "actors/lakitu_enemy/lakitu_enemy_eyes_open.rgba16.inc.c"
     30 };
     31 
     32 // 0x050104E0
     33 ALIGNED8 static const Texture lakitu_enemy_seg5_texture_050104E0[] = {
     34 #include "actors/lakitu_enemy/lakitu_enemy_eyes_closed.rgba16.inc.c"
     35 };
     36 
     37 // 0x050114E0
     38 ALIGNED8 static const Texture lakitu_enemy_seg5_texture_050114E0[] = {
     39 #include "actors/lakitu_enemy/lakitu_enemy_shell.rgba16.inc.c"
     40 };
     41 
     42 // 0x05011CE0
     43 ALIGNED8 static const Texture lakitu_enemy_seg5_texture_05011CE0[] = {
     44 #include "actors/lakitu_enemy/lakitu_enemy_frown.rgba16.inc.c"
     45 };
     46 
     47 // 0x050124E0
     48 static const Lights1 lakitu_enemy_seg5_lights_050124E0 = gdSPDefLights1(
     49     0x7f, 0x7f, 0x7f,
     50     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
     51 );
     52 
     53 // 0x050124F8
     54 static const Lights1 lakitu_enemy_seg5_lights_050124F8 = gdSPDefLights1(
     55     0x79, 0x55, 0x00,
     56     0xf2, 0xab, 0x00, 0x28, 0x28, 0x28
     57 );
     58 
     59 // 0x05012510
     60 static const Vtx lakitu_enemy_seg5_vertex_05012510[] = {
     61     {{{    91,    -25,     86}, 0, {   240,    464}, {0x3e, 0xd0, 0x63, 0xff}}},
     62     {{{   132,    -17,     43}, 0, {    34,    468}, {0x71, 0xce, 0x1a, 0xff}}},
     63     {{{   137,     35,     43}, 0, {     0,    980}, {0x64, 0x33, 0x39, 0xff}}},
     64     {{{    -2,     15,    -96}, 0, {   684,    990}, {0xd6, 0x33, 0x94, 0xff}}},
     65     {{{    84,     28,    -96}, 0, {   242,    984}, {0x36, 0x2a, 0x96, 0xff}}},
     66     {{{    91,    -22,    -81}, 0, {   240,    474}, {0x24, 0xc2, 0x98, 0xff}}},
     67     {{{   137,     35,    -40}, 0, {     0,    980}, {0x66, 0x45, 0xe3, 0xff}}},
     68     {{{   132,    -17,    -40}, 0, {    34,    468}, {0x6a, 0xd6, 0xcb, 0xff}}},
     69     {{{    84,    -76,    -28}, 0, {   310,    -14}, {0x3a, 0x94, 0xe4, 0xff}}},
     70     {{{    22,    -84,    -28}, 0, {   612,    -10}, {0xeb, 0x8f, 0xcb, 0xff}}},
     71     {{{     2,    -35,    -81}, 0, {   684,    480}, {0xd1, 0xbf, 0x9f, 0xff}}},
     72     {{{    22,    -84,     30}, 0, {   612,    -10}, {0xe0, 0x89, 0x1b, 0xff}}},
     73     {{{    84,    -76,     30}, 0, {   310,    -14}, {0x30, 0x97, 0x33, 0xff}}},
     74     {{{     2,    -35,     86}, 0, {   684,    470}, {0xea, 0xbb, 0x67, 0xff}}},
     75     {{{    84,     28,     99}, 0, {   242,    984}, {0x1f, 0x28, 0x74, 0xff}}},
     76     {{{    -2,     15,     99}, 0, {   684,    990}, {0xc1, 0x34, 0x60, 0xff}}},
     77 };
     78 
     79 // 0x05012610
     80 static const Vtx lakitu_enemy_seg5_vertex_05012610[] = {
     81     {{{    -2,     15,     99}, 0, {   684,    990}, {0xc1, 0x34, 0x60, 0xff}}},
     82     {{{   -56,      7,     43}, 0, {   958,    992}, {0x87, 0x10, 0x21, 0xff}}},
     83     {{{   -33,    -40,     43}, 0, {   884,    484}, {0xa3, 0xbb, 0x31, 0xff}}},
     84     {{{     2,    -35,     86}, 0, {   684,    470}, {0xea, 0xbb, 0x67, 0xff}}},
     85     {{{    22,    -84,     30}, 0, {   612,    -10}, {0xe0, 0x89, 0x1b, 0xff}}},
     86     {{{   -33,    -40,    -40}, 0, {   884,    484}, {0xa1, 0xb1, 0xe7, 0xff}}},
     87     {{{   -56,      7,    -40}, 0, {   958,    992}, {0x90, 0x14, 0xc9, 0xff}}},
     88     {{{    22,    -84,    -28}, 0, {   612,    -10}, {0xeb, 0x8f, 0xcb, 0xff}}},
     89     {{{     2,    -35,    -81}, 0, {   684,    480}, {0xd1, 0xbf, 0x9f, 0xff}}},
     90     {{{    -2,     15,    -96}, 0, {   684,    990}, {0xd6, 0x33, 0x94, 0xff}}},
     91 };
     92 
     93 // 0x050126B0
     94 static const Vtx lakitu_enemy_seg5_vertex_050126B0[] = {
     95     {{{     0,     51,      0}, 0, {     0,      0}, {0xcf, 0x75, 0x00, 0xff}}},
     96     {{{    68,     61,     35}, 0, {     0,      0}, {0x09, 0x7b, 0x1a, 0xff}}},
     97     {{{    68,     61,    -33}, 0, {     0,      0}, {0x01, 0x7a, 0xe0, 0xff}}},
     98     {{{    84,     28,    -96}, 0, {     0,      0}, {0x36, 0x2a, 0x96, 0xff}}},
     99     {{{    -2,     15,    -96}, 0, {     0,      0}, {0xd6, 0x33, 0x94, 0xff}}},
    100     {{{   137,     35,    -40}, 0, {     0,      0}, {0x66, 0x45, 0xe3, 0xff}}},
    101     {{{   -56,      7,    -40}, 0, {     0,      0}, {0x90, 0x14, 0xc9, 0xff}}},
    102     {{{    -2,     15,     99}, 0, {     0,      0}, {0xc1, 0x34, 0x60, 0xff}}},
    103     {{{    84,     28,     99}, 0, {     0,      0}, {0x1f, 0x28, 0x74, 0xff}}},
    104     {{{   -56,      7,     43}, 0, {     0,      0}, {0x87, 0x10, 0x21, 0xff}}},
    105     {{{   137,     35,     43}, 0, {     0,      0}, {0x64, 0x33, 0x39, 0xff}}},
    106 };
    107 
    108 // 0x05012760 - 0x05012890
    109 const Gfx lakitu_enemy_seg5_dl_05012760[] = {
    110     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lakitu_enemy_seg5_texture_050114E0),
    111     gsDPLoadSync(),
    112     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    113     gsSPLight(&lakitu_enemy_seg5_lights_050124E0.l, 1),
    114     gsSPLight(&lakitu_enemy_seg5_lights_050124E0.a, 2),
    115     gsSPVertex(lakitu_enemy_seg5_vertex_05012510, 16, 0),
    116     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    117     gsSP2Triangles( 4,  6,  7, 0x0,  4,  7,  5, 0x0),
    118     gsSP2Triangles( 5,  7,  8, 0x0,  8,  7,  1, 0x0),
    119     gsSP2Triangles( 6,  1,  7, 0x0,  5,  8,  9, 0x0),
    120     gsSP2Triangles( 5,  9, 10, 0x0,  3,  5, 10, 0x0),
    121     gsSP2Triangles( 6,  2,  1, 0x0,  8, 11,  9, 0x0),
    122     gsSP2Triangles( 8, 12, 11, 0x0,  8,  1, 12, 0x0),
    123     gsSP2Triangles(12,  1,  0, 0x0, 13, 11, 12, 0x0),
    124     gsSP2Triangles(13, 12,  0, 0x0, 14, 13,  0, 0x0),
    125     gsSP2Triangles( 0,  2, 14, 0x0, 14, 15, 13, 0x0),
    126     gsSPVertex(lakitu_enemy_seg5_vertex_05012610, 10, 0),
    127     gsSP2Triangles( 0,  1,  2, 0x0,  0,  2,  3, 0x0),
    128     gsSP2Triangles( 3,  2,  4, 0x0,  4,  2,  5, 0x0),
    129     gsSP2Triangles( 1,  5,  2, 0x0,  1,  6,  5, 0x0),
    130     gsSP2Triangles( 4,  5,  7, 0x0,  7,  5,  8, 0x0),
    131     gsSP2Triangles( 8,  5,  6, 0x0,  8,  6,  9, 0x0),
    132     gsSPEndDisplayList(),
    133 };
    134 
    135 // 0x05012890 - 0x05012910
    136 const Gfx lakitu_enemy_seg5_dl_05012890[] = {
    137     gsSPLight(&lakitu_enemy_seg5_lights_050124F8.l, 1),
    138     gsSPLight(&lakitu_enemy_seg5_lights_050124F8.a, 2),
    139     gsSPVertex(lakitu_enemy_seg5_vertex_050126B0, 11, 0),
    140     gsSP2Triangles( 0,  1,  2, 0x0,  2,  3,  4, 0x0),
    141     gsSP2Triangles( 1,  5,  2, 0x0,  4,  0,  2, 0x0),
    142     gsSP2Triangles( 5,  3,  2, 0x0,  4,  6,  0, 0x0),
    143     gsSP2Triangles( 7,  8,  1, 0x0,  9,  7,  0, 0x0),
    144     gsSP2Triangles( 1,  0,  7, 0x0,  8, 10,  1, 0x0),
    145     gsSP2Triangles( 1, 10,  5, 0x0,  0,  6,  9, 0x0),
    146     gsSPEndDisplayList(),
    147 };
    148 
    149 // 0x05012910 - 0x05012978
    150 const Gfx lakitu_enemy_seg5_dl_05012910[] = {
    151     gsDPPipeSync(),
    152     gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
    153     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),
    154     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    155     gsDPTileSync(),
    156     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD),
    157     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    158     gsSPDisplayList(lakitu_enemy_seg5_dl_05012760),
    159     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    160     gsDPPipeSync(),
    161     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    162     gsSPDisplayList(lakitu_enemy_seg5_dl_05012890),
    163     gsSPEndDisplayList(),
    164 };
    165 
    166 // 0x05012978
    167 static const Lights1 lakitu_enemy_seg5_lights_05012978 = gdSPDefLights1(
    168     0x7f, 0x7f, 0x7f,
    169     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
    170 );
    171 
    172 // 0x05012990
    173 static const Vtx lakitu_enemy_seg5_vertex_05012990[] = {
    174     {{{     2,     -6,     83}, 0, { -1072,    916}, {0xcb, 0x25, 0x6c, 0xff}}},
    175     {{{   -49,    -11,     35}, 0, {  -556,    874}, {0x92, 0x2e, 0x2b, 0xff}}},
    176     {{{     1,    -57,     76}, 0, { -1062,    410}, {0xd5, 0xe6, 0x74, 0xff}}},
    177     {{{     9,     27,    -50}, 0, { -1138,   1254}, {0xce, 0x70, 0xe4, 0xff}}},
    178     {{{     9,     27,     51}, 0, { -1138,   1254}, {0xce, 0x6d, 0x28, 0xff}}},
    179     {{{   -49,    -11,    -36}, 0, {  -556,    874}, {0x98, 0x26, 0xc4, 0xff}}},
    180     {{{   -49,    -73,    -25}, 0, {  -552,    248}, {0x8d, 0xdc, 0xda, 0xff}}},
    181     {{{   -49,    -73,     26}, 0, {  -552,    248}, {0x93, 0xde, 0x36, 0xff}}},
    182     {{{     0,   -140,     32}, 0, { -1046,   -414}, {0xc5, 0x94, 0x1d, 0xff}}},
    183     {{{     0,    -98,     73}, 0, { -1054,     -2}, {0xd6, 0xc8, 0x69, 0xff}}},
    184     {{{   103,    -17,    101}, 0, { -2084,    810}, {0x33, 0xd1, 0x69, 0xff}}},
    185     {{{    98,    -35,     81}, 0, { -2034,    626}, {0x43, 0xd5, 0x62, 0xff}}},
    186     {{{    97,   -100,     73}, 0, { -2022,    -18}, {0x22, 0xd7, 0x73, 0xff}}},
    187     {{{   101,   -142,     35}, 0, { -2058,   -434}, {0x26, 0x99, 0x3d, 0xff}}},
    188     {{{     2,     -6,    -82}, 0, { -1072,    916}, {0xcf, 0x36, 0x99, 0xff}}},
    189     {{{     1,    -57,    -75}, 0, { -1062,    410}, {0xd6, 0xe6, 0x8c, 0xff}}},
    190 };
    191 
    192 // 0x05012A90
    193 static const Vtx lakitu_enemy_seg5_vertex_05012A90[] = {
    194     {{{     1,    -57,    -75}, 0, { -1062,    410}, {0xd6, 0xe6, 0x8c, 0xff}}},
    195     {{{    98,    -35,    -80}, 0, { -2034,    626}, {0x43, 0xd5, 0x9e, 0xff}}},
    196     {{{    97,   -100,    -72}, 0, { -2022,    -18}, {0x1b, 0xcd, 0x90, 0xff}}},
    197     {{{     0,    -98,    -72}, 0, { -1054,     -2}, {0xcc, 0xd2, 0x97, 0xff}}},
    198     {{{     2,     -6,    -82}, 0, { -1072,    916}, {0xcf, 0x36, 0x99, 0xff}}},
    199     {{{   103,    -17,   -100}, 0, { -2084,    810}, {0x33, 0xd1, 0x97, 0xff}}},
    200     {{{   -49,    -73,    -25}, 0, {  -552,    248}, {0x8d, 0xdc, 0xda, 0xff}}},
    201     {{{   148,     21,    -45}, 0, { -2528,   1194}, {0x67, 0x30, 0xc9, 0xff}}},
    202     {{{   104,     34,    -89}, 0, { -2094,   1332}, {0x1d, 0x53, 0xa5, 0xff}}},
    203     {{{   105,     51,    -39}, 0, { -2096,   1494}, {0x15, 0x78, 0xe0, 0xff}}},
    204     {{{     0,   -140,     32}, 0, { -1046,   -414}, {0xc5, 0x94, 0x1d, 0xff}}},
    205     {{{     0,   -140,    -31}, 0, { -1046,   -414}, {0xd1, 0x9a, 0xc6, 0xff}}},
    206     {{{   161,     16,      0}, 0, {   480,    568}, {0x70, 0x3a, 0x00, 0xff}}},
    207     {{{   154,    -30,     28}, 0, {   746,    166}, {0x6d, 0xc7, 0x1e, 0xff}}},
    208     {{{   154,    -30,    -27}, 0, {   210,    164}, {0x6e, 0xcf, 0xdc, 0xff}}},
    209 };
    210 
    211 // 0x05012B80
    212 static const Vtx lakitu_enemy_seg5_vertex_05012B80[] = {
    213     {{{   105,     51,     40}, 0, {   864,    924}, {0x15, 0x7c, 0x0f, 0xff}}},
    214     {{{   148,     21,     46}, 0, {   920,    620}, {0x67, 0x30, 0x36, 0xff}}},
    215     {{{   161,     16,      0}, 0, {   480,    568}, {0x70, 0x3a, 0x00, 0xff}}},
    216     {{{   154,    -30,    -27}, 0, {   210,    164}, {0x6e, 0xcf, 0xdc, 0xff}}},
    217     {{{   148,     21,    -45}, 0, {    40,    620}, {0x67, 0x30, 0xc9, 0xff}}},
    218     {{{   154,    -30,     28}, 0, {   746,    166}, {0x6d, 0xc7, 0x1e, 0xff}}},
    219     {{{   105,     51,    -39}, 0, {   100,    924}, {0x15, 0x78, 0xe0, 0xff}}},
    220     {{{     9,     27,    -50}, 0, { -1138,   1254}, {0xce, 0x70, 0xe4, 0xff}}},
    221     {{{   105,     51,     40}, 0, { -2096,   1494}, {0x15, 0x7c, 0x0f, 0xff}}},
    222     {{{   105,     51,    -39}, 0, { -2096,   1494}, {0x15, 0x78, 0xe0, 0xff}}},
    223     {{{     2,     -6,    -82}, 0, { -1072,    916}, {0xcf, 0x36, 0x99, 0xff}}},
    224     {{{   104,     34,    -89}, 0, { -2094,   1332}, {0x1d, 0x53, 0xa5, 0xff}}},
    225     {{{     9,     27,     51}, 0, { -1138,   1254}, {0xce, 0x6d, 0x28, 0xff}}},
    226     {{{   104,     34,     90}, 0, { -2094,   1332}, {0x12, 0x57, 0x5a, 0xff}}},
    227     {{{   161,     16,      0}, 0, { -2654,   1148}, {0x70, 0x3a, 0x00, 0xff}}},
    228     {{{   148,     21,     46}, 0, { -2528,   1194}, {0x67, 0x30, 0x36, 0xff}}},
    229 };
    230 
    231 // 0x05012C80
    232 static const Vtx lakitu_enemy_seg5_vertex_05012C80[] = {
    233     {{{     2,     -6,    -82}, 0, { -1072,    916}, {0xcf, 0x36, 0x99, 0xff}}},
    234     {{{   104,     34,    -89}, 0, { -2094,   1332}, {0x1d, 0x53, 0xa5, 0xff}}},
    235     {{{   103,    -17,   -100}, 0, { -2084,    810}, {0x33, 0xd1, 0x97, 0xff}}},
    236     {{{    98,    -35,    -80}, 0, { -2034,    626}, {0x43, 0xd5, 0x9e, 0xff}}},
    237     {{{   138,    -47,    -10}, 0, { -2428,    508}, {0x68, 0xbf, 0xe0, 0xff}}},
    238     {{{   148,     21,    -45}, 0, { -2528,   1194}, {0x67, 0x30, 0xc9, 0xff}}},
    239     {{{   154,    -30,    -27}, 0, { -2588,    680}, {0x6e, 0xcf, 0xdc, 0xff}}},
    240     {{{    97,   -100,    -72}, 0, { -2022,    -18}, {0x1b, 0xcd, 0x90, 0xff}}},
    241     {{{   135,    -98,    -38}, 0, { -2404,     -2}, {0x74, 0xe5, 0xd5, 0xff}}},
    242     {{{   101,   -142,    -34}, 0, { -2058,   -434}, {0x34, 0x92, 0xde, 0xff}}},
    243     {{{    98,    -35,     81}, 0, { -2034,    626}, {0x43, 0xd5, 0x62, 0xff}}},
    244     {{{    97,   -100,     73}, 0, { -2022,    -18}, {0x22, 0xd7, 0x73, 0xff}}},
    245     {{{   135,    -98,     39}, 0, { -2404,     -2}, {0x70, 0xd8, 0x2b, 0xff}}},
    246     {{{   138,    -47,     11}, 0, { -2428,    508}, {0x6f, 0xce, 0x20, 0xff}}},
    247     {{{   103,    -17,    101}, 0, { -2084,    810}, {0x33, 0xd1, 0x69, 0xff}}},
    248 };
    249 
    250 // 0x05012D70
    251 static const Vtx lakitu_enemy_seg5_vertex_05012D70[] = {
    252     {{{   103,    -17,    101}, 0, { -2084,    810}, {0x33, 0xd1, 0x69, 0xff}}},
    253     {{{   104,     34,     90}, 0, { -2094,   1332}, {0x12, 0x57, 0x5a, 0xff}}},
    254     {{{     2,     -6,     83}, 0, { -1072,    916}, {0xcb, 0x25, 0x6c, 0xff}}},
    255     {{{   138,    -47,     11}, 0, { -2428,    508}, {0x6f, 0xce, 0x20, 0xff}}},
    256     {{{   154,    -30,     28}, 0, { -2588,    680}, {0x6d, 0xc7, 0x1e, 0xff}}},
    257     {{{   148,     21,     46}, 0, { -2528,   1194}, {0x67, 0x30, 0x36, 0xff}}},
    258     {{{   101,   -142,     35}, 0, { -2058,   -434}, {0x26, 0x99, 0x3d, 0xff}}},
    259     {{{   135,    -98,     39}, 0, { -2404,     -2}, {0x70, 0xd8, 0x2b, 0xff}}},
    260     {{{    97,   -100,     73}, 0, { -2022,    -18}, {0x22, 0xd7, 0x73, 0xff}}},
    261     {{{   101,   -142,    -34}, 0, { -2058,   -434}, {0x34, 0x92, 0xde, 0xff}}},
    262     {{{   135,    -98,    -38}, 0, { -2404,     -2}, {0x74, 0xe5, 0xd5, 0xff}}},
    263     {{{    98,    -35,    -80}, 0, { -2034,    626}, {0x43, 0xd5, 0x9e, 0xff}}},
    264     {{{   138,    -47,    -10}, 0, { -2428,    508}, {0x68, 0xbf, 0xe0, 0xff}}},
    265     {{{    97,   -100,    -72}, 0, { -2022,    -18}, {0x1b, 0xcd, 0x90, 0xff}}},
    266     {{{     9,     27,     51}, 0, { -1138,   1254}, {0xce, 0x6d, 0x28, 0xff}}},
    267     {{{     0,   -140,    -31}, 0, { -1046,   -414}, {0xd1, 0x9a, 0xc6, 0xff}}},
    268 };
    269 
    270 // 0x05012E70
    271 static const Vtx lakitu_enemy_seg5_vertex_05012E70[] = {
    272     {{{   101,   -142,    -34}, 0, { -2058,   -434}, {0x34, 0x92, 0xde, 0xff}}},
    273     {{{     0,   -140,     32}, 0, { -1046,   -414}, {0xc5, 0x94, 0x1d, 0xff}}},
    274     {{{     0,   -140,    -31}, 0, { -1046,   -414}, {0xd1, 0x9a, 0xc6, 0xff}}},
    275     {{{   101,   -142,     35}, 0, { -2058,   -434}, {0x26, 0x99, 0x3d, 0xff}}},
    276     {{{   138,    -47,    -10}, 0, {   370,    -88}, {0x68, 0xbf, 0xe0, 0xff}}},
    277     {{{   154,    -30,     28}, 0, {   724,    182}, {0x6d, 0xc7, 0x1e, 0xff}}},
    278     {{{   138,    -47,     11}, 0, {   570,    -84}, {0x6f, 0xce, 0x20, 0xff}}},
    279     {{{   154,    -30,    -27}, 0, {   196,    176}, {0x6e, 0xcf, 0xdc, 0xff}}},
    280 };
    281 
    282 // 0x05012EF0 - 0x05013160
    283 const Gfx lakitu_enemy_seg5_dl_05012EF0[] = {
    284     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lakitu_enemy_seg5_texture_05011CE0),
    285     gsDPLoadSync(),
    286     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
    287     gsSPLight(&lakitu_enemy_seg5_lights_05012978.l, 1),
    288     gsSPLight(&lakitu_enemy_seg5_lights_05012978.a, 2),
    289     gsSPVertex(lakitu_enemy_seg5_vertex_05012990, 16, 0),
    290     gsSP2Triangles( 0,  1,  2, 0x0,  3,  1,  4, 0x0),
    291     gsSP2Triangles( 3,  5,  1, 0x0,  1,  6,  7, 0x0),
    292     gsSP2Triangles( 1,  5,  6, 0x0,  1,  0,  4, 0x0),
    293     gsSP2Triangles( 1,  7,  2, 0x0,  8,  7,  6, 0x0),
    294     gsSP2Triangles( 9,  7,  8, 0x0,  2,  7,  9, 0x0),
    295     gsSP2Triangles(10,  0,  2, 0x0,  2, 11, 10, 0x0),
    296     gsSP2Triangles( 2, 12, 11, 0x0,  2,  9, 12, 0x0),
    297     gsSP2Triangles( 9, 13, 12, 0x0,  9,  8, 13, 0x0),
    298     gsSP2Triangles(14,  5,  3, 0x0,  5, 15,  6, 0x0),
    299     gsSP1Triangle( 5, 14, 15, 0x0),
    300     gsSPVertex(lakitu_enemy_seg5_vertex_05012A90, 15, 0),
    301     gsSP2Triangles( 0,  1,  2, 0x0,  0,  2,  3, 0x0),
    302     gsSP2Triangles( 0,  4,  5, 0x0,  6,  0,  3, 0x0),
    303     gsSP2Triangles( 0,  5,  1, 0x0,  7,  8,  9, 0x0),
    304     gsSP2Triangles(10,  6, 11, 0x0, 11,  6,  3, 0x0),
    305     gsSP2Triangles( 2, 11,  3, 0x0, 12, 13, 14, 0x0),
    306     gsSPVertex(lakitu_enemy_seg5_vertex_05012B80, 16, 0),
    307     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  2, 0x0),
    308     gsSP2Triangles( 2,  1,  5, 0x0,  4,  6,  2, 0x0),
    309     gsSP2Triangles( 7,  8,  9, 0x0, 10,  9, 11, 0x0),
    310     gsSP2Triangles(10,  7,  9, 0x0,  7, 12,  8, 0x0),
    311     gsSP2Triangles(13,  8, 12, 0x0,  9,  8, 14, 0x0),
    312     gsSP1Triangle(15,  8, 13, 0x0),
    313     gsSPVertex(lakitu_enemy_seg5_vertex_05012C80, 15, 0),
    314     gsSP2Triangles( 0,  1,  2, 0x0,  3,  2,  4, 0x0),
    315     gsSP2Triangles( 5,  6,  2, 0x0,  2,  6,  4, 0x0),
    316     gsSP2Triangles( 5,  2,  1, 0x0,  7,  8,  9, 0x0),
    317     gsSP2Triangles(10, 11, 12, 0x0, 10, 12, 13, 0x0),
    318     gsSP1Triangle(14, 10, 13, 0x0),
    319     gsSPVertex(lakitu_enemy_seg5_vertex_05012D70, 16, 0),
    320     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  0, 0x0),
    321     gsSP2Triangles( 1,  0,  5, 0x0,  0,  4,  5, 0x0),
    322     gsSP2Triangles( 6,  7,  8, 0x0,  9, 10,  7, 0x0),
    323     gsSP2Triangles( 3,  7, 10, 0x0,  9,  7,  6, 0x0),
    324     gsSP2Triangles(11, 12, 10, 0x0, 10, 13, 11, 0x0),
    325     gsSP2Triangles( 3, 10, 12, 0x0,  1, 14,  2, 0x0),
    326     gsSP1Triangle(13,  9, 15, 0x0),
    327     gsSPVertex(lakitu_enemy_seg5_vertex_05012E70, 8, 0),
    328     gsSP2Triangles( 0,  1,  2, 0x0,  0,  3,  1, 0x0),
    329     gsSP2Triangles( 4,  5,  6, 0x0,  4,  7,  5, 0x0),
    330     gsSPEndDisplayList(),
    331 };
    332 
    333 // 0x05013160 - 0x050131C0
    334 const Gfx lakitu_enemy_seg5_dl_05013160[] = {
    335     gsDPPipeSync(),
    336     gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
    337     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),
    338     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    339     gsDPTileSync(),
    340     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),
    341     gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    342     gsSPDisplayList(lakitu_enemy_seg5_dl_05012EF0),
    343     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    344     gsDPPipeSync(),
    345     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    346     gsSPEndDisplayList(),
    347 };
    348 
    349 // 0x050131C0
    350 static const Lights1 lakitu_enemy_seg5_lights_050131C0 = gdSPDefLights1(
    351     0x7f, 0x7f, 0x7f,
    352     0xff, 0xff, 0xff, 0x28, 0x28, 0x28
    353 );
    354 
    355 // 0x050131D8
    356 static const Vtx lakitu_enemy_seg5_vertex_050131D8[] = {
    357     {{{   150,    -30,      0}, 0, {   992,    994}, {0x7e, 0xf5, 0x09, 0xff}}},
    358     {{{   136,   -116,     82}, 0, {  2012,      0}, {0x7e, 0xf5, 0x09, 0xff}}},
    359     {{{   142,   -116,      0}, 0, {   992,    -26}, {0x7e, 0xf5, 0x09, 0xff}}},
    360     {{{   142,   -116,      0}, 0, {   992,    -26}, {0x7e, 0xf5, 0xf9, 0xff}}},
    361     {{{   145,    -30,    -81}, 0, {     0,    990}, {0x7e, 0xf5, 0xf9, 0xff}}},
    362     {{{   150,    -30,      0}, 0, {   992,    994}, {0x7e, 0xf5, 0xf9, 0xff}}},
    363     {{{   142,   -116,      0}, 0, {   992,    -26}, {0x7d, 0xf3, 0xf7, 0xff}}},
    364     {{{   136,   -116,    -81}, 0, {     0,      0}, {0x7d, 0xf3, 0xf7, 0xff}}},
    365     {{{   145,    -30,    -81}, 0, {     0,    990}, {0x7d, 0xf3, 0xf7, 0xff}}},
    366     {{{   150,    -30,      0}, 0, {   992,    994}, {0x7e, 0xf3, 0x07, 0xff}}},
    367     {{{   145,    -30,     82}, 0, {  2012,    990}, {0x7e, 0xf3, 0x07, 0xff}}},
    368     {{{   136,   -116,     82}, 0, {  2012,      0}, {0x7e, 0xf3, 0x07, 0xff}}},
    369 };
    370 
    371 // 0x05013298 - 0x050132D8
    372 const Gfx lakitu_enemy_seg5_dl_05013298[] = {
    373     gsSPLight(&lakitu_enemy_seg5_lights_050131C0.l, 1),
    374     gsSPLight(&lakitu_enemy_seg5_lights_050131C0.a, 2),
    375     gsSPVertex(lakitu_enemy_seg5_vertex_050131D8, 12, 0),
    376     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    377     gsSP2Triangles( 6,  7,  8, 0x0,  9, 10, 11, 0x0),
    378     gsSPEndDisplayList(),
    379 };
    380 
    381 // 0x050132D8 - 0x05013320
    382 const Gfx lakitu_enemy_seg5_dl_050132D8[] = {
    383     gsDPPipeSync(),
    384     gsDPSetCombineMode(G_CC_MODULATERGBA, G_CC_MODULATERGBA),
    385     gsSPClearGeometryMode(G_SHADING_SMOOTH),
    386     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),
    387     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
    388     gsDPTileSync(),
    389     gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_WRAP | G_TX_NOMIRROR, 5, G_TX_NOLOD, G_TX_WRAP | G_TX_NOMIRROR, 6, G_TX_NOLOD),
    390     gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
    391     gsSPEndDisplayList(),
    392 };
    393 
    394 // 0x05013320 - 0x05013350
    395 const Gfx lakitu_enemy_seg5_dl_05013320[] = {
    396     gsSPDisplayList(lakitu_enemy_seg5_dl_05013298),
    397     gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    398     gsDPPipeSync(),
    399     gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    400     gsSPSetGeometryMode(G_SHADING_SMOOTH),
    401     gsSPEndDisplayList(),
    402 };
    403 
    404 // 0x05013350 - 0x05013378
    405 const Gfx lakitu_enemy_seg5_dl_05013350[] = {
    406     gsSPDisplayList(lakitu_enemy_seg5_dl_050132D8),
    407     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lakitu_enemy_seg5_texture_0500F4E0),
    408     gsDPLoadSync(),
    409     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
    410     gsSPBranchList(lakitu_enemy_seg5_dl_05013320),
    411 };
    412 
    413 // 0x05013378 - 0x050133A0
    414 const Gfx lakitu_enemy_seg5_dl_05013378[] = {
    415     gsSPDisplayList(lakitu_enemy_seg5_dl_050132D8),
    416     gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, lakitu_enemy_seg5_texture_050104E0),
    417     gsDPLoadSync(),
    418     gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
    419     gsSPBranchList(lakitu_enemy_seg5_dl_05013320),
    420 };
    421 
    422 // 0x050133A0
    423 static const Lights1 lakitu_enemy_seg5_lights_050133A0 = gdSPDefLights1(
    424     0x79, 0x55, 0x00,
    425     0xf2, 0xab, 0x00, 0x28, 0x28, 0x28
    426 );
    427 
    428 // 0x050133B8
    429 static const Vtx lakitu_enemy_seg5_vertex_050133B8[] = {
    430     {{{    30,     -5,    -22}, 0, {     0,      0}, {0xe3, 0xb1, 0xa2, 0xff}}},
    431     {{{    -5,      0,      0}, 0, {     0,      0}, {0x83, 0xee, 0x00, 0xff}}},
    432     {{{    28,     15,    -22}, 0, {     0,      0}, {0xd1, 0x29, 0x92, 0xff}}},
    433     {{{    30,     -5,     22}, 0, {     0,      0}, {0xdf, 0xcb, 0x6e, 0xff}}},
    434     {{{   102,      0,     30}, 0, {     0,      0}, {0x1b, 0xb6, 0x63, 0xff}}},
    435     {{{    99,     30,     30}, 0, {     0,      0}, {0xfa, 0x4f, 0x62, 0xff}}},
    436     {{{    28,     15,     22}, 0, {     0,      0}, {0xc9, 0x34, 0x65, 0xff}}},
    437     {{{    33,    -17,      0}, 0, {     0,      0}, {0xec, 0x84, 0x0d, 0xff}}},
    438     {{{   104,    -15,      0}, 0, {     0,      0}, {0x31, 0x8c, 0xf8, 0xff}}},
    439     {{{   137,     20,     15}, 0, {     0,      0}, {0x64, 0xfb, 0x4d, 0xff}}},
    440     {{{   140,     20,      0}, 0, {     0,      0}, {0x73, 0xfb, 0xcb, 0xff}}},
    441     {{{   102,      0,    -30}, 0, {     0,      0}, {0x21, 0xd1, 0x90, 0xff}}},
    442     {{{    99,     30,    -30}, 0, {     0,      0}, {0x06, 0x5e, 0xac, 0xff}}},
    443     {{{   119,     45,      2}, 0, {     0,      0}, {0x35, 0x72, 0x07, 0xff}}},
    444     {{{    25,     28,      0}, 0, {     0,      0}, {0xce, 0x74, 0x00, 0xff}}},
    445 };
    446 
    447 // 0x050134A8 - 0x05013598
    448 const Gfx lakitu_enemy_seg5_dl_050134A8[] = {
    449     gsSPLight(&lakitu_enemy_seg5_lights_050133A0.l, 1),
    450     gsSPLight(&lakitu_enemy_seg5_lights_050133A0.a, 2),
    451     gsSPVertex(lakitu_enemy_seg5_vertex_050133B8, 15, 0),
    452     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    453     gsSP2Triangles( 6,  3,  5, 0x0,  3,  7,  4, 0x0),
    454     gsSP2Triangles( 6,  1,  3, 0x0,  1,  7,  3, 0x0),
    455     gsSP2Triangles( 8,  7,  0, 0x0,  7,  8,  4, 0x0),
    456     gsSP2Triangles( 0,  7,  1, 0x0,  9,  4,  8, 0x0),
    457     gsSP2Triangles( 4,  9,  5, 0x0, 10,  8, 11, 0x0),
    458     gsSP2Triangles( 9,  8, 10, 0x0, 11,  8,  0, 0x0),
    459     gsSP2Triangles( 0,  2, 11, 0x0,  2, 12, 11, 0x0),
    460     gsSP2Triangles(10, 11, 12, 0x0, 13, 12,  5, 0x0),
    461     gsSP2Triangles( 9, 10, 13, 0x0,  9, 13,  5, 0x0),
    462     gsSP2Triangles(10, 12, 13, 0x0,  1, 14,  2, 0x0),
    463     gsSP2Triangles( 2, 14, 12, 0x0,  6, 14,  1, 0x0),
    464     gsSP2Triangles( 5, 14,  6, 0x0,  5, 12, 14, 0x0),
    465     gsSPEndDisplayList(),
    466 };
    467 
    468 // 0x05013598
    469 static const Lights1 lakitu_enemy_seg5_lights_05013598 = gdSPDefLights1(
    470     0x79, 0x55, 0x00,
    471     0xf2, 0xab, 0x00, 0x28, 0x28, 0x28
    472 );
    473 
    474 // 0x050135B0
    475 static const Vtx lakitu_enemy_seg5_vertex_050135B0[] = {
    476     {{{    99,     30,     33}, 0, {     0,      0}, {0x06, 0x5e, 0x54, 0xff}}},
    477     {{{   102,      0,     33}, 0, {     0,      0}, {0x21, 0xd1, 0x70, 0xff}}},
    478     {{{   140,     20,      2}, 0, {     0,      0}, {0x73, 0xfb, 0x35, 0xff}}},
    479     {{{    99,     30,    -28}, 0, {     0,      0}, {0xfa, 0x4f, 0x9e, 0xff}}},
    480     {{{   102,      0,    -28}, 0, {     0,      0}, {0x1b, 0xb7, 0x9d, 0xff}}},
    481     {{{    30,     -5,    -20}, 0, {     0,      0}, {0xdf, 0xce, 0x91, 0xff}}},
    482     {{{   104,    -15,      2}, 0, {     0,      0}, {0x31, 0x8c, 0x07, 0xff}}},
    483     {{{    33,    -17,      0}, 0, {     0,      0}, {0xec, 0x84, 0xef, 0xff}}},
    484     {{{   137,     20,    -12}, 0, {     0,      0}, {0x64, 0xfb, 0xb3, 0xff}}},
    485     {{{    30,     -5,     25}, 0, {     0,      0}, {0xe3, 0xaf, 0x5d, 0xff}}},
    486     {{{    -5,      0,      2}, 0, {     0,      0}, {0x83, 0xee, 0xfe, 0xff}}},
    487     {{{    28,     15,    -20}, 0, {     0,      0}, {0xc9, 0x34, 0x9b, 0xff}}},
    488     {{{    28,     15,     25}, 0, {     0,      0}, {0xd1, 0x29, 0x6e, 0xff}}},
    489     {{{    25,     28,      2}, 0, {     0,      0}, {0xce, 0x74, 0x00, 0xff}}},
    490     {{{   119,     45,      0}, 0, {     0,      0}, {0x35, 0x72, 0xf9, 0xff}}},
    491 };
    492 
    493 // 0x050136A0 - 0x05013790
    494 const Gfx lakitu_enemy_seg5_dl_050136A0[] = {
    495     gsSPLight(&lakitu_enemy_seg5_lights_05013598.l, 1),
    496     gsSPLight(&lakitu_enemy_seg5_lights_05013598.a, 2),
    497     gsSPVertex(lakitu_enemy_seg5_vertex_050135B0, 15, 0),
    498     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    499     gsSP2Triangles( 4,  6,  7, 0x0,  4,  7,  5, 0x0),
    500     gsSP2Triangles( 6,  4,  8, 0x0,  3,  8,  4, 0x0),
    501     gsSP2Triangles( 9,  7,  6, 0x0, 10,  7,  9, 0x0),
    502     gsSP2Triangles( 5,  7, 10, 0x0,  3,  5, 11, 0x0),
    503     gsSP2Triangles( 5, 10, 11, 0x0,  1,  6,  2, 0x0),
    504     gsSP2Triangles( 2,  6,  8, 0x0,  9,  6,  1, 0x0),
    505     gsSP2Triangles( 1, 12,  9, 0x0, 12, 10,  9, 0x0),
    506     gsSP2Triangles( 1,  0, 12, 0x0, 11, 13,  3, 0x0),
    507     gsSP2Triangles(14,  0,  2, 0x0, 14,  2,  8, 0x0),
    508     gsSP2Triangles( 3, 14,  8, 0x0, 13,  0,  3, 0x0),
    509     gsSP2Triangles( 3,  0, 14, 0x0,  0, 13, 12, 0x0),
    510     gsSP2Triangles(10, 13, 11, 0x0, 12, 13, 10, 0x0),
    511     gsSPEndDisplayList(),
    512 };
    513 
    514 // 0x05013790
    515 static const Vtx lakitu_enemy_seg5_vertex_05013790[] = {
    516     {{{   103,     40,     28}, 0, {     0,      0}, {0xb1, 0x5e, 0x1c, 0x00}}},
    517     {{{   115,     46,     39}, 0, {     0,      0}, {0xb1, 0x5e, 0x1c, 0x00}}},
    518     {{{   111,     46,     30}, 0, {     0,      0}, {0xb1, 0x5e, 0x1c, 0x00}}},
    519     {{{   115,     46,     39}, 0, {     0,      0}, {0xce, 0xb9, 0x5b, 0xff}}},
    520     {{{   103,     40,     28}, 0, {     0,      0}, {0xce, 0xb9, 0x5b, 0xff}}},
    521     {{{   345,   -234,    -54}, 0, {     0,      0}, {0xce, 0xb9, 0x5b, 0xff}}},
    522     {{{   115,     51,     23}, 0, {     0,      0}, {0xb1, 0x5e, 0x1c, 0xff}}},
    523     {{{   103,     40,     28}, 0, {     0,      0}, {0xd2, 0xfb, 0x8b, 0xff}}},
    524     {{{   115,     51,     23}, 0, {     0,      0}, {0xd2, 0xfb, 0x8b, 0xff}}},
    525     {{{   345,   -234,    -54}, 0, {     0,      0}, {0xd2, 0xfb, 0x8b, 0xff}}},
    526     {{{   115,     51,     23}, 0, {     0,      0}, {0x64, 0x49, 0x18, 0xff}}},
    527     {{{   115,     46,     39}, 0, {     0,      0}, {0x64, 0x49, 0x18, 0xff}}},
    528     {{{   345,   -234,    -54}, 0, {     0,      0}, {0x64, 0x49, 0x18, 0xff}}},
    529 };
    530 
    531 // 0x05013860 - 0x050138B0
    532 const Gfx lakitu_enemy_seg5_dl_05013860[] = {
    533     gsSPLight(&lakitu_enemy_seg5_lights_0500ECB0.l, 1),
    534     gsSPLight(&lakitu_enemy_seg5_lights_0500ECB0.a, 2),
    535     gsSPVertex(lakitu_enemy_seg5_vertex_05013790, 13, 0),
    536     gsSP2Triangles( 0,  1,  2, 0x0,  3,  4,  5, 0x0),
    537     gsSP2Triangles( 6,  0,  2, 0x0,  7,  8,  9, 0x0),
    538     gsSP2Triangles( 1,  6,  2, 0x0, 10, 11, 12, 0x0),
    539     gsSPEndDisplayList(),
    540 };
    541 
    542 // 0x050138B0 - 0x050138C0
    543 const Gfx lakitu_enemy_seg5_dl_050138B0[] = {
    544     gsSPNumLights(NUMLIGHTS_1),
    545     gsSPEndDisplayList(),
    546 };