sm64

A Super Mario 64 decompilation
Log | Files | Refs | README | LICENSE

dynlists_mario_eyes.c (8460B)


      1 #include <PR/ultratypes.h>
      2 
      3 #include "macros.h"
      4 #include "dynlist_macros.h"
      5 #include "dynlists.h"
      6 #include "../dynlist_proc.h"
      7 
      8 static s16 verts_mario_eye_right[][3] = {
      9     { 306, 26, 83 },   { 318, 18, 81 },   { 312, -13, 94 },  { 308, 43, 53 },   { 320, 35, 50 },
     10     { 308, 47, 12 },   { 320, 39, 9 },    { 316, 31, -30 },  { 304, 39, -27 },  { 311, 11, -58 },
     11     { 299, 19, -55 },  { 304, -21, -66 }, { 287, -46, -51 }, { 299, -54, -53 }, { 285, -64, -20 },
     12     { 297, -72, -23 }, { 286, -69, 20 },  { 299, -76, 17 },  { 301, -68, 57 },  { 289, -60, 60 },
     13     { 305, -47, 85 },  { 294, -40, 88 },  { 315, -35, 13 },  { 316, -33, 21 },  { 317, -28, 25 },
     14     { 293, -14, -64 }, { 316, -17, 67 },  { 312, -37, 61 },  { 310, -50, 44 },  { 307, -53, -14 },
     15     { 308, -42, -33 }, { 311, -22, -41 }, { 315, -2, -36 },  { 319, 10, -18 },  { 322, 13, 39 },
     16     { 320, 2, 59 },    { 318, -20, 29 },  { 308, -57, 15 },  { 315, -34, 4 },   { 315, -30, 0 },
     17     { 316, -22, -4 },  { 318, -14, -1 },  { 319, -9, 2 },    { 322, 16, 10 },   { 320, -8, 20 },
     18     { 319, -13, 24 },  { 320, -7, 11 },   { 301, -6, 96 },
     19 };
     20 
     21 static struct GdVtxData vtx_mario_eye_right = { ARRAY_COUNT(verts_mario_eye_right), 0x1, verts_mario_eye_right };
     22 
     23 static u16 facedata_mario_eye_right[][4] = {
     24     { 1, 2, 1, 0 },    { 1, 1, 4, 3 },    { 1, 4, 6, 5 },    { 1, 6, 7, 5 },    { 1, 7, 9, 8 },
     25     { 1, 9, 11, 10 },  { 1, 11, 13, 12 }, { 1, 13, 15, 14 }, { 1, 15, 17, 16 }, { 1, 17, 18, 16 },
     26     { 1, 18, 20, 19 }, { 1, 20, 2, 21 },  { 1, 0, 47, 2 },   { 1, 2, 26, 1 },   { 1, 20, 26, 2 },
     27     { 1, 18, 27, 20 }, { 1, 17, 28, 18 }, { 1, 15, 29, 17 }, { 1, 13, 30, 15 }, { 1, 11, 31, 13 },
     28     { 1, 9, 31, 11 },  { 1, 7, 32, 9 },   { 1, 6, 33, 7 },   { 1, 4, 34, 6 },   { 1, 1, 35, 4 },
     29     { 1, 35, 34, 4 },  { 1, 34, 43, 6 },  { 1, 6, 43, 33 },  { 1, 7, 33, 32 },  { 1, 9, 32, 31 },
     30     { 1, 31, 30, 13 }, { 1, 30, 29, 15 }, { 1, 29, 37, 17 }, { 1, 17, 37, 28 }, { 1, 18, 28, 27 },
     31     { 1, 20, 27, 26 }, { 1, 26, 35, 1 },  { 1, 3, 0, 1 },    { 1, 5, 3, 4 },    { 1, 7, 8, 5 },
     32     { 1, 9, 10, 8 },   { 1, 11, 25, 10 }, { 1, 12, 25, 11 }, { 1, 14, 12, 13 }, { 1, 16, 14, 15 },
     33     { 1, 18, 19, 16 }, { 1, 2, 47, 21 },  { 1, 20, 21, 19 }, { 2, 26, 36, 35 }, { 2, 27, 36, 26 },
     34     { 2, 28, 24, 27 }, { 2, 37, 23, 28 }, { 2, 29, 38, 37 }, { 2, 30, 39, 29 }, { 2, 31, 40, 30 },
     35     { 2, 32, 40, 31 }, { 2, 33, 41, 32 }, { 2, 43, 42, 33 }, { 2, 34, 44, 43 }, { 2, 35, 45, 34 },
     36     { 2, 45, 44, 34 }, { 2, 44, 46, 43 }, { 2, 43, 46, 42 }, { 2, 33, 42, 41 }, { 2, 32, 41, 40 },
     37     { 2, 40, 39, 30 }, { 2, 39, 38, 29 }, { 2, 38, 22, 37 }, { 2, 37, 22, 23 }, { 2, 28, 23, 24 },
     38     { 2, 27, 24, 36 }, { 2, 36, 45, 35 }, { 3, 24, 23, 22 }, { 3, 22, 36, 24 }, { 3, 22, 38, 36 },
     39     { 3, 38, 39, 36 }, { 3, 39, 40, 36 }, { 3, 40, 41, 36 }, { 3, 41, 45, 36 }, { 3, 41, 42, 45 },
     40     { 3, 42, 46, 45 }, { 3, 46, 44, 45 },
     41 };
     42 
     43 static struct GdFaceData faces_mario_eye_right = { ARRAY_COUNT(facedata_mario_eye_right), 0x1, facedata_mario_eye_right };
     44 
     45 struct DynList dynlist_mario_eye_right_shape[] = {
     46     BeginList(),
     47 
     48     MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_RIGHT_EYE_VTX_GROUP),
     49         LinkWithPtr(&vtx_mario_eye_right),
     50 
     51     MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_RIGHT_EYE_TRI_GROUP),
     52         LinkWithPtr(&faces_mario_eye_right),
     53 
     54     StartGroup(DYNOBJ_MARIO_RIGHT_EYE_MTL_GROUP),
     55         // ???
     56         MakeDynObj(D_MATERIAL, 0),
     57             SetId(0),
     58             SetAmbient(0.0, 0.291, 1.0),
     59             SetDiffuse(0.0, 0.291, 1.0),
     60         // Iris color
     61         MakeDynObj(D_MATERIAL, 0),
     62             SetId(1),
     63             SetAmbient(0.0, 0.576, 1.0),
     64             SetDiffuse(0.0, 0.576, 1.0),
     65         // Pupil color
     66         MakeDynObj(D_MATERIAL, 0),
     67             SetId(2),
     68             SetAmbient(0.0, 0.0, 0.0),
     69             SetDiffuse(0.0, 0.0, 0.0),
     70         // Color of spot in the middle of pupil
     71         MakeDynObj(D_MATERIAL, 0),
     72             SetId(3),
     73             SetAmbient(1.0, 1.0, 1.0),
     74             SetDiffuse(1.0, 1.0, 1.0),
     75     EndGroup(DYNOBJ_MARIO_RIGHT_EYE_MTL_GROUP),
     76 
     77     MakeDynObj(D_SHAPE, DYNOBJ_MARIO_RIGHT_EYE_SHAPE),
     78         SetNodeGroup(DYNOBJ_MARIO_RIGHT_EYE_VTX_GROUP),
     79         SetPlaneGroup(DYNOBJ_MARIO_RIGHT_EYE_TRI_GROUP),
     80         SetMaterialGroup(DYNOBJ_MARIO_RIGHT_EYE_MTL_GROUP),
     81 
     82     EndList(),
     83 };
     84 
     85 static s16 verts_mario_eye_left[][3] = {
     86     { 302, 35, -81 },  { 316, 28, -79 },  { 311, -2, -97 },  { 304, 48, -48 },  { 318, 40, -46 },
     87     { 302, 46, -7 },   { 316, 38, -5 },   { 311, 24, 32 },   { 297, 32, 30 },   { 305, 0, 56 },
     88     { 291, 7, 55 },    { 298, -34, 60 },  { 280, -57, 40 },  { 294, -64, 42 },  { 279, -70, 7 },
     89     { 294, -78, 9 },   { 282, -68, -33 }, { 296, -76, -31 }, { 300, -62, -69 }, { 286, -54, -71 },
     90     { 305, -37, -94 }, { 291, -29, -96 }, { 314, -35, -20 }, { 315, -32, -28 }, { 316, -27, -32 },
     91     { 285, -26, 58 },  { 316, -9, -71 },  { 312, -30, -69 }, { 310, -46, -53 }, { 305, -58, 3 },
     92     { 305, -49, 24 },  { 307, -30, 35 },  { 311, -10, 33 },  { 316, 4, 17 },    { 321, 16, -39 },
     93     { 319, 8, -60 },   { 318, -18, -34 }, { 307, -56, -25 }, { 313, -35, -11 }, { 314, -32, -6 },
     94     { 315, -25, 0 },   { 316, -17, -3 },  { 318, -11, -6 },  { 320, 14, -9 },   { 319, -8, -23 },
     95     { 319, -11, -28 }, { 319, -8, -14 },  { 297, 5, -99 },
     96 };
     97 
     98 static struct GdVtxData vtx_mario_eye_left = { ARRAY_COUNT(verts_mario_eye_left), 0x1, verts_mario_eye_left };
     99 
    100 static u16 facedata_mario_eye_left[][4] = {
    101     { 1, 0, 1, 2 },    { 1, 3, 4, 1 },    { 1, 5, 6, 4 },    { 1, 5, 7, 6 },    { 1, 8, 9, 7 },
    102     { 1, 10, 11, 9 },  { 1, 12, 13, 11 }, { 1, 14, 15, 13 }, { 1, 16, 17, 15 }, { 1, 16, 18, 17 },
    103     { 1, 19, 20, 18 }, { 1, 21, 2, 20 },  { 1, 2, 47, 0 },   { 1, 1, 26, 2 },   { 1, 2, 26, 20 },
    104     { 1, 20, 27, 18 }, { 1, 18, 28, 17 }, { 1, 17, 29, 15 }, { 1, 15, 30, 13 }, { 1, 13, 31, 11 },
    105     { 1, 11, 31, 9 },  { 1, 9, 32, 7 },   { 1, 7, 33, 6 },   { 1, 6, 34, 4 },   { 1, 4, 35, 1 },
    106     { 1, 4, 34, 35 },  { 1, 6, 43, 34 },  { 1, 33, 43, 6 },  { 1, 32, 33, 7 },  { 1, 31, 32, 9 },
    107     { 1, 13, 30, 31 }, { 1, 15, 29, 30 }, { 1, 17, 37, 29 }, { 1, 28, 37, 17 }, { 1, 27, 28, 18 },
    108     { 1, 26, 27, 20 }, { 1, 1, 35, 26 },  { 1, 1, 0, 3 },    { 1, 4, 3, 5 },    { 1, 5, 8, 7 },
    109     { 1, 8, 10, 9 },   { 1, 10, 25, 11 }, { 1, 11, 25, 12 }, { 1, 13, 12, 14 }, { 1, 15, 14, 16 },
    110     { 1, 16, 19, 18 }, { 1, 21, 47, 2 },  { 1, 19, 21, 20 }, { 2, 35, 36, 26 }, { 2, 26, 36, 27 },
    111     { 2, 27, 24, 28 }, { 2, 28, 23, 37 }, { 2, 37, 38, 29 }, { 2, 29, 39, 30 }, { 2, 30, 40, 31 },
    112     { 2, 31, 40, 32 }, { 2, 32, 41, 33 }, { 2, 33, 42, 43 }, { 2, 43, 44, 34 }, { 2, 34, 45, 35 },
    113     { 2, 34, 44, 45 }, { 2, 43, 46, 44 }, { 2, 42, 46, 43 }, { 2, 41, 42, 33 }, { 2, 40, 41, 32 },
    114     { 2, 30, 39, 40 }, { 2, 29, 38, 39 }, { 2, 37, 22, 38 }, { 2, 23, 22, 37 }, { 2, 24, 23, 28 },
    115     { 2, 36, 24, 27 }, { 2, 35, 45, 36 }, { 3, 22, 23, 24 }, { 3, 24, 36, 22 }, { 3, 36, 38, 22 },
    116     { 3, 36, 39, 38 }, { 3, 36, 40, 39 }, { 3, 36, 41, 40 }, { 3, 36, 45, 41 }, { 3, 45, 42, 41 },
    117     { 3, 45, 46, 42 }, { 3, 45, 44, 46 },
    118 };
    119 
    120 static struct GdFaceData faces_mario_eye_left = { ARRAY_COUNT(facedata_mario_eye_left), 0x1, facedata_mario_eye_left };
    121 
    122 struct DynList dynlist_mario_eye_left_shape[28] = {
    123     BeginList(),
    124 
    125     MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_LEFT_EYE_VTX_GROUP),
    126         LinkWithPtr(&vtx_mario_eye_left),
    127 
    128     MakeDynObj(D_DATA_GRP, DYNOBJ_MARIO_LEFT_EYE_TRI_GROUP),
    129         LinkWithPtr(&faces_mario_eye_left),
    130 
    131     StartGroup(DYNOBJ_MARIO_LEFT_EYE_MTL_GROUP),
    132         // ???
    133         MakeDynObj(D_MATERIAL, 0),
    134             SetId(0),
    135             SetAmbient(0.0, 0.291, 1.0),
    136             SetDiffuse(0.0, 0.291, 1.0),
    137         // Iris color
    138         MakeDynObj(D_MATERIAL, 0),
    139             SetId(1),
    140             SetAmbient(0.0, 0.576, 1.0),
    141             SetDiffuse(0.0, 0.576, 1.0),
    142         // Pupil color
    143         MakeDynObj(D_MATERIAL, 0),
    144             SetId(2),
    145             SetAmbient(0.0, 0.0, 0.0),
    146             SetDiffuse(0.0, 0.0, 0.0),
    147         // Color of spot in the middle of pupil
    148         MakeDynObj(D_MATERIAL, 0),
    149             SetId(3),
    150             SetAmbient(1.0, 1.0, 1.0),
    151             SetDiffuse(1.0, 1.0, 1.0),
    152     EndGroup(DYNOBJ_MARIO_LEFT_EYE_MTL_GROUP),
    153 
    154     MakeDynObj(D_SHAPE, DYNOBJ_MARIO_LEFT_EYE_SHAPE),
    155         SetNodeGroup(DYNOBJ_MARIO_LEFT_EYE_VTX_GROUP),
    156         SetPlaneGroup(DYNOBJ_MARIO_LEFT_EYE_TRI_GROUP),
    157         SetMaterialGroup(DYNOBJ_MARIO_LEFT_EYE_MTL_GROUP),
    158 
    159     EndList(),
    160 };