Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MorsGames
GitHub Repository: MorsGames/sm64plus
Path: blob/master/actors/cannon_base/model.inc.c
7857 views
1
// Cannon Base
2
3
// 0x08004988
4
static const Lights1 cannon_base_seg8_lights_08004988 = gdSPDefLights1(
5
0x4c, 0x4c, 0x4c,
6
0xff, 0xff, 0xff, 0x28, 0x28, 0x28
7
);
8
9
// 0x080049A0
10
static const Lights1 cannon_base_seg8_lights_080049A0 = gdSPDefLights1(
11
0x0e, 0x10, 0x4c,
12
0x30, 0x37, 0xff, 0x28, 0x28, 0x28
13
);
14
15
// 0x080049B8
16
ALIGNED8 static const Texture cannon_base_seg8_texture_080049B8[] = {
17
#include "actors/cannon_base/cannon_base.rgba16.inc.c"
18
};
19
20
// 0x080051B8
21
static const Vtx cannon_base_seg8_vertex_080051B8[] = {
22
{{{ 102, -101, 51}, 0, { 0, 1758}, {0x7f, 0x00, 0x00, 0xff}}},
23
{{{ 102, -101, -50}, 0, { 990, 1758}, {0x7f, 0x00, 0x00, 0xff}}},
24
{{{ 102, 51, -50}, 0, { 990, 228}, {0x7f, 0x00, 0x00, 0xff}}},
25
{{{ 102, 77, 26}, 0, { 224, -28}, {0x7f, 0x00, 0x00, 0xff}}},
26
{{{ 102, 51, 51}, 0, { 0, 228}, {0x7f, 0x00, 0x00, 0xff}}},
27
{{{ 102, 77, -25}, 0, { 734, -28}, {0x7f, 0x00, 0x00, 0xff}}},
28
{{{ -101, 51, -50}, 0, { 0, 224}, {0x81, 0x00, 0x00, 0xff}}},
29
{{{ -101, 77, 26}, 0, { 734, 0}, {0x81, 0x00, 0x00, 0xff}}},
30
{{{ -101, 77, -25}, 0, { 224, 0}, {0x81, 0x00, 0x00, 0xff}}},
31
{{{ -101, -101, -50}, 0, { 0, 1754}, {0x81, 0x00, 0x00, 0xff}}},
32
{{{ -101, -101, 51}, 0, { 990, 1754}, {0x81, 0x00, 0x00, 0xff}}},
33
{{{ -101, 51, 51}, 0, { 990, 224}, {0x81, 0x00, 0x00, 0xff}}},
34
};
35
36
// 0x08005278
37
static const Vtx cannon_base_seg8_vertex_08005278[] = {
38
{{{ -60, -101, 51}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
39
{{{ 61, -101, 51}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
40
{{{ 61, -101, -50}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
41
{{{ 102, -101, -50}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
42
{{{ 61, 51, -50}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
43
{{{ 102, 51, -50}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
44
{{{ 61, -101, -50}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
45
{{{ 61, 51, -50}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0xff}}},
46
{{{ 61, -101, -50}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0xff}}},
47
{{{ 61, -101, 51}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0xff}}},
48
{{{ 61, 77, 26}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0xff}}},
49
{{{ 61, 77, -25}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0xff}}},
50
{{{ 61, 51, 51}, 0, { 0, 0}, {0x81, 0x00, 0x00, 0xff}}},
51
{{{ 102, 51, -50}, 0, { 0, 0}, {0x00, 0x58, 0xa5, 0xff}}},
52
{{{ 61, 51, -50}, 0, { 0, 0}, {0x00, 0x58, 0xa5, 0xff}}},
53
{{{ 61, 77, -25}, 0, { 0, 0}, {0x00, 0x58, 0xa5, 0xff}}},
54
};
55
56
// 0x08005378
57
static const Vtx cannon_base_seg8_vertex_08005378[] = {
58
{{{ 102, 51, -50}, 0, { 0, 0}, {0x00, 0x58, 0xa5, 0xff}}},
59
{{{ 61, 77, -25}, 0, { 0, 0}, {0x00, 0x58, 0xa5, 0xff}}},
60
{{{ 102, 77, -25}, 0, { 0, 0}, {0x00, 0x58, 0xa5, 0xff}}},
61
{{{ 102, 77, -25}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
62
{{{ 61, 77, -25}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
63
{{{ 61, 77, 26}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
64
{{{ 102, 77, 26}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
65
{{{ 102, 77, 26}, 0, { 0, 0}, {0x00, 0x58, 0x5b, 0xff}}},
66
{{{ 61, 77, 26}, 0, { 0, 0}, {0x00, 0x58, 0x5b, 0xff}}},
67
{{{ 61, 51, 51}, 0, { 0, 0}, {0x00, 0x58, 0x5b, 0xff}}},
68
{{{ 102, 51, 51}, 0, { 0, 0}, {0x00, 0x58, 0x5b, 0xff}}},
69
{{{ 102, 51, 51}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
70
{{{ 61, 51, 51}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
71
{{{ 61, -101, 51}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
72
{{{ 102, -101, 51}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
73
};
74
75
// 0x08005468
76
static const Vtx cannon_base_seg8_vertex_08005468[] = {
77
{{{ -60, -101, 51}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
78
{{{ 61, -101, -50}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
79
{{{ -60, -101, -50}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
80
{{{ -101, 77, -25}, 0, { 0, 0}, {0x00, 0x58, 0xa5, 0xff}}},
81
{{{ -60, 51, -50}, 0, { 0, 0}, {0x00, 0x58, 0xa5, 0xff}}},
82
{{{ -101, 51, -50}, 0, { 0, 0}, {0x00, 0x58, 0xa5, 0xff}}},
83
{{{ -101, 51, -50}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
84
{{{ -60, -101, -50}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
85
{{{ -101, -101, -50}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
86
{{{ -60, 51, -50}, 0, { 0, 0}, {0x00, 0x00, 0x81, 0xff}}},
87
{{{ -60, -101, 51}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
88
{{{ -60, -101, -50}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
89
{{{ -60, 51, -50}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
90
{{{ -60, 77, -25}, 0, { 0, 0}, {0x00, 0x58, 0xa5, 0xff}}},
91
{{{ -60, 77, -25}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
92
};
93
94
// 0x08005558
95
static const Vtx cannon_base_seg8_vertex_08005558[] = {
96
{{{ -101, -101, 51}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
97
{{{ -60, 51, 51}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
98
{{{ -101, 51, 51}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
99
{{{ -60, -101, 51}, 0, { 0, 0}, {0x00, 0x00, 0x7f, 0xff}}},
100
{{{ -60, -101, 51}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
101
{{{ -60, 77, -25}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
102
{{{ -60, 77, 26}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
103
{{{ -60, 51, 51}, 0, { 0, 0}, {0x7f, 0x00, 0x00, 0xff}}},
104
{{{ -101, 51, 51}, 0, { 0, 0}, {0x00, 0x58, 0x5b, 0xff}}},
105
{{{ -60, 51, 51}, 0, { 0, 0}, {0x00, 0x58, 0x5b, 0xff}}},
106
{{{ -60, 77, 26}, 0, { 0, 0}, {0x00, 0x58, 0x5b, 0xff}}},
107
{{{ -101, 77, 26}, 0, { 0, 0}, {0x00, 0x58, 0x5b, 0xff}}},
108
{{{ -101, 77, 26}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
109
{{{ -60, 77, 26}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
110
{{{ -60, 77, -25}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
111
{{{ -101, 77, -25}, 0, { 0, 0}, {0x00, 0x7f, 0x00, 0xff}}},
112
};
113
114
// 0x08005658 - 0x080056D0
115
const Gfx cannon_base_seg8_dl_08005658[] = {
116
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, cannon_base_seg8_texture_080049B8),
117
gsDPLoadSync(),
118
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 32 * 32 - 1, CALC_DXT(32, G_IM_SIZ_16b_BYTES)),
119
gsSPLight(&cannon_base_seg8_lights_08004988.l, 1),
120
gsSPLight(&cannon_base_seg8_lights_08004988.a, 2),
121
gsSPVertex(cannon_base_seg8_vertex_080051B8, 12, 0),
122
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 4, 0x0),
123
gsSP2Triangles( 0, 2, 5, 0x0, 0, 5, 3, 0x0),
124
gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 10, 0x0),
125
gsSP2Triangles( 6, 10, 11, 0x0, 6, 11, 7, 0x0),
126
gsSPEndDisplayList(),
127
};
128
129
// 0x080056D0 - 0x080057F8
130
const Gfx cannon_base_seg8_dl_080056D0[] = {
131
gsSPLight(&cannon_base_seg8_lights_080049A0.l, 1),
132
gsSPLight(&cannon_base_seg8_lights_080049A0.a, 2),
133
gsSPVertex(cannon_base_seg8_vertex_08005278, 16, 0),
134
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
135
gsSP2Triangles( 3, 6, 4, 0x0, 7, 8, 9, 0x0),
136
gsSP2Triangles( 7, 10, 11, 0x0, 7, 12, 10, 0x0),
137
gsSP2Triangles( 7, 9, 12, 0x0, 13, 14, 15, 0x0),
138
gsSPVertex(cannon_base_seg8_vertex_08005378, 15, 0),
139
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
140
gsSP2Triangles( 3, 5, 6, 0x0, 7, 8, 9, 0x0),
141
gsSP2Triangles( 7, 9, 10, 0x0, 11, 12, 13, 0x0),
142
gsSP1Triangle(11, 13, 14, 0x0),
143
gsSPVertex(cannon_base_seg8_vertex_08005468, 15, 0),
144
gsSP2Triangles( 0, 1, 2, 0x0, 3, 4, 5, 0x0),
145
gsSP2Triangles( 6, 7, 8, 0x0, 6, 9, 7, 0x0),
146
gsSP2Triangles(10, 11, 12, 0x0, 3, 13, 4, 0x0),
147
gsSP1Triangle(10, 12, 14, 0x0),
148
gsSPVertex(cannon_base_seg8_vertex_08005558, 16, 0),
149
gsSP2Triangles( 0, 1, 2, 0x0, 0, 3, 1, 0x0),
150
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
151
gsSP2Triangles( 8, 9, 10, 0x0, 8, 10, 11, 0x0),
152
gsSP2Triangles(12, 13, 14, 0x0, 12, 14, 15, 0x0),
153
gsSPEndDisplayList(),
154
};
155
156
// 0x080057F8 - 0x08005870
157
const Gfx cannon_base_seg8_dl_080057F8[] = {
158
gsDPPipeSync(),
159
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
160
gsSPClearGeometryMode(G_SHADING_SMOOTH),
161
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),
162
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
163
gsDPTileSync(),
164
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),
165
gsDPSetTileSize(0, 0, 0, (32 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
166
gsSPDisplayList(cannon_base_seg8_dl_08005658),
167
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
168
gsDPPipeSync(),
169
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
170
gsSPDisplayList(cannon_base_seg8_dl_080056D0),
171
gsSPSetGeometryMode(G_SHADING_SMOOTH),
172
gsSPEndDisplayList(),
173
};
174
175