sm64/levels/ttm/areas/1/painting.inc.c

578 lines
13 KiB
C
Raw Normal View History

2019-11-03 14:36:27 -05:00
#include "game/paintings.h"
2019-12-01 21:52:53 -05:00
// 0x070122F0 - 0x07012308
static const Lights1 ttm_seg7_lights_070122F0 = gdSPDefLights1(
0x50, 0x50, 0x50,
0xff, 0xff, 0xff, 0x32, 0x32, 0x32
);
2019-11-03 14:36:27 -05:00
// 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),
2019-12-01 21:52:53 -05:00
gsSPLight(&ttm_seg7_lights_070122F0.l, 1),
gsSPLight(&ttm_seg7_lights_070122F0.a, 2),
2019-11-03 14:36:27 -05:00
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
2020-03-01 22:42:52 -05:00
static const PaintingData ttm_seg7_painting_texture_map_bottom_07012450[] = {
85, // num mappings
// Format:
// mesh vtx ID, texture X, texture Y
2019-11-03 14:36:27 -05:00
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,
2020-03-01 22:42:52 -05:00
132, // num groups
// Grouped by 5 + one remainder group,
// = 15 vertices per group + a few extra triangles
2019-11-03 14:36:27 -05:00
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
2020-03-01 22:42:52 -05:00
static const PaintingData ttm_seg7_painting_top_0701296C[] = {
85, // num mappings
// Format:
// mesh vtx ID, texture X, texture Y
2019-11-03 14:36:27 -05:00
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,
2020-03-01 22:42:52 -05:00
132, // num groups
// Grouped by 5 + one remainder group,
// = 15 vertices per group + a few extra triangles
2019-11-03 14:36:27 -05:00
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
2020-03-01 22:42:52 -05:00
static const PaintingData *const ttm_seg7_painting_texture_maps_07012E88[] = {
ttm_seg7_painting_texture_map_bottom_07012450,
ttm_seg7_painting_top_0701296C,
2019-11-03 14:36:27 -05:00
};
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
2020-12-03 14:26:38 -05:00
ALIGNED8 static const Texture *const ttm_seg7_painting_textures_07012EF8[] = {
2019-11-03 14:36:27 -05:00
ttm_seg7_texture_07004000, ttm_seg7_texture_07003000,
};
// 0x07012F00 (PaintingData)
struct Painting ttm_slide_painting = {
/* id */ 0x0000,
2020-03-01 22:42:52 -05:00
/* Image Count */ 0x02,
/* Texture Type */ PAINTING_IMAGE,
2019-11-03 14:36:27 -05:00
/* 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,
2020-03-01 22:42:52 -05:00
/* 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,
2019-11-03 14:36:27 -05:00
};