Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/actors/clam_shell/model.inc.c
7856 views
1
// Clam Shell
2
3
// Unreferenced light group
4
UNUSED static const Lights1 clam_shell_lights_unused1 = gdSPDefLights1(
5
0x1b, 0x23, 0x30,
6
0x6d, 0x8f, 0xc3, 0x28, 0x28, 0x28
7
);
8
9
// Unreferenced light group
10
UNUSED static const Lights1 clam_shell_lights_unused2 = gdSPDefLights1(
11
0x18, 0x28, 0x38,
12
0x60, 0xa2, 0xe2, 0x28, 0x28, 0x28
13
);
14
15
// 0x05000030
16
ALIGNED8 static const Texture clam_shell_seg5_texture_05000030[] = {
17
#include "actors/clam_shell/clam_shell.rgba16.inc.c"
18
};
19
20
// 0x05000830
21
ALIGNED8 static const Texture clam_shell_seg5_texture_05000830[] = {
22
#include "actors/clam_shell/clam_shell_mouth.rgba16.inc.c"
23
};
24
25
// 0x05001030
26
static const Lights1 clam_shell_seg5_lights_05001030 = gdSPDefLights1(
27
0x66, 0x66, 0x66,
28
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
29
);
30
31
// 0x05001048
32
static const Vtx clam_shell_seg5_vertex_05001048[] = {
33
{{{ 728, -261, 0}, 0, { 480, 566}, {0x00, 0x7e, 0xf5, 0xff}}},
34
{{{ -10, 2, -131}, 0, { 580, 0}, {0xff, 0xff, 0xff, 0xff}}},
35
{{{ 404, -50, -528}, 0, { 886, 318}, {0xf5, 0x7e, 0x00, 0xff}}},
36
{{{ 404, -50, 529}, 0, { 72, 318}, {0x00, 0x7f, 0x00, 0xff}}},
37
{{{ 1083, -106, 435}, 0, { 144, 838}, {0xa8, 0xa8, 0x16, 0xff}}},
38
{{{ 777, -25, 658}, 0, { -26, 604}, {0xff, 0xff, 0xff, 0xff}}},
39
{{{ 1087, -154, 0}, 0, { 480, 842}, {0x38, 0x71, 0x00, 0xff}}},
40
{{{ 1214, 19, 0}, 0, { 480, 940}, {0xa7, 0xa7, 0x00, 0xff}}},
41
{{{ -10, 2, 132}, 0, { 378, 0}, {0x00, 0x81, 0x00, 0xff}}},
42
{{{ 1083, -106, -434}, 0, { 814, 838}, {0x31, 0x63, 0x3d, 0xff}}},
43
{{{ 777, -25, -657}, 0, { 984, 604}, {0xff, 0xff, 0xff, 0xff}}},
44
};
45
46
// 0x050010F8
47
static const Vtx clam_shell_seg5_vertex_050010F8[] = {
48
{{{ 1087, -154, 0}, 0, { 480, 816}, {0x38, 0x71, 0x00, 0xff}}},
49
{{{ 1214, 19, 0}, 0, { 480, 906}, {0xa7, 0xa7, 0x00, 0xff}}},
50
{{{ 1083, -106, -434}, 0, { 168, 814}, {0x31, 0x63, 0x3d, 0xff}}},
51
{{{ 728, -261, 0}, 0, { 480, 560}, {0x00, 0x7e, 0xf5, 0xff}}},
52
{{{ -10, 2, 132}, 0, { 574, 34}, {0x00, 0x81, 0x00, 0xff}}},
53
{{{ 404, -50, 529}, 0, { 856, 328}, {0x00, 0x7f, 0x00, 0xff}}},
54
{{{ 1083, -106, 435}, 0, { 790, 814}, {0xa8, 0xa8, 0x16, 0xff}}},
55
{{{ 777, -25, 658}, 0, { 948, 594}, {0xff, 0xff, 0xff, 0xff}}},
56
{{{ 777, -25, -657}, 0, { 10, 594}, {0xff, 0xff, 0xff, 0xff}}},
57
{{{ 404, -50, -528}, 0, { 102, 328}, {0xf5, 0x7e, 0x00, 0xff}}},
58
{{{ -10, 2, -131}, 0, { 384, 34}, {0xff, 0xff, 0xff, 0xff}}},
59
};
60
61
// 0x050011A8 - 0x05001238
62
const Gfx clam_shell_seg5_dl_050011A8[] = {
63
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, clam_shell_seg5_texture_05000030),
64
gsDPLoadSync(),
65
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
66
gsSPLight(&clam_shell_seg5_lights_05001030.l, 1),
67
gsSPLight(&clam_shell_seg5_lights_05001030.a, 2),
68
gsSPVertex(clam_shell_seg5_vertex_05001048, 11, 0),
69
gsSP2Triangles( 0, 1, 2, 0x0, 3, 0, 4, 0x0),
70
gsSP2Triangles( 4, 5, 3, 0x0, 4, 0, 6, 0x0),
71
gsSP2Triangles( 6, 7, 4, 0x0, 3, 8, 0, 0x0),
72
gsSP2Triangles( 6, 0, 9, 0x0, 2, 10, 9, 0x0),
73
gsSP2Triangles( 9, 7, 6, 0x0, 9, 0, 2, 0x0),
74
gsSP1Triangle( 8, 1, 0, 0x0),
75
gsSPEndDisplayList(),
76
};
77
78
// 0x05001238 - 0x050012B8
79
const Gfx clam_shell_seg5_dl_05001238[] = {
80
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, clam_shell_seg5_texture_05000830),
81
gsDPLoadSync(),
82
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
83
gsSPVertex(clam_shell_seg5_vertex_050010F8, 11, 0),
84
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
85
gsSP2Triangles( 6, 3, 5, 0x0, 5, 7, 6, 0x0),
86
gsSP2Triangles( 0, 3, 6, 0x0, 6, 1, 0, 0x0),
87
gsSP2Triangles( 2, 8, 9, 0x0, 9, 10, 3, 0x0),
88
gsSP2Triangles( 9, 3, 2, 0x0, 3, 10, 4, 0x0),
89
gsSP1Triangle( 2, 3, 0, 0x0),
90
gsSPEndDisplayList(),
91
};
92
93
// 0x050012B8 - 0x05001320
94
const Gfx clam_shell_seg5_dl_050012B8[] = {
95
gsDPPipeSync(),
96
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
97
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),
98
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
99
gsDPTileSync(),
100
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),
101
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
102
gsSPDisplayList(clam_shell_seg5_dl_050011A8),
103
gsSPDisplayList(clam_shell_seg5_dl_05001238),
104
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
105
gsDPPipeSync(),
106
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
107
gsSPEndDisplayList(),
108
};
109
110
// 0x05001320
111
static const Lights1 clam_shell_seg5_lights_05001320 = gdSPDefLights1(
112
0x66, 0x66, 0x66,
113
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
114
);
115
116
// 0x05001338
117
static const Vtx clam_shell_seg5_vertex_05001338[] = {
118
{{{ 260, 0, 0}, 0, { 480, 600}, {0xf5, 0x7e, 0x07, 0xff}}},
119
{{{ -531, -1, 132}, 0, { 580, -8}, {0x00, 0x81, 0x00, 0xff}}},
120
{{{ -124, -74, 529}, 0, { 886, 304}, {0xff, 0xff, 0xff, 0xff}}},
121
{{{ 692, -45, 0}, 0, { 480, 932}, {0x81, 0x00, 0x00, 0xff}}},
122
{{{ 556, -160, -434}, 0, { 144, 828}, {0x00, 0x81, 0x00, 0xff}}},
123
{{{ 248, -68, -657}, 0, { -26, 590}, {0x00, 0x00, 0x81, 0xff}}},
124
{{{ -124, -74, -528}, 0, { 72, 304}, {0xff, 0xff, 0xff, 0xff}}},
125
{{{ 248, -68, 658}, 0, { 984, 590}, {0x0f, 0x7d, 0x0f, 0xff}}},
126
{{{ 556, -160, 435}, 0, { 814, 828}, {0x00, 0x00, 0x7f, 0xff}}},
127
{{{ -531, -1, -131}, 0, { 378, -8}, {0x00, 0x81, 0x00, 0xff}}},
128
};
129
130
// 0x050013D8
131
static const Vtx clam_shell_seg5_vertex_050013D8[] = {
132
{{{ 556, -160, 435}, 0, { 790, 796}, {0x00, 0x00, 0x7f, 0xff}}},
133
{{{ 248, -68, 658}, 0, { 948, 568}, {0x0f, 0x7d, 0x0f, 0xff}}},
134
{{{ 260, 0, 0}, 0, { 480, 576}, {0xf5, 0x7e, 0x07, 0xff}}},
135
{{{ 692, -45, 0}, 0, { 480, 896}, {0x81, 0x00, 0x00, 0xff}}},
136
{{{ 556, -160, -434}, 0, { 168, 796}, {0x00, 0x81, 0x00, 0xff}}},
137
{{{ -124, -74, 529}, 0, { 856, 292}, {0xff, 0xff, 0xff, 0xff}}},
138
{{{ -124, -74, -528}, 0, { 102, 292}, {0xff, 0xff, 0xff, 0xff}}},
139
{{{ 248, -68, -657}, 0, { 10, 568}, {0x00, 0x00, 0x81, 0xff}}},
140
{{{ -531, -1, 132}, 0, { 574, -8}, {0x00, 0x81, 0x00, 0xff}}},
141
{{{ -531, -1, -131}, 0, { 384, -8}, {0x00, 0x81, 0x00, 0xff}}},
142
};
143
144
// 0x05001478 - 0x050014F8
145
const Gfx clam_shell_seg5_dl_05001478[] = {
146
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, clam_shell_seg5_texture_05000030),
147
gsDPLoadSync(),
148
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
149
gsSPLight(&clam_shell_seg5_lights_05001320.l, 1),
150
gsSPLight(&clam_shell_seg5_lights_05001320.a, 2),
151
gsSPVertex(clam_shell_seg5_vertex_05001338, 10, 0),
152
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 0, 0x0),
153
gsSP2Triangles( 4, 5, 0, 0x0, 0, 5, 6, 0x0),
154
gsSP2Triangles( 0, 7, 8, 0x0, 2, 7, 0, 0x0),
155
gsSP2Triangles( 8, 3, 0, 0x0, 0, 9, 1, 0x0),
156
gsSP1Triangle( 6, 9, 0, 0x0),
157
gsSPEndDisplayList(),
158
};
159
160
// 0x050014F8 - 0x05001568
161
const Gfx clam_shell_seg5_dl_050014F8[] = {
162
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, clam_shell_seg5_texture_05000830),
163
gsDPLoadSync(),
164
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
165
gsSPVertex(clam_shell_seg5_vertex_050013D8, 10, 0),
166
gsSP2Triangles( 0, 1, 2, 0x0, 2, 3, 0, 0x0),
167
gsSP2Triangles( 2, 4, 3, 0x0, 2, 1, 5, 0x0),
168
gsSP2Triangles( 6, 7, 2, 0x0, 2, 7, 4, 0x0),
169
gsSP2Triangles( 8, 9, 2, 0x0, 2, 9, 6, 0x0),
170
gsSP1Triangle( 5, 8, 2, 0x0),
171
gsSPEndDisplayList(),
172
};
173
174
// 0x05001568 - 0x050015D0
175
const Gfx clam_shell_seg5_dl_05001568[] = {
176
gsDPPipeSync(),
177
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
178
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),
179
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
180
gsDPTileSync(),
181
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),
182
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
183
gsSPDisplayList(clam_shell_seg5_dl_05001478),
184
gsSPDisplayList(clam_shell_seg5_dl_050014F8),
185
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
186
gsDPPipeSync(),
187
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
188
gsSPEndDisplayList(),
189
};
190
191