mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-29 23:43:01 +00:00
578 lines
13 KiB
C
578 lines
13 KiB
C
#include "game/paintings.h"
|
|
|
|
// 0x070122F0 - 0x07012308
|
|
static const Lights1 ttm_seg7_lights_070122F0 = gdSPDefLights1(
|
|
0x50, 0x50, 0x50,
|
|
0xff, 0xff, 0xff, 0x32, 0x32, 0x32
|
|
);
|
|
|
|
// 0x07012308 - 0x07012388
|
|
static const Vtx ttm_seg7_vertex_07012308[] = {
|
|
{{{ 0, 0, 0}, 0, { -32, 992}, {0x00, 0x00, 0x7f, 0xff}}},
|
|
{{{ 614, 0, 0}, 0, { 2012, 992}, {0x00, 0x00, 0x7f, 0xff}}},
|
|
{{{ 614, 307, 0}, 0, { 2012, 0}, {0x00, 0x00, 0x7f, 0xff}}},
|
|
{{{ 0, 307, 0}, 0, { -32, 0}, {0x00, 0x00, 0x7f, 0xff}}},
|
|
{{{ 0, 307, 0}, 0, { -32, 992}, {0x00, 0x00, 0x7f, 0xff}}},
|
|
{{{ 614, 307, 0}, 0, { 2012, 992}, {0x00, 0x00, 0x7f, 0xff}}},
|
|
{{{ 614, 614, 0}, 0, { 2012, -28}, {0x00, 0x00, 0x7f, 0xff}}},
|
|
{{{ 0, 614, 0}, 0, { -32, -28}, {0x00, 0x00, 0x7f, 0xff}}},
|
|
};
|
|
|
|
// 0x07012388 - 0x070123A0
|
|
const Gfx ttm_seg7_dl_07012388[] = {
|
|
gsSP2Triangles( 0, 1, 2, 0x0, 0, 2, 3, 0x0),
|
|
gsSPEndDisplayList(),
|
|
};
|
|
|
|
// 0x070123A0 - 0x070123B8
|
|
const Gfx ttm_seg7_dl_070123A0[] = {
|
|
gsSP2Triangles( 4, 5, 6, 0x0, 4, 6, 7, 0x0),
|
|
gsSPEndDisplayList(),
|
|
};
|
|
|
|
// 0x070123B8 - 0x07012410
|
|
const Gfx ttm_seg7_dl_070123B8[] = {
|
|
gsDPPipeSync(),
|
|
gsSPSetGeometryMode(G_LIGHTING | G_SHADING_SMOOTH),
|
|
gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
|
|
gsSPLight(&ttm_seg7_lights_070122F0.l, 1),
|
|
gsSPLight(&ttm_seg7_lights_070122F0.a, 2),
|
|
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),
|
|
gsDPTileSync(),
|
|
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 6, G_TX_NOLOD),
|
|
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
|
|
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
|
|
gsSPEndDisplayList(),
|
|
};
|
|
|
|
// 0x07012410 - 0x07012430
|
|
const Gfx ttm_seg7_dl_07012410[] = {
|
|
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
|
|
gsDPPipeSync(),
|
|
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
|
|
gsSPEndDisplayList(),
|
|
};
|
|
|
|
// 0x07012430 - 0x07012450
|
|
static const Gfx ttm_seg7_painting_dl_07012430[] = {
|
|
gsDPTileSync(),
|
|
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0, G_TX_RENDERTILE, 0, G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_CLAMP, 6, G_TX_NOLOD),
|
|
gsDPSetTileSize(0, 0, 0, (64 - 1) << G_TEXTURE_IMAGE_FRAC, (32 - 1) << G_TEXTURE_IMAGE_FRAC),
|
|
gsSPEndDisplayList(),
|
|
};
|
|
|
|
// 0x07012450 - 0x0701296A
|
|
static const PaintingData ttm_seg7_painting_texture_map_bottom_07012450[] = {
|
|
85, // num mappings
|
|
// Format:
|
|
// mesh vtx ID, texture X, texture Y
|
|
49, 2016, 889,
|
|
53, 2016, 685,
|
|
55, 1843, 787,
|
|
50, 2016, 992,
|
|
51, 1843, 992,
|
|
52, 1843, 583,
|
|
75, 2016, 513,
|
|
54, 1671, 889,
|
|
59, 1671, 685,
|
|
62, 1502, 787,
|
|
56, 1502, 992,
|
|
57, 1671, 992,
|
|
58, 1502, 583,
|
|
60, 1671, 513,
|
|
61, 1330, 889,
|
|
65, 1330, 685,
|
|
63, 1162, 992,
|
|
64, 1330, 992,
|
|
66, 1162, 583,
|
|
67, 1330, 513,
|
|
69, 1162, 787,
|
|
68, 989, 889,
|
|
70, 821, 992,
|
|
71, 989, 992,
|
|
73, 989, 685,
|
|
72, 821, 583,
|
|
74, 989, 513,
|
|
77, 2016, 308,
|
|
78, 1843, 410,
|
|
76, 1843, 204,
|
|
81, 1502, 410,
|
|
80, 1671, 308,
|
|
47, 1671, 102,
|
|
79, 1502, 204,
|
|
46, 1330, 102,
|
|
82, 1162, 204,
|
|
83, 1330, 308,
|
|
84, 1162, 410,
|
|
86, 989, 308,
|
|
85, 821, 204,
|
|
48, 989, 102,
|
|
25, 1502, 0,
|
|
31, 1162, 0,
|
|
19, 1843, 0,
|
|
37, 821, 0,
|
|
120, 821, 787,
|
|
119, 649, 889,
|
|
122, 481, 992,
|
|
121, 649, 992,
|
|
124, 649, 685,
|
|
125, 481, 583,
|
|
123, 649, 513,
|
|
127, 481, 787,
|
|
126, 308, 889,
|
|
129, 140, 992,
|
|
128, 308, 992,
|
|
132, 308, 513,
|
|
131, 308, 685,
|
|
130, 140, 583,
|
|
134, 140, 787,
|
|
133, -32, 889,
|
|
135, -32, 513,
|
|
136, 821, 410,
|
|
116, 649, 102,
|
|
137, 649, 308,
|
|
114, 481, 204,
|
|
138, 481, 410,
|
|
139, 308, 308,
|
|
118, 140, 204,
|
|
115, 308, 102,
|
|
140, 140, 410,
|
|
117, -32, 102,
|
|
99, 481, 0,
|
|
105, 140, 0,
|
|
143, 2016, 102,
|
|
145, 1330, 0,
|
|
144, 1671, 0,
|
|
142, 2016, 0,
|
|
146, 989, 0,
|
|
155, -32, 685,
|
|
156, -32, 992,
|
|
154, -32, 308,
|
|
151, 308, 0,
|
|
150, 649, 0,
|
|
153, -32, 0,
|
|
|
|
132, // num groups
|
|
// Grouped by 5 + one remainder group,
|
|
// = 15 vertices per group + a few extra triangles
|
|
13, 8, 5,
|
|
0, 1, 2,
|
|
3, 0, 4,
|
|
4, 0, 2,
|
|
5, 2, 1,
|
|
1, 6, 5,
|
|
7, 2, 8,
|
|
5, 8, 2,
|
|
2, 7, 4,
|
|
7, 8, 9,
|
|
10, 7, 9,
|
|
11, 7, 10,
|
|
7, 11, 4,
|
|
12, 9, 8,
|
|
8, 13, 12,
|
|
21, 24, 45,
|
|
14, 9, 15,
|
|
12, 15, 9,
|
|
9, 14, 10,
|
|
16, 14, 20,
|
|
17, 14, 16,
|
|
14, 15, 20,
|
|
14, 17, 10,
|
|
15, 19, 18,
|
|
18, 20, 15,
|
|
19, 15, 12,
|
|
20, 21, 16,
|
|
18, 24, 20,
|
|
21, 20, 24,
|
|
22, 21, 45,
|
|
23, 21, 22,
|
|
21, 23, 16,
|
|
24, 26, 25,
|
|
25, 45, 24,
|
|
26, 24, 18,
|
|
6, 27, 28,
|
|
5, 6, 28,
|
|
29, 28, 27,
|
|
27, 74, 29,
|
|
29, 31, 28,
|
|
13, 28, 31,
|
|
28, 13, 5,
|
|
36, 34, 35,
|
|
12, 13, 30,
|
|
13, 31, 30,
|
|
31, 32, 33,
|
|
32, 31, 29,
|
|
33, 30, 31,
|
|
33, 36, 30,
|
|
30, 19, 12,
|
|
19, 30, 36,
|
|
18, 19, 37,
|
|
19, 36, 37,
|
|
34, 36, 33,
|
|
35, 37, 36,
|
|
37, 26, 18,
|
|
35, 38, 37,
|
|
26, 37, 38,
|
|
25, 26, 62,
|
|
26, 38, 62,
|
|
38, 40, 39,
|
|
39, 62, 38,
|
|
40, 38, 35,
|
|
41, 34, 33,
|
|
33, 32, 41,
|
|
42, 34, 75,
|
|
34, 41, 75,
|
|
35, 34, 42,
|
|
32, 43, 76,
|
|
41, 32, 76,
|
|
43, 32, 29,
|
|
29, 74, 43,
|
|
43, 74, 77,
|
|
46, 49, 52,
|
|
42, 40, 35,
|
|
39, 40, 44,
|
|
40, 42, 78,
|
|
44, 40, 78,
|
|
25, 49, 45,
|
|
45, 46, 22,
|
|
46, 45, 49,
|
|
47, 46, 52,
|
|
48, 46, 47,
|
|
46, 48, 22,
|
|
58, 59, 57,
|
|
49, 51, 50,
|
|
50, 52, 49,
|
|
51, 49, 25,
|
|
50, 57, 52,
|
|
52, 53, 47,
|
|
53, 52, 57,
|
|
53, 55, 47,
|
|
54, 53, 59,
|
|
55, 53, 54,
|
|
53, 57, 59,
|
|
56, 57, 50,
|
|
57, 56, 58,
|
|
58, 79, 59,
|
|
59, 60, 54,
|
|
60, 59, 79,
|
|
60, 80, 54,
|
|
61, 79, 58,
|
|
62, 51, 25,
|
|
39, 64, 62,
|
|
51, 62, 64,
|
|
50, 51, 66,
|
|
51, 64, 66,
|
|
63, 64, 39,
|
|
64, 63, 65,
|
|
65, 66, 64,
|
|
66, 56, 50,
|
|
56, 66, 67,
|
|
65, 67, 66,
|
|
58, 56, 70,
|
|
56, 67, 70,
|
|
67, 69, 68,
|
|
68, 70, 67,
|
|
69, 67, 65,
|
|
70, 61, 58,
|
|
68, 81, 70,
|
|
61, 70, 81,
|
|
71, 73, 84,
|
|
71, 81, 68,
|
|
72, 69, 65,
|
|
65, 63, 72,
|
|
68, 69, 73,
|
|
69, 72, 82,
|
|
73, 69, 82,
|
|
44, 63, 39,
|
|
63, 44, 83,
|
|
72, 63, 83,
|
|
73, 71, 68,
|
|
};
|
|
|
|
|
|
// 0x0701296C - 0x07012E84
|
|
static const PaintingData ttm_seg7_painting_top_0701296C[] = {
|
|
85, // num mappings
|
|
// Format:
|
|
// mesh vtx ID, texture X, texture Y
|
|
0, 2016, 72,
|
|
1, 2016, 0,
|
|
2, 1843, 0,
|
|
3, 1843, 174,
|
|
4, 2016, 276,
|
|
5, 1671, 72,
|
|
6, 1671, 0,
|
|
8, 989, 72,
|
|
7, 989, 0,
|
|
10, 821, 0,
|
|
9, 1162, 0,
|
|
11, 821, 174,
|
|
12, 989, 276,
|
|
13, 1162, 174,
|
|
14, 1330, 72,
|
|
15, 1502, 0,
|
|
16, 1671, 276,
|
|
17, 1502, 174,
|
|
18, 1330, 276,
|
|
19, 1843, 992,
|
|
20, 2016, 889,
|
|
22, 2016, 685,
|
|
21, 1843, 583,
|
|
23, 1843, 787,
|
|
24, 1671, 889,
|
|
25, 1502, 992,
|
|
26, 1502, 583,
|
|
27, 1671, 685,
|
|
28, 1671, 481,
|
|
30, 1502, 787,
|
|
29, 1330, 889,
|
|
31, 1162, 992,
|
|
32, 1330, 481,
|
|
33, 1162, 583,
|
|
34, 1330, 685,
|
|
35, 1162, 787,
|
|
36, 989, 889,
|
|
37, 821, 992,
|
|
39, 821, 583,
|
|
38, 989, 685,
|
|
40, 989, 481,
|
|
41, 2016, 481,
|
|
42, 1843, 378,
|
|
43, 1502, 378,
|
|
44, 1162, 378,
|
|
45, 821, 378,
|
|
87, 649, 72,
|
|
88, -32, 0,
|
|
90, 140, 0,
|
|
89, -32, 72,
|
|
92, 308, 72,
|
|
91, 140, 174,
|
|
94, 481, 174,
|
|
93, 649, 276,
|
|
95, 481, 0,
|
|
96, 308, 276,
|
|
97, 821, 787,
|
|
98, 649, 889,
|
|
99, 481, 992,
|
|
102, 649, 481,
|
|
101, 649, 685,
|
|
100, 481, 583,
|
|
103, 481, 787,
|
|
104, 308, 889,
|
|
105, 140, 992,
|
|
108, 308, 481,
|
|
107, 308, 685,
|
|
106, 140, 583,
|
|
110, -32, 889,
|
|
109, 140, 787,
|
|
111, -32, 481,
|
|
112, 481, 378,
|
|
113, 140, 378,
|
|
141, 1330, 0,
|
|
142, 2016, 992,
|
|
144, 1671, 992,
|
|
145, 1330, 992,
|
|
146, 989, 992,
|
|
147, 649, 0,
|
|
148, -32, 276,
|
|
149, 308, 0,
|
|
150, 649, 992,
|
|
151, 308, 992,
|
|
152, -32, 685,
|
|
153, -32, 992,
|
|
|
|
132, // num groups
|
|
// Grouped by 5 + one remainder group,
|
|
// = 15 vertices per group + a few extra triangles
|
|
10, 7, 13,
|
|
0, 1, 2,
|
|
3, 0, 2,
|
|
4, 0, 3,
|
|
5, 2, 6,
|
|
2, 5, 3,
|
|
7, 8, 9,
|
|
8, 7, 10,
|
|
11, 7, 9,
|
|
12, 7, 11,
|
|
7, 12, 13,
|
|
13, 14, 10,
|
|
14, 73, 10,
|
|
5, 6, 15,
|
|
5, 16, 3,
|
|
16, 5, 17,
|
|
17, 5, 15,
|
|
14, 15, 73,
|
|
15, 14, 17,
|
|
18, 14, 13,
|
|
14, 18, 17,
|
|
19, 74, 20,
|
|
19, 20, 23,
|
|
28, 27, 22,
|
|
21, 41, 22,
|
|
22, 23, 21,
|
|
20, 21, 23,
|
|
23, 24, 19,
|
|
22, 27, 23,
|
|
24, 23, 27,
|
|
19, 24, 75,
|
|
25, 75, 24,
|
|
25, 24, 29,
|
|
24, 27, 29,
|
|
26, 29, 27,
|
|
27, 28, 26,
|
|
31, 36, 77,
|
|
26, 34, 29,
|
|
29, 30, 25,
|
|
30, 29, 34,
|
|
25, 30, 76,
|
|
31, 76, 30,
|
|
31, 30, 35,
|
|
30, 34, 35,
|
|
32, 34, 26,
|
|
33, 35, 34,
|
|
34, 32, 33,
|
|
35, 36, 31,
|
|
33, 39, 35,
|
|
36, 35, 39,
|
|
37, 36, 56,
|
|
36, 39, 56,
|
|
37, 77, 36,
|
|
28, 16, 43,
|
|
38, 56, 39,
|
|
39, 40, 38,
|
|
40, 39, 33,
|
|
22, 41, 42,
|
|
41, 4, 42,
|
|
3, 42, 4,
|
|
42, 28, 22,
|
|
28, 42, 16,
|
|
3, 16, 42,
|
|
26, 28, 43,
|
|
17, 43, 16,
|
|
43, 32, 26,
|
|
32, 43, 18,
|
|
17, 18, 43,
|
|
33, 32, 44,
|
|
32, 18, 44,
|
|
13, 44, 18,
|
|
13, 12, 44,
|
|
44, 40, 33,
|
|
40, 44, 12,
|
|
38, 40, 45,
|
|
40, 12, 45,
|
|
11, 45, 12,
|
|
9, 46, 11,
|
|
46, 9, 78,
|
|
47, 49, 48,
|
|
48, 49, 51,
|
|
49, 79, 51,
|
|
50, 80, 48,
|
|
51, 50, 48,
|
|
57, 56, 60,
|
|
46, 53, 11,
|
|
52, 46, 54,
|
|
53, 46, 52,
|
|
46, 78, 54,
|
|
54, 50, 52,
|
|
50, 54, 80,
|
|
50, 55, 52,
|
|
55, 50, 51,
|
|
38, 60, 56,
|
|
56, 57, 37,
|
|
58, 57, 62,
|
|
57, 60, 62,
|
|
58, 81, 57,
|
|
37, 57, 81,
|
|
59, 60, 38,
|
|
60, 59, 61,
|
|
61, 62, 60,
|
|
62, 63, 58,
|
|
63, 62, 66,
|
|
61, 66, 62,
|
|
63, 66, 69,
|
|
58, 63, 82,
|
|
64, 82, 63,
|
|
64, 63, 69,
|
|
45, 59, 38,
|
|
65, 66, 61,
|
|
66, 65, 67,
|
|
67, 69, 66,
|
|
68, 69, 83,
|
|
69, 68, 64,
|
|
67, 83, 69,
|
|
64, 68, 84,
|
|
70, 83, 67,
|
|
11, 53, 45,
|
|
59, 45, 53,
|
|
59, 53, 71,
|
|
61, 59, 71,
|
|
52, 71, 53,
|
|
52, 55, 71,
|
|
65, 71, 55,
|
|
71, 65, 61,
|
|
65, 55, 72,
|
|
67, 65, 72,
|
|
51, 72, 55,
|
|
70, 72, 79,
|
|
51, 79, 72,
|
|
72, 70, 67,
|
|
};
|
|
|
|
|
|
// 0x07012E88
|
|
static const PaintingData *const ttm_seg7_painting_texture_maps_07012E88[] = {
|
|
ttm_seg7_painting_texture_map_bottom_07012450,
|
|
ttm_seg7_painting_top_0701296C,
|
|
};
|
|
|
|
UNUSED static const u64 ttm_unused_0 = 0x0;
|
|
|
|
|
|
// 0x07012E98 - 0x07012EF8
|
|
static const Gfx ttm_seg7_painting_dl_07012E98[] = {
|
|
gsSPDisplayList(ttm_seg7_dl_070123B8),
|
|
gsSPVertex(ttm_seg7_vertex_07012308, 8, 0),
|
|
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07004000),
|
|
gsDPLoadSync(),
|
|
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
|
|
gsSPDisplayList(ttm_seg7_dl_07012388),
|
|
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, ttm_seg7_texture_07003000),
|
|
gsDPLoadSync(),
|
|
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
|
|
gsSPDisplayList(ttm_seg7_dl_070123A0),
|
|
gsSPDisplayList(ttm_seg7_dl_07012410),
|
|
gsSPEndDisplayList(),
|
|
};
|
|
|
|
// 0x07012EF8 - 0x07012F78
|
|
ALIGNED8 const Texture *const ttm_seg7_painting_textures_07012EF8[] = {
|
|
ttm_seg7_texture_07004000, ttm_seg7_texture_07003000,
|
|
};
|
|
|
|
// 0x07012F00 (PaintingData)
|
|
struct Painting 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 },
|
|
};
|