sm64/shape/keep/sankaku.shape

296 lines
10 KiB
Plaintext

/**********************************************************************
ultra64 displaylist C source file ( sankaku )
**********************************************************************/
#ifdef HMS_SHAPE
extern Gfx gfx_sankaku_0[];
extern Gfx gfx_sankaku_1[];
extern Gfx gfx_sankaku_2[];
extern Gfx gfx_sankaku_3[];
extern Gfx gfx_sankaku_4[];
extern Gfx gfx_hoshi_0[];
extern Gfx gfx_hoshi_1[];
extern Gfx gfx_hoshi_2[];
extern Gfx gfx_hoshi_3[];
extern Gfx gfx_hoshi_4[];
extern Gfx gfx_kakera[];
/**********************************************************************
<< sankaku >>
**********************************************************************/
Hierarchy RCP_HmsSankaku[] = {
hmsHeader(300)
hmsBegin()
hmsSelect(6, ControlShapeAnime)
hmsBegin()
hmsGfx(RM_SURF, gfx_sankaku_0)
hmsGfx(RM_SURF, gfx_sankaku_1)
hmsGfx(RM_SURF, gfx_sankaku_2)
hmsGfx(RM_SPRITE, gfx_kakera)
hmsGfx(RM_SURF, gfx_sankaku_3)
hmsGfx(RM_SURF, gfx_sankaku_4)
hmsEnd()
hmsEnd()
hmsExit()
};
/**********************************************************************
<< hoshi >>
**********************************************************************/
Hierarchy RCP_HmsHoshi[] = {
hmsHeader(300)
hmsBegin()
hmsSelect(5, ControlShapeAnime)
hmsBegin()
hmsGfx(RM_SURF, gfx_hoshi_0)
hmsGfx(RM_SURF, gfx_hoshi_1)
hmsGfx(RM_SURF, gfx_hoshi_2)
hmsGfx(RM_SURF, gfx_hoshi_3)
hmsGfx(RM_SURF, gfx_hoshi_4)
hmsEnd()
hmsEnd()
hmsExit()
};
#endif
#ifdef GFX_SHAPE
/*---------------------------------------------------------------------
Light Data
---------------------------------------------------------------------*/
static Lights1 light_sankaku[] = {
ShapeColor( 255,100,100 ),
ShapeColor( 100,255,100 ),
ShapeColor( 100,100,255 ),
ShapeColor( 255,255,100 ),
};
/***************************************************************************************************
Convert from NINGEN (kakera)
****************************************************************************************************/
static Vtx vtx_kakera_0[] = {
{ -101, -60, 0, 0, -130, 467, 0, 0, 127, 255},
{ 102, -60, 0, 0, 599, 467, 0, 0, 127, 255},
{ 0, 92, 0, 0, 234, -81, 0, 0, 127, 255},
};
static unsigned short hahen_txt[] = {
0x30c2, 0x30c2, 0x30c2, 0x30c2, 0x4102, 0xab44, 0xf508, 0xfd88, 0xdcc8, 0x92c4, 0x69c2, 0x4942, 0x30c2, 0x30c2, 0x30c2, 0x30c2,
0x30c2, 0x30c2, 0x30c2, 0x30c2, 0x6182, 0xab44, 0xf54a, 0xfd88, 0xf548, 0xe4c6, 0xc3c6, 0x92c4, 0x69c2, 0x30c2, 0x30c2, 0x30c2,
0x30c2, 0x30c2, 0x30c2, 0x38c2, 0x5942, 0x9284, 0xe54e, 0xfe12, 0xfdcb, 0xfd88, 0xed08, 0xc406, 0x9b04, 0x8ac4, 0x61c2, 0x30c2,
0x30c2, 0x30c2, 0x30c2, 0x38c2, 0x8a84, 0xab04, 0xd4cc, 0xee59, 0xf613, 0xf58b, 0xf548, 0xecc6, 0xbbc6, 0x9b04, 0x7204, 0x5182,
0x30c2, 0x30c2, 0x30c2, 0x38c2, 0x7a42, 0xa304, 0xd447, 0xc3c5, 0xeea1, 0xff5f, 0xf547, 0xe4c6, 0xc408, 0x9b08, 0x6a04, 0x5182,
0x30c2, 0x4942, 0xa346, 0x8a84, 0x8242, 0x9ac4, 0xb385, 0xc407, 0xe551, 0xf763, 0xf5cf, 0xedd3, 0xdd0e, 0xc44a, 0xa348, 0x7a86,
0x4942, 0x9ac4, 0xd488, 0x8a44, 0x8a84, 0x9285, 0xab05, 0xd489, 0xed4d, 0xf69b, 0xfe99, 0xfe97, 0xfe51, 0xdd0e, 0xabca, 0x7a46,
0xab44, 0xa304, 0xab04, 0x9ac4, 0x9ac4, 0xab45, 0x9285, 0x8245, 0xb3c9, 0xdccd, 0xf699, 0xfe97, 0xdcc9, 0xcc48, 0xb3c6, 0x7204,
0x9ac4, 0xa304, 0xb384, 0x92c4, 0xb385, 0xd4cd, 0xb3cb, 0x71c3, 0x8243, 0xa307, 0xcc8d, 0xe54b, 0xcc47, 0xdc87, 0xecc6, 0x92c4,
0x9284, 0xc3c4, 0xdc87, 0xab45, 0x8a87, 0xcc8d, 0xed91, 0xd44b, 0xf5d1, 0xc515, 0x8a83, 0xc3c5, 0xc3c5, 0xdc87, 0xed4b, 0xf548,
0x8a84, 0xc407, 0xd447, 0xe54d, 0xc44b, 0x8a43, 0xb345, 0xc3c7, 0xd4cd, 0xf659, 0xbbc7, 0xb385, 0xd489, 0xed8f, 0xff63, 0xf612,
0x92c4, 0xab45, 0xbb85, 0xe5d3, 0xfed9, 0xb3c7, 0xb385, 0xb387, 0x9ac5, 0xa307, 0xbbc7, 0xb3c7, 0xd4cd, 0xdccd, 0xe619, 0xe550,
0xb384, 0xbbc5, 0xc407, 0xe50b, 0xdc89, 0xc3c7, 0xb3c7, 0xab47, 0x7203, 0x8a83, 0x8a85, 0x9ac5, 0xa307, 0xbbc7, 0xcc46, 0xcc06,
0x8a84, 0x9ac4, 0xc3c7, 0xcc49, 0xd447, 0xcc07, 0xbbc7, 0xa305, 0x9ac4, 0xab86, 0xab47, 0xb3c9, 0xbbc6, 0xc3c6, 0xc448, 0xc3c6,
0x5982, 0x7202, 0x92c4, 0x8a82, 0xbbc7, 0xb385, 0x9b05, 0x9284, 0x92c4, 0xc408, 0xab46, 0xa304, 0xb384, 0xb384, 0xa304, 0xab44,
0x5142, 0x71c2, 0x7a44, 0x8242, 0xab44, 0x9ac4, 0x8a84, 0x8a84, 0x8244, 0x8244, 0x8244, 0x7a02, 0x8244, 0x92c4, 0x8a42, 0x5142,
};
static Gfx gfx_kakera_0[] = {
gs_Tani_LoadTextureImage2(hahen_txt, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, 7),
gsSPVertex(&vtx_kakera_0[0], 3, 0),
gsSP1Triangle( 0, 1, 2, 0),
gsSPEndDisplayList()
};
Gfx gfx_kakera[] = {
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA),
// gsSPClearGeometryMode(G_LIGHTING|G_CULL_BACK),
gsSPClearGeometryMode(G_CULL_BACK),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0, 7, 0, 0,0,0, 0,0,0),
gsSPTexture(0xffff,0xffff, 0, 0, G_ON),
gs_Tani_SetUpTileDescrip(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, 0, G_TX_CLAMP|G_TX_NOMIRROR, 4, G_TX_NOLOD, G_TX_CLAMP|G_TX_NOMIRROR, 4, G_TX_NOLOD),
gsSPDisplayList(gfx_kakera_0),
gsSPTexture(0xffff, 0xffff, 0, 0, G_OFF),
gsDPPipeSync(),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
// gsSPSetGeometryMode(G_LIGHTING|G_CULL_BACK),
gsSPSetGeometryMode(G_CULL_BACK),
gsSPEndDisplayList()
};
/*---------------------------------------------------------------------
Vtx Data
---------------------------------------------------------------------*/
static Vtx vtx_sankaku[] = {
{ -10, 0, 10,0,0,0, 0, 127, 0,0 },
{ 10, 0, 10,0,0,0, 0, 127, 0,0 },
{ 0, 0, -10,0,0,0, 0, 127, 0,0 },
};
static Vtx vtx_sankaku2[] = {
{ -10, 10, 0,0,0,0, 255, 255, 0, 255 },
{ 10, 10, 0,0,0,0, 255, 255, 0, 255 },
{ 0, -10, 0,0,0,0, 255, 255, 0, 255 },
};
static Vtx vtx_particl_star0[]={
{0,-8,0,0,0,0,0,0,-127,0},
{-32,80,0,0,0,0,0,0,-127,0},
{32,80,0,0,0,0,0,0,-127,0},
{-52,28,0,0,0,0,0,0,-127,255},
{-116,80,0,0,0,0,0,0,-127,255},
{-84,-52,0,0,0,0,0,0,-127,255},
{52,28,0,0,0,0,0,0,-127,255},
{84,-52,0,0,0,0,0,0,-127,255},
{116,80,0,0,0,0,0,0,-127,255},
{0,160,0,0,0,0,0,0,-127,255},
};
static Vtx vtx_particl_star1[]={
{0,-8,0,0,0,0, 255,255,0,255},
{-32,80,0,0,0,0, 255,255,0,255},
{32,80,0,0,0,0, 255,255,0,255},
{-52,28,0,0,0,0, 255,255,0,255},
{-116,80,0,0,0,0, 255,255,0,255},
{-84,-52,0,0,0,0, 255,255,0,255},
{52,28,0,0,0,0, 255,255,0,255},
{84,-52,0,0,0,0, 255,255,0,255},
{116,80,0,0,0,0, 255,255,0,255},
{0,160,0,0,0,0, 255,255,0,255},
};
/*---------------------------------------------------------------------
particl star
---------------------------------------------------------------------*/
static Gfx gfx_pstar[]={
gsSPClearGeometryMode( G_CULL_BACK ),
gsSPVertex(&vtx_particl_star0[0],10,0),
gsSP1Triangle(0,1,2,0),
gsSP1Triangle(3,4,1,0),
gsSP1Triangle(0,5,3,0),
gsSP1Triangle(6,7,0,0),
gsSP1Triangle(2,8,6,0),
gsSP1Triangle(1,9,2,0),
gsSP1Triangle(0,3,1,0),
gsSP1Triangle(2,6,0,0),
gsSPSetGeometryMode( G_CULL_BACK ),
gsSPEndDisplayList()
};
Gfx gfx_hoshi_0[]={
gsSPLight((&light_sankaku[0].l[0]),1),
gsSPLight((&light_sankaku[0].a),2),
gsSPDisplayList(gfx_pstar),
gsSPEndDisplayList()
};
Gfx gfx_hoshi_1[]={
gsSPLight((&light_sankaku[1].l[0]),1),
gsSPLight((&light_sankaku[1].a),2),
gsSPDisplayList(gfx_pstar),
gsSPEndDisplayList()
};
Gfx gfx_hoshi_2[]={
gsSPLight((&light_sankaku[2].l[0]),1),
gsSPLight((&light_sankaku[2].a),2),
gsSPDisplayList(gfx_pstar),
gsSPEndDisplayList()
};
Gfx gfx_hoshi_3[]={
gsSPLight((&light_sankaku[3].l[0]),1),
gsSPLight((&light_sankaku[3].a),2),
gsSPDisplayList(gfx_pstar),
gsSPEndDisplayList()
};
Gfx gfx_hoshi_4[]={
gsSPClearGeometryMode( G_LIGHTING | G_CULL_BACK ),
gsSPVertex(&vtx_particl_star1[0],10,0),
gsSP1Triangle(0,1,2,0),
gsSP1Triangle(3,4,1,0),
gsSP1Triangle(0,5,3,0),
gsSP1Triangle(6,7,0,0),
gsSP1Triangle(2,8,6,0),
gsSP1Triangle(1,9,2,0),
gsSP1Triangle(0,3,1,0),
gsSP1Triangle(2,6,0,0),
gsSPSetGeometryMode( G_LIGHTING | G_CULL_BACK ),
gsSPEndDisplayList()
};
/*---------------------------------------------------------------------
Gfx Data
---------------------------------------------------------------------*/
Gfx gfx_sankaku_0[] = {
gsSPLight((&light_sankaku[0].l[0]),1),
gsSPLight((&light_sankaku[0].a),2),
gsSPClearGeometryMode( G_CULL_BACK ),
gsSPVertex(&vtx_sankaku[0], 3, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSPSetGeometryMode( G_CULL_BACK ),
gsSPEndDisplayList()
};
Gfx gfx_sankaku_1[] = {
gsSPLight((&light_sankaku[1].l[0]),1),
gsSPLight((&light_sankaku[1].a),2),
gsSPClearGeometryMode( G_CULL_BACK ),
gsSPVertex(&vtx_sankaku[0], 3, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSPSetGeometryMode( G_CULL_BACK ),
gsSPEndDisplayList()
};
Gfx gfx_sankaku_2[] = {
gsSPLight((&light_sankaku[2].l[0]),1),
gsSPLight((&light_sankaku[2].a),2),
gsSPClearGeometryMode( G_CULL_BACK ),
gsSPVertex(&vtx_sankaku[0], 3, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSPSetGeometryMode( G_CULL_BACK ),
gsSPEndDisplayList()
};
Gfx gfx_sankaku_3[] = {
gsSPLight((&light_sankaku[3].l[0]),1),
gsSPLight((&light_sankaku[3].a),2),
gsSPClearGeometryMode( G_CULL_BACK ),
gsSPVertex(&vtx_sankaku[0], 3, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSPSetGeometryMode( G_CULL_BACK ),
gsSPEndDisplayList()
};
Gfx gfx_sankaku_4[] = {
gsSPClearGeometryMode( G_LIGHTING | G_CULL_BACK ),
gsSPVertex(&vtx_sankaku2[0], 3, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSPSetGeometryMode( G_LIGHTING | G_CULL_BACK ),
gsSPEndDisplayList()
};
#endif