This commit is contained in:
parent
db80847a5d
commit
1231e2e3fd
@ -9,6 +9,7 @@
|
|||||||
#include "gfx\sprbank.h"
|
#include "gfx\sprbank.h"
|
||||||
#include <sprites.h>
|
#include <sprites.h>
|
||||||
#include "level\level.h"
|
#include "level\level.h"
|
||||||
|
#include "level\layertile3d.h"
|
||||||
|
|
||||||
#include "FX\FXfallingTile.h"
|
#include "FX\FXfallingTile.h"
|
||||||
|
|
||||||
@ -74,21 +75,23 @@ VECTOR ThisRenderPos;
|
|||||||
ThisRenderPos.vx=PXOfs+RenderPos.vx;
|
ThisRenderPos.vx=PXOfs+RenderPos.vx;
|
||||||
ThisRenderPos.vy=PYOfs+RenderPos.vy;
|
ThisRenderPos.vy=PYOfs+RenderPos.vy;
|
||||||
|
|
||||||
gte_SetRotMatrix(&Mtx);
|
u16 TileIdx=Tile>>2;
|
||||||
|
u16 Flip=Tile&3;
|
||||||
|
sFlipTable *FTab=&FlipTable[Flip];
|
||||||
|
sElem3d *Elem=&ElemBank3d[TileIdx];
|
||||||
|
int TriCount=Elem->TriCount;
|
||||||
|
sTri *TList=&TriList[Elem->TriStart];
|
||||||
|
|
||||||
CMX_SetTransMtxXY(&ThisRenderPos);
|
CMX_SetTransMtxXY(&ThisRenderPos);
|
||||||
|
CMX_SetRotMatrixXY(&FTab->Mtx);
|
||||||
sElem3d *ThisTile=&ElemBank3d[Tile];
|
|
||||||
int TriCount=ThisTile->TriCount;
|
|
||||||
sTri *TList=&TriList[ThisTile->TriStart];
|
|
||||||
|
|
||||||
while (TriCount--)
|
while (TriCount--)
|
||||||
{
|
{
|
||||||
P0=&VtxList[TList->P0]; P1=&VtxList[TList->P1]; P2=&VtxList[TList->P2];
|
P0=&VtxList[TList->P0]; P1=&VtxList[TList->P1]; P2=&VtxList[TList->P2];
|
||||||
gte_ldv3(P0,P1,P2);
|
gte_ldv3(P0,P1,P2);
|
||||||
setlen(TPrimPtr, GPU_PolyFT3Tag);
|
setlen(TPrimPtr, GPU_PolyFT3Tag);
|
||||||
TPrimPtr->code=TList->PolyCode;
|
TPrimPtr->code=TList->PolyCode;
|
||||||
setRGB0(TPrimPtr,128,128,128);
|
|
||||||
gte_rtpt_b();
|
gte_rtpt_b();
|
||||||
|
setShadeTex(TPrimPtr,1);
|
||||||
|
|
||||||
T0=*(u32*)&TList->uv0; // Get UV0 & TPage
|
T0=*(u32*)&TList->uv0; // Get UV0 & TPage
|
||||||
T1=*(u32*)&TList->uv1; // Get UV1 & Clut
|
T1=*(u32*)&TList->uv1; // Get UV1 & Clut
|
||||||
@ -97,12 +100,13 @@ VECTOR ThisRenderPos;
|
|||||||
*(u32*)&TPrimPtr->u1=T1; // Set UV1
|
*(u32*)&TPrimPtr->u1=T1; // Set UV1
|
||||||
*(u16*)&TPrimPtr->u2=T2; // Set UV2
|
*(u16*)&TPrimPtr->u2=T2; // Set UV2
|
||||||
|
|
||||||
ThisOT=OtPtr;
|
ThisOT=OtPtr+TList->OTOfs;
|
||||||
TList++;
|
TList++;
|
||||||
gte_nclip_b();
|
gte_nclip_b();
|
||||||
gte_stsxy3_ft3(TPrimPtr);
|
gte_stsxy3_ft3(TPrimPtr);
|
||||||
gte_stopz(&ClipZ);
|
gte_stopz(&ClipZ);
|
||||||
if (ClipZ<=0)
|
ClipZ^=FTab->ClipCode;
|
||||||
|
if (ClipZ<0)
|
||||||
{
|
{
|
||||||
addPrim(ThisOT,TPrimPtr);
|
addPrim(ThisOT,TPrimPtr);
|
||||||
TPrimPtr++;
|
TPrimPtr++;
|
||||||
|
@ -111,20 +111,6 @@ void CLayerTile3d::think(DVECTOR &MapPos)
|
|||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
#define CMX_SetRotMatrixXY( r0 ) __asm__ ( \
|
|
||||||
"lw $12, 0( %0 );" \
|
|
||||||
"lw $13, 4( %0 );" \
|
|
||||||
"ctc2 $12, $0;" \
|
|
||||||
"ctc2 $13, $2;" \
|
|
||||||
: \
|
|
||||||
: "r"( r0 ) \
|
|
||||||
: "$12", "$13")
|
|
||||||
|
|
||||||
struct sFlipTable
|
|
||||||
{
|
|
||||||
s16 Mtx[4];
|
|
||||||
s32 ClipCode;
|
|
||||||
};
|
|
||||||
|
|
||||||
sFlipTable FlipTable[4]=
|
sFlipTable FlipTable[4]=
|
||||||
{
|
{
|
||||||
@ -165,10 +151,10 @@ VECTOR BlkPos;
|
|||||||
sTri *TList=&TriList[Elem->TriStart];
|
sTri *TList=&TriList[Elem->TriStart];
|
||||||
|
|
||||||
P0=&VtxList[TList->P0]; P1=&VtxList[TList->P1]; P2=&VtxList[TList->P2];
|
P0=&VtxList[TList->P0]; P1=&VtxList[TList->P1]; P2=&VtxList[TList->P2];
|
||||||
|
CMX_SetTransMtxXY(&BlkPos);
|
||||||
|
CMX_SetRotMatrixXY(&FTab->Mtx);
|
||||||
while (TriCount--) // Blank tiles rejected here (as no tri-count)
|
while (TriCount--) // Blank tiles rejected here (as no tri-count)
|
||||||
{
|
{
|
||||||
CMX_SetTransMtxXY(&BlkPos);
|
|
||||||
CMX_SetRotMatrixXY(&FTab->Mtx);
|
|
||||||
gte_ldv3(P0,P1,P2);
|
gte_ldv3(P0,P1,P2);
|
||||||
setlen(TPrimPtr, GPU_PolyFT3Tag);
|
setlen(TPrimPtr, GPU_PolyFT3Tag);
|
||||||
TPrimPtr->code=TList->PolyCode;
|
TPrimPtr->code=TList->PolyCode;
|
||||||
|
@ -6,6 +6,22 @@
|
|||||||
#define __LAYER_TILE_3D_Hx__
|
#define __LAYER_TILE_3D_Hx__
|
||||||
|
|
||||||
|
|
||||||
|
#define CMX_SetRotMatrixXY( r0 ) __asm__ ( \
|
||||||
|
"lw $12, 0( %0 );" \
|
||||||
|
"lw $13, 4( %0 );" \
|
||||||
|
"ctc2 $12, $0;" \
|
||||||
|
"ctc2 $13, $2;" \
|
||||||
|
: \
|
||||||
|
: "r"( r0 ) \
|
||||||
|
: "$12", "$13")
|
||||||
|
|
||||||
|
struct sFlipTable
|
||||||
|
{
|
||||||
|
s16 Mtx[4];
|
||||||
|
s32 ClipCode;
|
||||||
|
};
|
||||||
|
extern sFlipTable FlipTable[];
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
class FontBank;
|
class FontBank;
|
||||||
class CLayerTile3d : public CLayerTile
|
class CLayerTile3d : public CLayerTile
|
||||||
|
Loading…
Reference in New Issue
Block a user