/* 
 * 変換日付 Tue May 11 13:51:18 1999
 * 1999/5/11 バージョン
 * パレット有効
 * XXコードの頂点破棄
 * 使用テキスチャ─チェック
 * 頂点カラーを評価しない
 * ビュア─の設定対応
 */
#include <mbi.h>
#include <u64macro.h>

extern unsigned char hi_light_txt[];
static unsigned short room[16];
/* texture = 5 */
static unsigned char light_window[128];

/* ビュア─設定のパレット */
/* ビュア─設定のテキスチャ─ */
/* vretex = 10 */
static Vtx room_lightR_v[] = {
/* 0番目 */ {   0,   78,   22,    0,    0,    0,  255,  255,  255,  255},
/* 1番目 */ { -78,    0,   22,    0,    0,    0,    0,    0,    0,    0},
/* 2番目 */ { -32,    0,   22,    0,    0,    0,    0,    0,    0,    0},
/* 3番目 */ {   0,   32,   22,    0,    0,    0,   66,   66,   66,  152},
/* 4番目 */ { -78,    0,  -22,    0,    0,    0,    0,    0,    0,    0},
/* 5番目 */ {   0,   78,  -22,    0,    0,    0,  255,  255,  255,  255},
/* 6番目 */ { -79,    1,  -24,    0,  983,  512,  255,  255,  255,  255},
/* 7番目 */ { -79,    1,   24,    0,    0,  512,  255,  255,  255,  255},
/* 8番目 */ { -29,    1,   24,    0,    0, -512,  255,  255,  255,  255},
/* 9番目 */ { -29,    1,  -24,    0,  983, -512,  255,  255,  255,  255},

};

static Vtx room_lightL_v[] = {
/* 0番目 */ {   0,   32,   22,    0,    0,    0,   66,   66,   66,  152},
/* 1番目 */ {  32,    0,   22,    0,    0,    0,    0,    0,    0,    0},
/* 2番目 */ {  78,    0,   22,    0,    0,    0,    0,    0,    0,    0},
/* 3番目 */ {   0,   78,   22,    0,    0,    0,  255,  255,  255,  255},
/* 4番目 */ {   0,   78,  -22,    0,    0,    0,  255,  255,  255,  255},
/* 5番目 */ {  78,    0,  -22,    0,    0,    0,    0,    0,    0,    0},
/* 6番目 */ {  29,    1,  -24,    0,  983,  512,  255,  255,  255,  255},
/* 7番目 */ {  29,    1,   24,    0,    0,  512,  255,  255,  255,  255},
/* 8番目 */ {  79,    1,   24,    0,    0, -512,  255,  255,  255,  255},
/* 9番目 */ {  79,    1,  -24,    0,  983, -512,  255,  255,  255,  255},

};

Gfx	light_shine01_mode[]  ={
	gsDPPipeSync(),
	gsSPTexture( 0xffff, 0xffff, 0, 0, G_OFF),
#if 0
	gsDPSetCombineLERP(
		0, 0, 0, PRIMITIVE,
		SHADE, 0, PRIM_LOD_FRAC, 0,
		0, 0, 0, COMBINED,
		0, 0, 0, COMBINED
	),
#elif 0
	gsDPSetCombineLERP(
		0, 0, 0, PRIMITIVE,
		SHADE, 0, PRIMITIVE, 0,
		0, 0, 0, PRIMITIVE,
		0, 0, 0, COMBINED
	),
#else
	gsDPSetCombineLERP(
		0, 0, 0, PRIMITIVE,
		SHADE, 0, PRIMITIVE, 0,
		0, 0, 0, PRIMITIVE,
		SHADE, 0, PRIMITIVE, 0,
	),
#endif
	gsSPEndDisplayList(),
};

Gfx	light_shineL01_vtx[] = {
	gsSPVertex(&room_lightL_v[0],6,0),
	gsSP2Triangles( 0, 1, 2, 0, 0, 2, 3, 0 ),
	gsSP2Triangles( 4, 3, 2, 0, 4, 2, 5, 0 ),
	gsSPEndDisplayList(),
};

Gfx	light_shineR01_vtx[] = {
	gsSPVertex(&room_lightR_v[0],6,0),
	gsSP2Triangles( 0, 1, 2, 0, 0, 2, 3, 0 ),
	gsSP2Triangles( 4, 1, 0, 0, 4, 0, 5, 0 ),
	gsSPEndDisplayList(),
};

