#include "game/paintings.h"

// 0x07021800 - 0x07021818
static const Lights1 inside_castle_seg7_lights_07021800 = gdSPDefLights1(
    0x50, 0x50, 0x50,
    0xff, 0xff, 0xff, 0x32, 0x32, 0x32
);

// 0x07021818 - 0x07021898
static const Vtx inside_castle_seg7_vertex_07021818[] = {
    {{{     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}}},
};

// 0x07021A18 - 0x07021A30
static const Gfx inside_castle_seg7_dl_07021A18[] = {
    gsSP2Triangles( 0,  1,  2, 0x0,  0,  2,  3, 0x0),
    gsSPEndDisplayList(),
};

// 0x07021A30 - 0x07021A48
static const Gfx inside_castle_seg7_dl_07021A30[] = {
    gsSP2Triangles( 4,  5,  6, 0x0,  4,  6,  7, 0x0),
    gsSPEndDisplayList(),
};

// 0x07021A48 - 0x07021AA0
static const Gfx inside_castle_seg7_dl_07021A48[] = {
    gsDPPipeSync(),
    gsSPSetGeometryMode(G_LIGHTING | G_SHADING_SMOOTH),
    gsDPSetCombineMode(G_CC_MODULATERGB, G_CC_MODULATERGB),
    gsSPLight(&inside_castle_seg7_lights_07021800.l, 1),
    gsSPLight(&inside_castle_seg7_lights_07021800.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(),
};

// 0x07021AA0 - 0x07021AC0
static const Gfx inside_castle_seg7_dl_07021AA0[] = {
    gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_OFF),
    gsDPPipeSync(),
    gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
    gsSPEndDisplayList(),
};

// 0x07021AC0 - 0x07021AE0
static const Gfx inside_castle_seg7_painting_dl_07021AC0[] = {
    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(),
};

// 0x07021AE0 - 0x07021FFA
static const PaintingData inside_castle_seg7_painting_texture_map_bottom_07021AE0[] = {
    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,
};


// 0x07021FFC - 0x07022516
static const PaintingData inside_castle_seg7_painting_texture_map_top_07021FFC[] = {
    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,
};


// 0x07022518
static const PaintingData *const inside_castle_seg7_painting_texture_maps_07022518[] = { //keep
    inside_castle_seg7_painting_texture_map_bottom_07021AE0,
    inside_castle_seg7_painting_texture_map_top_07021FFC,
};

// 0x070230B0 - 0x07023110
static const Gfx inside_castle_seg7_painting_dl_070230B0[] = { //ccm
    gsSPDisplayList(inside_castle_seg7_dl_07021A48),
    gsSPVertex(inside_castle_seg7_vertex_07021818, 8, 0),
    gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_0700D800),
    gsDPLoadSync(),
    gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
    gsSPDisplayList(inside_castle_seg7_dl_07021A18),
    gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_0700C800),
    gsDPLoadSync(),
    gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
    gsSPDisplayList(inside_castle_seg7_dl_07021A30),
    gsSPDisplayList(inside_castle_seg7_dl_07021AA0),
    gsSPEndDisplayList(),
};

// 0x07023110 - 0x07023170
static const Gfx inside_castle_seg7_painting_dl_07023110[] = { //wf
    gsSPDisplayList(inside_castle_seg7_dl_07021A48),
    gsSPVertex(inside_castle_seg7_vertex_07021818, 8, 0),
    gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_0700F800),
    gsDPLoadSync(),
    gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
    gsSPDisplayList(inside_castle_seg7_dl_07021A18),
    gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_0700E800),
    gsDPLoadSync(),
    gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
    gsSPDisplayList(inside_castle_seg7_dl_07021A30),
    gsSPDisplayList(inside_castle_seg7_dl_07021AA0),
    gsSPEndDisplayList(),
};

// 0x07023170 - 0x070231D0
static const Gfx inside_castle_seg7_painting_dl_07023170[] = { //jrb
    gsSPDisplayList(inside_castle_seg7_dl_07021A48),
    gsSPVertex(inside_castle_seg7_vertex_07021818, 8, 0),
    gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07011800),
    gsDPLoadSync(),
    gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
    gsSPDisplayList(inside_castle_seg7_dl_07021A18),
    gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07010800),
    gsDPLoadSync(),
    gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
    gsSPDisplayList(inside_castle_seg7_dl_07021A30),
    gsSPDisplayList(inside_castle_seg7_dl_07021AA0),
    gsSPEndDisplayList(),
};

