This is a sub-page of Uchi ni Pochi ga Yattekita in my pocket.
0x90A00#
変更
1998.08.17 〃 椛澤 幸弘
未使用の変数を削除
各if文の変数の型を整合
1998.08.22 〃 椛澤 幸弘
注釈文追加
1998.08.24 〃 椛澤 幸弘
アタリ判定修正
1998.08.26 〃 椛澤 幸弘
Ver. 4.3に対応
輝度変更関数の引き数を修正
*******************************************************************/
#if 0
==================================================================
【備考】
・アニメーションの繰り返し表示方法
初期の設定は最終フレームを表示した後はそのまま停止します。
最初から表示するにはframeメンバを0に設定しますが、
アニメーションの最終フレームであるかを調べなければなりま
せん。例を参照してください。
(別に調べなくてもframeメンバを0に設定すると最初のフレーム
から表示し直しますので問題ありません。ただ途中のフレームから
最初に戻りますが・・・)
main(){
unsigned long ot[2][256];
MAGIC magic;
:
:
:
:
/* main loop */
for(;;){
:
:
: /* 何らかの処理 */
:
if(magic.state==-1){ /* state=-1とは最終フレームまで表示したことを意味する */
magic.frame=0; /* フレームの初期化 */
};
magic_draw2(ot[index],&magic); /* 描画 */
};
};
==================================================================
#endif
#include <sys\types.h>
#include <libetc.h>
#include <libgte.h>
#include <libgpu.h>
#include <libgs.h>
#include <libmath.h>
#ifdef VER43
#include <libhmd.h>
#endif
#include "k_main.h"
#include "k_file.h"
#include "k_magic.h"
0x91200#
XY;
/*------------------------------------------------------------------
諸関数宣言
------------------------------------------------------------------*/
void magic_clear(void);
void magic_load_tim(int no,MAGIC *);
void magic_load_clt(MAGIC *);
void magic_pat_draw2(unsigned long *,MAGIC *,K_MP_Header *,unsigned long);
int magic_draw2(unsigned long *,MAGIC *);
void magic_set_tone_obj(MAGIC *,short,short obj,unsigned long);
void magic_set_tone_pat(MAGIC *,short,unsigned char);
void magic_set_tone_ani(MAGIC *,short,unsigned char);
void magic_tone_pat_init(MAGIC *,int);
void magic_tone_obj(MAGIC *,int,unsigned long,unsigned char);
void magic_tone_pat(MAGIC *,int,unsigned char);
void magic_tone_ani(MAGIC *,int,unsigned char);
int magic_get_pattern(MAGIC *,int,K_PatData **);
int magic_get_object(MAGIC *,int i,int j,K_ObjData **);
int magic_cross_pattern(MAGIC *,int,MAGIC *,int);
int magic_cross_rect(RECT,RECT);
void magic_chg_ani(MAGIC *,int);
/*------------------------------------------------------------------
変数宣言
------------------------------------------------------------------*/
#if USE_SPRITE
GsSPRITE KMgPolyFT4[2][256];
#else
POLY_FT4 KMgPolyFT4[2][256];
#endif
int KMgIndexPoly=0;
unsigned long Z;
MATRIX M;
GsCOORDUNIT Coord;
/*------------------------------------------------------------------
初期化
【入力】
なし
【出力】
なし
【備考】
なし
------------------------------------------------------------------*/
void magic_
0xA0200#
=================================================*/
//===================================================================
// Type define
/*===================================================================
変数の型の定義
バージョン及び仕向け地の管理 ------------------------------------*/
#define CD_MAIN 0 /* デバッグシステム 0
CDシステム 1
擬似システム 2(オプティマイズ2) */
/*------------------------------------------------------------------*/
typedef unsigned char Uchar;
typedef unsigned short Ushort;
typedef unsigned long Ulong;
typedef unsigned int Uint;
typedef signed char Schar;
typedef signed short Sshort;
typedef signed long Slong;
typedef signed int Sint;
typedef volatile char Vchar;
typedef volatile short Vshort;
typedef volatile long Vlong;
typedef volatile int Vint;
typedef volatile unsigned char VUchar;
typedef volatile unsigned short VUshort;
typedef volatile unsigned long VUlong;
typedef volatile unsigned int VUint;
typedef volatile signed char VSchar;
typedef volatile signed short VSshort;
typedef volatile signed long VSlong;
typedef volatile signed int VSint;
/* PS-Xシステムに必要なインクルードファイル */
#include <libetc.h>
#include <libgte.h>
#include <libgpu.h>
#include <libgs.h>
#include <libspu.h>
#include "ac_plyr.h"
#include "bg_w.h"
#include "obj_w.h"
#include "result.h"
#include "acio.h"
// ROM内関数をオリジナル関数に
//(ROM内関数は処理が重いため)
#define labs(l) h_labs(l)
0xA0A00#
strcat(dest, src) h_strcat(dest, src)
#define strncat(dest, src, n) h_strncat(dest, src, n)
// ディザ処理 on/off
#define DTD 1 // ディザ処理 on
// 画面解像度
#define X_RES 320 // X方向
#define Y_RES 240 // Y方向
// クリップサイズ
#define CLIP_SIZE1 40
#define CLIP_SIZE2 48
#define CLIP_SIZE CLIP_SIZE1
// PS-XはLITTLE ENDIANESS。
#define UPPER 1
#define LOWER 0
// 標準ラベル定義
#define ERR 0
#define OK 1
#define FALSE 0
#define TRUE 1
#define ON 1
#define OFF 0
#define YES 0
#define NO 1
#define DUMMY 0
#define JOYA 1
#define JOYB 0
#define NULL_PNT (void *)0x00000
// パッドボタン定義
#define PADLup (1<<12)
#define PADLdown (1<<14)
#define PADLleft (1<<15)
#define PADLright (1<<13)
#define PADRup (1<< 4)
#define PADRdown (1<< 6)
#define PADRleft (1<< 7)
#define PADRright (1<< 5)
#define PADi (1<< 9)
#define PADj (1<<10)
#define PADk (1<< 8)
#define PADl (1<< 3)
#define PADm (1<< 1)
#define PADn (1<< 2)
#define PADo (1<< 0)
#define PADh (1<<11)
#define PADL1 PADn
#define PADL2 PADo
#define PADR1 PADl
#define PADR2 PADm
#define PADstart PADh
#define PADselect PADk
#define PADLEFT (PADLleft | PADL1 | PADL2) // 左方向
#define PADRIGHT (PADLright | PADR1 | PADR2) // 右方向
#define PADNEXT (PADRright | PADstart | PADRdown) // 次へ
#define PADSELECT (PADLleft | PADLright | PADLup | PADLdown | PADL1 | PADL2 | PAD
0xCDE00#
ータアドレス */
COL_BACK_ADR, /* パレットデータアドレス */
0, /* ファイルサイズ */
704, 0, /* テクスチャの転送先座標 */
320, 120, /* テクスチャのサイズ */
0, 497, /* パレットの転送先座標 */
0, /* 初期パレット番号 */
1, /* 8bit CLUT */
0 /* 半透明レート */
};
static BG_DATA_T bg_COL_G_BG_BG =
/* コーラレースのゴール後の背景(#031) */
{
COL_G_BG_ADR, /* テクスチャデータアドレス */
COL_G_BG_ADR, /* パレットデータアドレス */
0, /* ファイルサ
0xCE200#
1, /* パレットの転送先座標 */
0, /* 初期パレット番号 */
1, /* 8bit CLUT */
0 /* 半透明レート */
};
/*-------------------------------------------------------------------*/
/* ミニゲーム呼び出し */
/*-------------------------------------------------------------------*/
char cola_main(void)
{
switch( g_status )
{
case 0:
return cola_init();
case 1:
return cola_main2();
case 2:
return cola_result();
default:
return -1;
}
}
/*-------------------------------------------------------------------*/
/* ミニゲーム初期化 */
/*-------------------------------------------------------------------*/
short cola_init(void)
{
gam_w;
register SCORE_T *sc = &result_score;
set_cmdtbl(); //19980605sgy コマンドテーブルをセット
/* ------------ ゲーム用キャラクターをロード -------- */
obj_load2(&obj_FIRE_NO); /* コーラ缶の炎 */
obj_load2(&obj_FIRE_NOd1); /* コーラ缶の炎 分割追加分 */
obj_load2(&obj_CAN_NO); /* コーラ缶 */
obj_load2(&obj_PISTON_NO); /* コーラ車のピストン */
obj_load2(&obj_TIRE_NO); /* コーラ車のタイヤ */
obj_load2(&obj_CAR_NO); /* コーラ車本体 */
obj_load2(&obj_SHADOW_NO); /* コーラ車の影 */
obj_load2(&obj_CAR2_NO); /* コーラ車の2Pカラー */
obj_load2(&obj_SIGNAL_NO); /* 信号のベース */
obj_load2(&obj_LAMP_NO); /* 信号のランプ */
obj_load2(&obj_GOAL_NO); /* ゴールの缶 */
obj_load2(&obj_KMH_OBJ); /* km/h */
bg_load2(&bg_COLA_BACK_BG); /* コーラ競技場 */
bg_load2(&bg_
0xE0200#
er[3];
Sshort score_counter[3];
Sshort ox[3];
Sshort ox_timer[3]; /* 52bytes */
Sshort effect_step[3][10]; /*80*/
Sshort effect_timer[3][10]; /*80*/
Slong effect_x[3][10]; /*160*/
Slong effect_y[3][10]; /*160*/
Slong effect_xx[3][10]; /*160*/
Slong effect_yy[3][10]; /*160*/
Sshort gameover_step[3];
Sshort gameover_timer[3];
Slong gameover_x[3];
Slong gameover_y[3];
Slong gameover_xx[3];
Slong gameover_x_aim[3]; /*40*/
Sshort zoom; /* 現在のズーム値 */
Sshort zoom_tmp;
Sshort win_x;
Sshort win_y;
Sshort win_z;
Sshort win_r;
Sshort win_step;
Sshort win_timer; /* 16 */
Sshort cont_sd_flag[3]; /*4*/ /* コンテぃニュー、途中参加音フラグ */
} RESULT_T;
typedef struct {
Sshort type; /* 結果発表の種類 */
Sshort qualify; /* ゲームクリア条件 */
Sshort time_limit; /* 制限時間 */
Sshort be[3]; /* ゲーム参加判定 */
/* 0=Yes 1=No */
Sshort hit[3]; /* 得点 */
Sshort miss[3]; /* 減点 */
Sshort score[3]; /* スコア(クリア条件と無関係) */
Sshort time[3]; /* クリアタイム(1/60単位) */
Sshort clear[3]; /* クリアフラグ */
Sshort res[3]; /* 予備 */
} SCORE_T;
#define SCORE_TIME 0
#define SCORE_ONLY 1
#define TIME_ONLY 2
#define VS_ONLY 3
#endif
x0, short y0, Ushort clut, short u0, short v0,
short w, short h, Ushort tpage, Ushort pri, short otn);