133 lines
3.3 KiB
C
133 lines
3.3 KiB
C
/********************************************************************************
|
|
Ultra 64 MARIO Brothers
|
|
|
|
Header file of wave.c.
|
|
|
|
Copyright 1995 Nintendo co., ltd. All rights reserved
|
|
|
|
This module was programmed by Y.Tanimoto
|
|
|
|
Mar 1, 1996
|
|
*********************************************************************************/
|
|
|
|
#ifndef _WAVE_HEAD
|
|
#define _WAVE_HEAD
|
|
|
|
#define WAVE_ST_MV_ST 10 // static --> move --> static type wave.
|
|
#define WAVE_MV_MV_MV 20 // move --> move --> move type wave.
|
|
|
|
#define WAVE_XO_LMR 30
|
|
#define WAVE_XO_CMP 40
|
|
#define WAVE_XO_CST 50
|
|
|
|
#define WAVE_YO_MHT 60
|
|
#define WAVE_YO_CMP 70
|
|
#define WAVE_YO_CST 80
|
|
|
|
#define WAVE_T_CLEAR 100
|
|
#define WAVE_T_NOTCLEAR 200
|
|
|
|
#define WAVE_NRMMAP 0
|
|
#define WAVE_ENVMAP 1
|
|
|
|
#define WAVE_OFF 0
|
|
#define WAVE_SMALL 1
|
|
#define WAVE_BIG 2
|
|
|
|
#define WAVE_IN_LEFT 0x20 // 00 100 000
|
|
#define WAVE_IN_MIDDLE 0x10 // 00 010 000
|
|
#define WAVE_IN_RIGHT 0x08 // 00 001 000
|
|
|
|
#define WAVE_OUT_LEFT 0x04 // 00 000 100
|
|
#define WAVE_OUT_MIDDLE 0x02 // 00 000 010
|
|
#define WAVE_OUT_RIGHT 0x01 // 00 000 001
|
|
|
|
#define WAVE_AMB_R 80
|
|
#define WAVE_AMB_G 80
|
|
#define WAVE_AMB_B 80
|
|
|
|
#define WAVE_LIGHT_X 50
|
|
#define WAVE_LIGHT_Y 50
|
|
#define WAVE_LIGHT_Z 50
|
|
|
|
|
|
/* ============================================================================================
|
|
: Prototype function.
|
|
=============================================================================================== */
|
|
extern ulong WaveMove(int code, MapNode *node, void *data);
|
|
extern ulong WaveInit(int code, MapNode *node, void *data);
|
|
|
|
|
|
/* ============================================================================================
|
|
: Extern variables.
|
|
=============================================================================================== */
|
|
extern short wave_vp_all[];
|
|
extern short wave_pp_all[];
|
|
|
|
|
|
/* ============================================================================================
|
|
: Define structures used only in wave routines.
|
|
=============================================================================================== */
|
|
typedef struct {
|
|
short x ;
|
|
short y ;
|
|
short z ;
|
|
char nx ;
|
|
char ny ;
|
|
char nz ;
|
|
} WavePointData ; // 13[bytes]
|
|
|
|
typedef struct {
|
|
float nx ;
|
|
float ny ;
|
|
float nz ;
|
|
} WavePolyNormal ; // 12[bytes]
|
|
|
|
typedef struct {
|
|
short checkCode ;
|
|
char ndatas ;
|
|
char envMap ; // 0 --> normal mapping. 1 --> environment mapping.
|
|
char bitSWbef ;
|
|
char bitSWnow ;
|
|
char bitSWtrig ;
|
|
char waveSW ;
|
|
float rotateX ;
|
|
float rotateY ;
|
|
float transX ;
|
|
float transY ;
|
|
float transZ ;
|
|
float waveA ;
|
|
float waveAs ;
|
|
float waveAb ;
|
|
float waveK ;
|
|
float waveKs ;
|
|
float waveKb ;
|
|
float waveF ;
|
|
float waveFs ;
|
|
float waveFb ;
|
|
float waveV ;
|
|
float waveVs ;
|
|
float waveVb ;
|
|
float waveT ;
|
|
float waveXo ;
|
|
float waveYo ;
|
|
Gfx* steady ;
|
|
short** hexaXX_iRptr ;
|
|
ushort** image ;
|
|
short iwidth ;
|
|
short iheight ;
|
|
Gfx* tile_set ;
|
|
char w_type ; // See above.
|
|
uchar alpha ; // 255 --> RM_SURF. others --> RM_XSURF.
|
|
char bitSW_Mh_bef ;
|
|
char bitSW_Mh_now ;
|
|
char bitSW_Mh_trg ;
|
|
float one_side ; // Original size = 614.0.
|
|
} WaveData ; // [ 121 bytes. ]
|
|
|
|
extern WaveData* wavePtr ;
|
|
extern char wave_dummy_backup ;
|
|
|
|
|
|
#endif
|