// 0x070231D0 - 0x07023230
static const Gfx inside_castle_seg7_painting_dl_070231D0[] = { //lll
    gsSPDisplayList(inside_castle_seg7_dl_07021A48),
    gsSPVertex(inside_castle_seg7_vertex_07021818, 8, 0),
    gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07012800),
    gsDPLoadSync(),
    gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
    gsSPDisplayList(inside_castle_seg7_dl_07021A18),
    gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, inside_castle_seg7_texture_07013800),
    gsDPLoadSync(),
    gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 64 * 32 - 1, CALC_DXT(64, G_IM_SIZ_16b_BYTES)),
    gsSPDisplayList(inside_castle_seg7_dl_07021A30),
    gsSPDisplayList(inside_castle_seg7_dl_07021AA0),
    gsSPEndDisplayList(),
};

static const u8 *const inside_castle_seg7_painting_textures_070235C8[] = { //ccm
    inside_castle_seg7_texture_0700D800, inside_castle_seg7_texture_0700C800,
};

static const u8 *const inside_castle_seg7_painting_textures_070235D0[] = { //wf
    inside_castle_seg7_texture_0700F800, inside_castle_seg7_texture_0700E800,
};

static const u8 *const inside_castle_seg7_painting_textures_070235D8[] = { //jrb
    inside_castle_seg7_texture_07011800, inside_castle_seg7_texture_07010800,
};

static const u8 *const inside_castle_seg7_painting_textures_070235E0[] = { //lll
    inside_castle_seg7_texture_07012800, inside_castle_seg7_texture_07013800,
};

// 0x07023698 - 0x07023710
struct Painting ccm_painting = {
    /* id */ 0x0001,
    /* 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 */ -3078.0f,   410.0f,    343.0f,
    /*                         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 */ inside_castle_seg7_painting_dl_070230B0,
    /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518,
    /* Textures */     inside_castle_seg7_painting_textures_070235C8,
    /* Texture w, h */ 64, 32,
    /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0,
    /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY,
    /* Alpha */ 0xFF,
    /* Mario Below */  0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */
    /* Size */  614.0f,
};

// 0x07023710 - 0x07023788
struct Painting wf_painting = {
    /* id */ 0x0002,
    /* 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,     0.0f,
    /* Position */ -1255.0f,  -208.0f, -2145.0f,
    /*                         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 */ inside_castle_seg7_painting_dl_07023110,
    /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518,
    /* Textures */     inside_castle_seg7_painting_textures_070235D0,
    /* Texture w, h */ 64, 32,
    /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0,
    /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY,
    /* Alpha */ 0xFF,
    /* Mario Below */  0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */
    /* Size */  614.0f,
};

// 0x07023788 - 0x07023800
struct Painting jrb_painting = {
    /* id */ 0x0003,
    /* 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,   270.0f,
    /* Position */  3074.0f,   410.0f,  -270.0f,
    /*                         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 */ inside_castle_seg7_painting_dl_07023170,
    /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518,
    /* Textures */     inside_castle_seg7_painting_textures_070235D8,
    /* Texture w, h */ 64, 32,
    /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0,
    /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY,
    /* Alpha */ 0xFF,
    /* Mario Below */  0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */
    /* Size */  614.0f,
};

// 0x07023800 - 0x07023878
struct Painting lll_painting = {
    /* id */ 0x0004,
    /* 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,     0.0f,
    /* Position */   637.0f,  -208.0f, -2145.0f,
    /*                         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 */ inside_castle_seg7_painting_dl_070231D0,
    /* Texture Maps */ inside_castle_seg7_painting_texture_maps_07022518,
    /* Textures */     inside_castle_seg7_painting_textures_070235E0,
    /* Texture w, h */ 64, 32,
    /* Ripple DList */ inside_castle_seg7_painting_dl_07021AC0,
    /* Ripple Trigger */ RIPPLE_TRIGGER_PROXIMITY,
    /* Alpha */ 0xFF,
    /* Mario Below */  0x00, 0x00, 0x00, /* Whether or not Mario is below the painting */
    /* Size */  614.0f,
};