Gfx	light_floor01_mode[] = {
	gsDPPipeSync(),
#if 0
	gsSPLoadGeometryMode(G_CULL_BACK | G_FOG | G_SHADE | G_SHADING_SMOOTH | G_ZBUFFER),
	gsSPClearGeometryMode(G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
	/* 各種設定 */
	gsDPSetOtherModeHL(G_PM_NPRIMITIVE |	/* gDPPipelineMode */
			   G_CYC_2CYCLE |	/* gDPSetCycleType */
			   G_TP_PERSP |		/* gDPSetTexturePersp */
			   G_TD_CLAMP |		/* gDPSetTextureDetail */
			   G_TL_TILE |		/* gDPSetTextureLOD */
			   G_TT_NONE |		/* gDPSetTextureLUT */
			   G_TF_BILERP |	/* gDPSetTextureFilter */
			   G_TC_FILT |		/* gDPSetTextureConvert */
			   G_CK_NONE |		/* gDPSetCombineKey */
			   G_CD_DISABLE |	/* gDPSetColorDither */
			   G_AD_DISABLE,	/* gDPSetAlphaDither */
			   G_AC_NONE |		/* gDPSetAlphaCompare */
			   G_ZS_PIXEL |		/* gDPSetDepthSource */
			   G_RM_FOG_SHADE_A |	/* gDPSetRenderMode */
			   G_RM_AA_ZB_XLU_SURF2
	),
	gsSPTexture( 0xffff, 0xffff, 0, 0, G_ON),
	gsDPSetCombineLERP(
		0, 0, 0, PRIMITIVE,
		TEXEL0, 0, PRIM_LOD_FRAC, 0,
		0, 0, 0, COMBINED,
		0, 0, 0, COMBINED
	),
#else
#if 0
	gsSPLoadGeometryMode(G_CULL_BACK | G_SHADE | G_SHADING_SMOOTH | G_ZBUFFER),
	gsSPClearGeometryMode(G_LIGHTING | G_FOG | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
#elif 0
	gsSPLoadGeometryMode(G_CULL_BACK | G_SHADE | G_ZBUFFER),
	gsSPClearGeometryMode(G_LIGHTING | G_FOG | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR | G_SHADING_SMOOTH),
#else
	gsSPLoadGeometryMode(G_CULL_BACK | G_SHADE | G_ZBUFFER),
#endif
#if 0
	/* 各種設定 */
	gsDPSetOtherModeHL(G_PM_NPRIMITIVE |	/* gDPPipelineMode */
			   G_CYC_2CYCLE |	/* gDPSetCycleType */
			   G_TP_PERSP |		/* gDPSetTexturePersp */
			   G_TD_CLAMP |		/* gDPSetTextureDetail */
			   G_TL_TILE |		/* gDPSetTextureLOD */
			   G_TT_NONE |		/* gDPSetTextureLUT */
			   G_TF_BILERP |	/* gDPSetTextureFilter */
			   G_TC_FILT |		/* gDPSetTextureConvert */
			   G_CK_NONE |		/* gDPSetCombineKey */
			   G_CD_BAYER |		/* gDPSetColorDither */
			   G_AD_PATTERN,	/* gDPSetAlphaDither */
			   G_AC_NONE |		/* gDPSetAlphaCompare */
			   G_ZS_PIXEL |		/* gDPSetDepthSource */
			   G_RM_ZB_XLU_SURF |/* gDPSetRenderMode */
			   G_RM_ZB_XLU_SURF2
	),
	gsSPTexture( 0xffff, 0xffff, 0, 0, G_ON),
	gsDPSetCombineLERP(
		0, 0, 0, PRIMITIVE,
		TEXEL0, 0, PRIMITIVE, 0,
		0, 0, 0, PRIMITIVE,
		0, 0, 0, COMBINED
	),
#else
	/* 各種設定 */
	gsDPSetOtherModeHL(G_PM_NPRIMITIVE |	/* gDPPipelineMode */
			   G_CYC_1CYCLE |	/* gDPSetCycleType */
			   G_TP_PERSP |		/* gDPSetTexturePersp */
			   G_TD_CLAMP |		/* gDPSetTextureDetail */
			   G_TL_TILE |		/* gDPSetTextureLOD */
			   G_TT_NONE |		/* gDPSetTextureLUT */
			   G_TF_BILERP |	/* gDPSetTextureFilter */
			   G_TC_FILT |		/* gDPSetTextureConvert */
			   G_CK_NONE |		/* gDPSetCombineKey */
			   G_CD_BAYER |		/* gDPSetColorDither */
			   G_AD_PATTERN,	/* gDPSetAlphaDither */
			   G_AC_NONE |		/* gDPSetAlphaCompare */
			   G_ZS_PIXEL |		/* gDPSetDepthSource */
			   G_RM_ZB_CLD_SURF |/* gDPSetRenderMode */
			   G_RM_ZB_CLD_SURF2
	),
	gsSPTexture( 0xffff, 0xffff, 0, 0, G_ON),
	gsDPSetCombineLERP(
		0, 0, 0, PRIMITIVE,
		TEXEL0, 0, PRIMITIVE, 0,
		0, 0, 0, PRIMITIVE,
		TEXEL0, 0, PRIMITIVE, 0,
	),
#endif
#endif
/* repeat = (1,1)  mirror = (1,1) clamp = (0,0) */
	gsDPLoadTextureBlock_4b(
			light_window,
			G_IM_FMT_I,
			16, 16, 15,
			G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP,
			4, 4, 0, 0),
	gsSPEndDisplayList(),
};

Gfx	light_floorL01_vtx[] = {
	gsSPVertex(&room_lightL_v[6],4,0),
	gsSP2Triangles( 0, 1, 2, 0, 0, 2, 3, 0 ),
	gsSPEndDisplayList(),
};

Gfx	light_floorR01_vtx[] = {
	gsSPVertex(&room_lightR_v[6],4,0),
	gsSP2Triangles( 0, 1, 2, 0, 0, 2, 3, 0 ),
	gsSPEndDisplayList(),
};

static unsigned char light_window[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,
0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,
0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,
0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,
0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,
0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,
0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,
0x09,0x99,0x99,0x99,0x99,0x99,0x99,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
}; /* light_window */


