puzzle.h
1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
* NINTENDO64 SAMPLE PROGRAM
*
* FILE : puzzle.h
*
* Copyright (C) 1997, NINTENDO Co,Ltd.
*/
#define RANDOM_COUNT 200 /* パズルランダマイズ回数 */
#define JINGLE_COUNT 360 /* 完成画面反転表示フレーム数 */
#define JINGLE_DELTA 30 /* 画面反転間隔 */
/* パズル構造体 */
typedef struct {
u8 complete_flag; /* パズル完成フラグ */
u16 move_counter; /* タイル移動用カウンタ */
u16 celebrate_counter; /* 完成カウンタ */
u8 blank_tile_id; /* ダミータイルの位置 */
s8 movable_tile_id[4]; /* 移動可能なタイルの位置 */
s8 current_tile_id; /* カーソルの指しているタイル位置 */
u16 *checkbox_x;
u16 *checkbox_y;
} PUZZLE_STATE;
/* パズル構造体の初期化 */
void puzzleInit(PUZZLE_STATE *);
/* パズル構造体の更新 */
void puzzleUpdate(PUZZLE_STATE *, CURSOR_STATE *, TILE_STATE *, u8);
/* パズルのランダム化 */
void puzzleRandom(PUZZLE_STATE *, TILE_STATE *);
/* カーソル位置のチェック */
void puzzleCheck(PUZZLE_STATE *, CURSOR_STATE *, TILE_STATE *);