Files
commandergenius/project/jni/application/lbreakout2/client/chart.h

99 lines
3.8 KiB
C

/***************************************************************************
chart.h - description
-------------------
begin : Mon Sep 24 2001
copyright : (C) 2001 by Michael Speck
email : kulkanie@gmx.net
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
/*
====================================================================
Highscore chart entry
====================================================================
*/
typedef struct {
char name[32];
int level;
int score;
int new_entry; /* newly entered the highscore */
} Chart_Entry;
/*
====================================================================
Levelset highscore chart.
====================================================================
*/
enum { CHART_ENTRY_COUNT = 10 };
typedef struct {
Chart_Entry entries[CHART_ENTRY_COUNT + 1]; /* last entry is space holder for new entry */
char *name;
} Set_Chart;
/*
====================================================================
Load highscore. If it doesn't exist try to create it in HI_DIR if
this fails fall back to ~/.lbreakout and create highscore there.
====================================================================
*/
void chart_load();
/*
====================================================================
Delete resources
====================================================================
*/
void chart_delete();
/*
====================================================================
Save chart in directory it was loaded from.
====================================================================
*/
void chart_save();
/*
====================================================================
Check if this player entered the highscore chart and update it.
====================================================================
*/
void chart_add( Set_Chart *chart, char *name, int level, int score );
/*
====================================================================
Sort chart with stable algorithm (bubble sort's ok) by wanted
value.
====================================================================
*/
enum { SORT_BY_LEVEL = 0, SORT_BY_SCORE };
void chart_sort( Set_Chart *chart, int type );
/*
====================================================================
Draw highscores centered in regio x,y,w,h
====================================================================
*/
void chart_show( Set_Chart *chart, int x, int y, int w, int h );
/*
====================================================================
Clear all new_entry flags (done before new players are added
to chart when game over).
====================================================================
*/
void chart_clear_new_entries();
/*
====================================================================
Query set chart by this name or if not found create a new one
by this name.
====================================================================
*/
Set_Chart* chart_set_query( char *name );
/*
====================================================================
Query chart by id. If id is invalid return 0.
====================================================================
*/
Set_Chart* chart_set_query_id( int id );