#ifndef _HSCORE_H #define _HSCORE_H #ifdef YAROZE #include #include #else #include #include #include #include #include #include #include #include #endif #include #include #include #include #include #include "bouncer.h" #define HIGHSCORE_NAME_SIZE 10 #define HIGHSCORE_TABLE_SIZE 10 #define MAX_SCORE 20000 #define MAX_LEVEL 30 #define ENTER_NAME_CHARACTER_LIST_X 100 #define ENTER_NAME_CHARACTER_LIST_Y 200 #define MAX_CHARACTER_SELECTION 11 #define CURSOR_HEIGHT 13 #define CURSOR_WIDTH 12 #define LEFT_CURSOR -1 #define RIGHT_CURSOR MAX_CHARACTER_SELECTION #define MAX_CPAGES 5 enum { SC_LEFT, SC_RIGHT, SC_SELECT, SC_DELETE, SC_ENTER_NAME, SC_ALL_OFF, SC_LEFT_CURSOR, SC_RIGHT_CURSOR }; enum { EN_WAITING=-1, EN_MOVE_ON_CHARACTER, EN_BOUNCE_CHARACTER, EN_BOUNCE_LEFT_CURSOR, EN_BOUNCE_RIGHT_CURSOR, EN_MOVE_ON_CURSOR, EN_STOP_LEFT_CURSOR, EN_STOP_RIGHT_CURSOR, EN_FADE_TO_BLACK, EN_DELETE_CHARACTER, EN_MOVE_OFF_CHARACTER }; enum { NEXT_TEXTURE_U, NEXT_TEXTURE_V, TIMER, CURSOR_XPOS }; enum { HIGHSCORE_TEXT_BRIGHTNESS, HIGHSCORE_MIN_BRIGHTNESS, HIGHSCORE_MAX_BRIGHTNESS }; typedef struct { u_byte name[HIGHSCORE_NAME_SIZE+1]; u_long score; u_word level; u_byte flag; }HIGHSCORE; typedef struct { OBJECT_LIST_HEADER *list; OBJECT *selection_chars[MAX_CHARACTER_SELECTION]; OBJECT *arrows[2]; OBJECT *oname[HIGHSCORE_NAME_SIZE]; DVECTOR dpos; u_long score; word level; u_byte name[HIGHSCORE_NAME_SIZE+1]; byte cursor_pos; byte cpage; byte name_pos; u_byte has_highscore; u_byte finished; u_byte set_pos; }ENTER_NAME; void InitHighScoreTable(void); void SortHighScoreTable(HIGHSCORE *); OBJECT_STRING *CreateHighScoreTableObjects(HIGHSCORE *,RECT *); void ClearHighScoreTable(OBJECT_LIST_HEADER *); void DisplayHighScoreTable(GsOT *,u_word); void CreateHighScoreTable(void); void HandleHighScoreString(OBJECT *); void KillHighScoreTable(void); void HandleHighScoreExplosionFragment(OBJECT *); u_byte CheckScore(u_long); void InitEnterName(OBJECT_LIST_HEADER *,ENTER_NAME *); void HandleEnterNameObject(OBJECT *); void SelectCharacter(ENTER_NAME *,byte); u_byte ChangedCPage(ENTER_NAME *); u_byte FinishedFading(ENTER_NAME *); void InsertHighScore(HIGHSCORE *,u_char *,u_long,u_word); void SetPositionIndicator(u_byte); #endif