Virtuelle Zockhalle 0.05 beta
|
Elemente eines Spielautomaten. Mehr ...
gehe zum Quellcode dieser Datei
Datenstrukturen | |
struct | variable_bitmap |
Variable Bitmap. Mehr ... | |
struct | counter |
Zählwerk. Mehr ... | |
struct | reel |
Walze. Mehr ... | |
struct | invisible_persistent |
Unsichtbarer persistenter Integer. Mehr ... | |
struct | stat_bigwin |
Ein registrierter Großgewinn. Mehr ... | |
struct | stat_part |
Teilstatistik. Mehr ... | |
struct | machine_stat |
Vollständige Statistik eines Spielgerätes. Mehr ... | |
struct | simstrat |
Simulationsstrategie. Mehr ... | |
struct | machine |
Spielgerät. Mehr ... | |
struct | sample_loop |
Gelooptes Sample. Mehr ... | |
Makrodefinitionen | |
#define | BIGWIN_BUFSZ (40) |
Größe des Buffers eines Beschreibungstextes. | |
#define | BIGWIN_STORE (40) |
Anzahl der geseicheicherten Großgewinne. | |
Hilfsmakros für das Blitten mit Offset. | |
Alle diese Makros sorgen für die Anpassung an | |
#define | m_saverect(BM, X, Y) drect_saverect ((BM), (X) + XOF, (Y) + YOF) |
Rechteck in Bitmap sichern. | |
#define | m_blitfull(BM, X, Y) drect_blitfull ((BM), (X) + XOF, (Y) + YOF) |
Bitmap vollständig blitten. | |
#define | m_blit(BM, SX, SY, DX, DY, W, H) drect_blit ((BM), (SX), (SY), (DX) + XOF, (DY) + YOF, (W), (H)) |
Blitten. | |
#define | m_sprite(BM, X, Y) drect_sprite ((BM), (X) + XOF, (Y) + YOF) |
Sprite blitten. | |
#define | m_stretch_sprite(BM, X, Y, W, H) drect_sprite ((BM), (X) + XOF, (Y) + YOF, (W), (H)) |
Sprite verzerrt blitten. | |
#define | m_rle_sprite(RLE, X, Y) drect_rle_sprite ((RLE), (X) + XOF, (Y) + YOF) |
RLE-Sprite blitten. | |
#define | m_trans_rle_sprite(RLE, X, Y) drect_trans_rle_sprite ((RLE), (X) + XOF, (Y) + YOF) |
Transparentes RLE-Sprite blitten. | |
#define | m_text(FNT, STR, X, Y, FG, BG) drect_text ((FNT), (STR), (X) + XOF, (Y) + YOF, FG, BG) |
Linksbündige Textausgabe. | |
#define | m_ctext(FNT, STR, X, Y, FG, BG) drect_ctext ((FNT), (STR), (X) + XOF, (Y) + YOF, FG, BG) |
Zentrierte Textausgabe. | |
#define | m_rtext(FNT, STR, X, Y, FG, BG) drect_rtext ((FNT), (STR), (X) + XOF, (Y) + YOF, FG, BG) |
Rechtsbündige Textausgabe. | |
#define | m_drawbox(X, Y, W, H, C) drect_drawbox ((X) + XOF, (Y) + YOF, W, H, C) |
Rechteckiger Rahmen. | |
#define | m_fillbox(X, Y, W, H, C) drect_fillbox ((X) + XOF, (Y) + YOF, W, H, C) |
Ausgefüllte rechteckige Box. | |
Typdefinitionen | |
typedef struct variable_bitmap * | vbitmap_t |
Variable Bitmap. | |
typedef struct machine * | machine_t |
Zeiger auf ein Spielgerät. | |
Callbacktypen für die Programmsteuerung | |
typedef void(* | prg_p0cb_t )(void) |
Callbackfunktion für das Programm. | |
typedef void(* | prg_p1cb_t )(void *p1) |
Callbackfunktion für das Programm mit einem Parameter. | |
typedef void(* | prg_p2cb_t )(void *p1, void *p2) |
Callbackfunktion für das Programm mit zwei Parametern. | |
typedef void(* | prg_picb_t )(void *ptr, int i) |
Callbackfunktion für das Programm mit Pointer und Integer. | |
Aufzählungen | |
enum | { REELF_WEIGHTED = (1UL << 0), REELF_OWNRAND = (1UL << 1), REELF_INITED = (1UL << 7), REELF_IMPL = (1UL << 8), REELF_USER = (1UL << 16) } |
Flags für eine Walze. Mehr ... | |
enum | { REEL_STOPPED = 0, REEL_STARTING = 1, REEL_RUNNING = 2, REEL_STOPPING = 3, REEL_HOLDED = 4, REEL_SPECIAL = 5, REEL_IMPL = 16, REEL_USER = 256 } |
Walzenzustände. Mehr ... | |
enum | { MFL_PLAYABLE = (1UL << 0), MFL_DEBUG = (1UL << 1), MFL_WANTPAYOUT = (1UL << 2), MFL_WANTQUIT = (1UL << 3), MFL_DONE = (1UL << 4), MFL_SIMULATED = (1UL << 5), MFL_CHEATED = (1UL << 6), MFL_FILEMISS = (1UL << 7), MFL_INITCHECK = (1UL << 8), MFL_USER = (1UL << 12) } |
Flags eines Spielgerätes. Mehr ... | |
enum | { A_001 = (1UL << 1), A_002 = (1UL << 2), A_005 = (1UL << 3), A_010 = (1UL << 4), A_020 = (1UL << 5), A_050 = (1UL << 6), A_100 = (1UL << 7), A_200 = (1UL << 8), A_500 = (1UL << 9), A_EURO = (A_010 | A_020 | A_050 | A_100 | A_200), A_DEM = (A_010 | A_050 | A_100 | A_200 | A_500), A_NULL = 0 } |
Flags für die Münzannahmebereitschaft. Mehr ... | |
enum | { PREVIEW_W = 210, PREVIEW_H = 300 } |
Größe eines Vorschaubildes. Mehr ... | |
Funktionen | |
void | register_bigwin (const char *fmt,...) |
Registrieren eines großen Gewinns. | |
void | smploop_start (struct sample_loop *sl) |
Starten eines Sampleloops. | |
void | smploop_stop (struct sample_loop *sl) |
Stoppen eines Sampleloops. | |
Schnittstelle zur Walze | |
void | reel_set_random (struct reel *r) |
Zufällige Walzenposition setzen. | |
void | reel_start (struct reel *r) |
Walze starten. | |
void | reel_stop_ex (struct reel *r, int force) |
Walze stoppen. | |
unsigned | reel_pos (const struct reel *r) |
Position der Walze ermitteln. | |
void | reel_start_sound (struct reel *r) |
Samples für Walzenstart spielen. | |
void | reel_stop_sound (struct reel *r) |
Samples für Walzenstop spielen. | |
void | reel_stop (struct reel *r) |
Walze stoppen. | |
void | reel_invisible_render_cb (struct reel *r, int force) |
Render-Callback für eine unsichtbare Walze. | |
Hilfsfunktionen | |
int | m_all_files_exist (unsigned n, char **filenames) |
Existenz aller Dateien prüfen. | |
DATAFILE * | m_load_datafile (remember_t rmb, const char *filename) |
DATAFILE aus dem Programmverzeichnis laden. | |
struct stat_bigwin * | m_bigwin_stats (const char *uniq_id) |
Großgewinnstatistiken für ein Gerät ermitteln. | |
struct stat_part * | m_overall_stats (const char *uniq_id) |
Langzeitstatistiken für ein Gerät ermitteln. | |
int | m_machine_started (const char *uniq_id) |
Ermitteln, wie häufig ein Gerät gespielt wurde. | |
void | m_cb_wantquit_setflag (machine_t md) |
Praktischer Callback für verzögertes Beenden. | |
void | m_cb_format_dem (unsigned bufsz, char *buf, int value) |
Callback für die Formatierung von DM-Beträgen. | |
void | m_cb_format_eur (unsigned bufsz, char *buf, int value) |
Callback für die Formatierung von Euro-Beträgen. | |
void | m_cb_format_generic (unsigned bufsz, char *buf, int value) |
Callback für eine unspezifische Betragsformatierung. | |
void | m_reel_positions (machine_t md,...) |
Ermitteln der Walzenpositionen. | |
Variablen | |
short int | cheat_allowed |
Ist Cheaten erlaubt? | |
volatile unsigned | hundreds |
Timer. | |
struct simstrat | default_sim |
Standard-»Strategie«. | |
Rendering-Offsets | |
#define | XOF (elements_offset_x) |
Kurzschreibweise für elements_offset_x. | |
#define | YOF (elements_offset_y) |
Kurzschreibweise für elements_offset_y. | |
short int | elements_offset_x |
x-Offset für das Rendern eines Elementes | |
short int | elements_offset_y |
y-Offset für das Rendern eines Elementes | |
Hilfsfunktionen für das Rendering | |
#define | clear_screen(COLOR) drect_cls ((COLOR)) |
Bildschirm löschen. | |
void | draw_backdrop (BITMAP *bm) |
Hintergrundbild zeichnen. | |
void | draw_machine_front (BITMAP *bm) |
Scheibe des Automaten zeichnen. | |
Schnittstelle zum Timer | |
#define | timer_get() (hundreds) |
Aktuellen Stand des Timers ermitteln. | |
#define | random_future(MINTIME, MAXTIME) (timer_get () + (MINTIME) + mt_range ((MAXTIME) - (MINTIME) + 1)) |
Ermitteln eines zufälligen Zeitpunktes in der Zukunft. | |
#define | random_time(MINTIME, MAXTIME) ((MINTIME) + mt_range ((MAXTIME) - (MINTIME) + 1)) |
Ermitteln eines zufälligen Zeitpunktes. | |
void | timer_reset (void) |
Timer rücksetzen. | |
void | timer_set (unsigned value) |
Timer auf neuen Wert setzen. | |
void | timer_start (void) |
Timer starten. | |
void | timer_pause (void) |
Timer vorrübergehend anhalten. | |
int | timer_is_running (void) |
Läuft der Timer? | |
Schnittstelle der variablen Bitmap | |
#define | vbm_get(VBM) ((VBM)->akt) |
Status einer variablen Bitmap ermitteln. | |
#define | vbm_getmax(VBM) (assert ((VBM)), (VBM)->max) |
Maximalen Status einer variablen Bitmap ermitteln. | |
void | vbm_set (vbitmap_t vbm, unsigned short int newval) |
Status einer variablen Bitmap setzen. | |
void | vbm_sound (vbitmap_t vbm, unsigned short int newval, SAMPLE *smp, int vol, int pan) |
Status einer variablen Bitmap mit Sound setzen. | |
Schnittstelle zum Zählwerk | |
#define | cnt_get(CNTPTR) ((CNTPTR)->value) |
Zählerstand ermitteln. | |
#define | cnt_set(CNTPTR, VAL) (cnt_add ((CNTPTR), (VAL) - cnt_get ((CNTPTR)))) |
Zählerstand setzen. | |
#define | cnt_sub(CNTPTR, TOSUB) (cnt_add ((CNTPTR), -(TOSUB))) |
Vom Zählwerk abziehen. | |
#define | cnt_get_max(CNTPTR) ((CNTPTR)->max) |
Maximalen Wert eines Zählwerkes ermitteln. | |
void | cnt_add (struct counter *c, int toadd) |
Addition zum Zählwerk. | |
int | cnt_is_counting (struct counter *c) |
Prüfung, ob der Zähler zählt. | |
void | cnt_up_sound (struct counter *c) |
Sample für Aufzählung spielen. | |
void | cnt_down_sound (struct counter *c) |
Sample für Abzug spielen. | |
Schnittstelle zum Spielgerät | |
#define | machine_is_debug(MD) (((MD)->flags & MFL_DEBUG) != 0) |
Test auf Debug-Version. | |
#define | machine_is_simulated(MD) (((MD)->flags & MFL_SIMULATED) != 0) |
Test auf Simulationslauf. | |
#define | machine_plays_for_real(MD) (((MD)->flags & MFL_SIMULATED) == 0) |
Test auf wirkliches Spielgeschehen. | |
#define | machine_is_cheated(MD) (((MD)->flags & MFL_CHEATED) != 0) |
Test auf gecheatetess Gerät. | |
#define | machine_want_payout(MD) (((MD)->flags & MFL_WANTPAYOUT) != 0) |
Test, ob das Gerät eine Auszahlung wünscht. | |
#define | machine_is_quitting(MD) (((MD)->flags & (MFL_WANTQUIT | MFL_DONE)) != 0) |
Soll die Maschine beendet werden. | |
#define | machine_credit_add(M, ADD) (cnt_add ((M)->credit_counter, (ADD))) |
Aufzählung auf den Credit-Zähler. | |
#define | machine_credit_sub(M, SUB) (machine_credit_add ((M), -(SUB))) |
Abzug vom Credit-Zähler. | |
#define | machine_coinin(M, CIN) (cnt_add ((M)->credit_counter, (CIN))) |
Geldeinwurf. | |
#define | machine_credit(M) ((M)->credit_counter->value) |
Stand des Credit-Zählers ermitteln. | |
#define | machine_payout(M) (machine_payout_ex ((M), machine_credit (M))) |
Auszahlung des Gesamtbetrages. | |
#define | machine_payout_remain(M, REMAIN) |
Auszahlung mit Restbetrag. | |
void | machine_precheck (machine_t md) |
Initiale Überprüfung eines Spielgerätes. | |
struct machine_stat * | machine_play (machine_t md) |
Gerät spielen. | |
struct stat_part * | machine_simulate (machine_t md, struct simstrat *strat, unsigned n, int(*sim_cb)(unsigned n, int win)) |
Gerät simulieren. | |
void | machine_bet (machine_t md, unsigned bet) |
Einsatz machen. | |
void | machine_wincheck (machine_t md) |
Gewinnprüfung. | |
void | machine_quit_check (machine_t md) |
Beenden-Prüfung für ein Gerät. | |
void | machine_start_action (machine_t md) |
Aktionen zum Spielstart. | |
void | machine_end_action (machine_t md) |
Aktionen zum Spielende. | |
void | machine_payout_ex (machine_t md, int amount) |
Auszahlung eines Betrages. | |
Schnittstelle zur Programmsteuerung | |
Das Programm besteht aus Angaben, zu welchen Zeitpunkten welche Callback-Funktionen aufgerufen werden sollen.Diese Aufrufe müssen von der Implementation eines Gerätes gesetzt werden, sie werden im Framework automatisch durchgeführt.Während der Ausführung einer Callbackfunktion können weitere Callbackfunktionen im Programm gesetzt werden, auch solche, die in der Vergangenheit liegen. Diese werden erst nach dem nächsten Rendern des Gerätes aufgerufen. Es ist also möglich (und in der Implementation eines Gerätes in der Regel auch erwünscht), dass zum Ende eines Spielablaufes zunächst die Aktionen für den Start eines neuen Spieles gesetzt werden und dann der Timer zurückgesetzt wird, ohne dass es zum sofortigen Aufruf der »überfälligen« Callbacks kommt.Wenn die Endaktionen eines Automaten über prg_endgame_action() gesetzt werden, denn wird der Timer automatisch nach dem Aufruf des Callbacks für das Gerät zurückgesetzt. | |
#define | prg_reset_timer(WHEN) prg_add ((WHEN), reset_timer) |
Programmanweisung zum Rücksetzen des Zählers. | |
#define | prg_start_reel(WHEN, REEL) prg_add_1param ((WHEN), (prg_p1cb_t) reel_start, (REEL)) |
Programmanweisung zum Starten einer Walze. | |
#define | prg_stop_reel(WHEN, REEL) prg_add_1param ((WHEN), (prg_p1cb_t) reel_stop, (REEL)) |
Programmanweisung zum Stoppen einer Walze. | |
#define | prg_vbm_set(WHEN, VBM, NEWVAL) prg_add_piparam ((WHEN), (prg_picb_t) vbm_set, (VBM), (NEWVAL)) |
Programmanweisung zum Setzen einer variablen Bitmap. | |
#define | prg_smploop_start(WHEN, SMPLOOP) prg_add_1param ((WHEN), (prg_p1cb_t) smploop_start, (SMPLOOP)) |
Programmanweisung zum Starten eines Sampleloops. | |
#define | prg_smploop_stop(WHEN, SMPLOOP) prg_add_1param ((WHEN), (prg_p1cb_t) smploop_stop, (SMPLOOP)) |
Programmanweisung zum Beenden eines Sampleloops. | |
#define | prg_startgame_loop(WHEN, MD) |
Programmsteuerung für die Wiederholung der Startaktion eines Spieles. | |
#define | prg_quitcheck(WHEN, MD) prg_add_1param ((WHEN), (prg_p1cb_t) machine_quitcheck, (MD)) |
Programmanweisung für eine Beenden-Prüfung. | |
#define | prg_wincheck(WHEN, MD) prg_add_1param ((WHEN), (prg_p1cb_t) machine_wincheck, (MD)) |
Programmanweisung für eine Gewinn-Prüfung. | |
void | prg_clear (void) |
Programm löschen. | |
void | prg_add (unsigned time_when, prg_p0cb_t cb) |
Callbackfunktion registrieren. | |
void | prg_add_1param (unsigned time_when, prg_p1cb_t cb, void *p1) |
Callbackfunktion registrieren. | |
void | prg_add_2param (unsigned time_when, prg_p2cb_t cb, void *p1, void *p2) |
Callbackfunktion registrieren. | |
void | prg_add_piparam (unsigned time_when, prg_picb_t cb, void *ptr, int i) |
Callbackfunktion registrieren. | |
void | prg_endgame_action (unsigned when, machine_t md) |
Programmanweisung für die Endaktionen eines Spieles. | |
void | prg_default_bet (unsigned when, machine_t md) |
Programmanweisung für den Abzug des Standardeinsatzes. | |
void | prg_bet (unsigned when, machine_t md, int amount) |
Programmanweisung für einen beliebigen Einsatz. | |
void | prg_startgame_action (unsigned when, machine_t md) |
Programmanweisung für den Start eines Spieles. |
Elemente eines Spielautomaten.
In dieser überlangen Datei sind alle Elemente definiert, die in einem Spielgerät Verwendung finden, zusammen mit nützlichen Hilfsfunktionen.
Definiert in Datei elements.h.