TrophyRace: Fix game never eliminating any hogs after a hog skipped or ran out of time
Warning: This commit _might_ invalidate past records, but I'm not sure if
this is actually the case. Note that only the eliminiation part of the
script is touched, not the actual race logic.
Even if records are actually broken by this, I and sheepluva have decided that
it's more imporant to fix this very, VERY stupid and old bug than to preserve
records.
#ifndef _FPCRTL_MISC_H_
#define _FPCRTL_MISC_H_
#include "pas2c.h"
#include <assert.h>
#include <stdbool.h>
#ifdef EMSCRIPTEN
#include <GL/gl.h>
#else
#include <GL/glew.h>
#endif
#define VA_NUM_ARGS(...) VA_NUM_ARGS_IMPL(__VA_ARGS__, 5,4,3,2,1)
#define VA_NUM_ARGS_IMPL(_1,_2,_3,_4,_5,N,...) N
#define macro_dispatcher(func, ...) macro_dispatcher_(func, VA_NUM_ARGS(__VA_ARGS__))
#define macro_dispatcher_(func, nargs) macro_dispatcher__(func, nargs)
#define macro_dispatcher__(func, nargs) func ## nargs
//#define FPCRTL_DEBUG
#define FIX_STRING(s) (s.str[s.len == 255 ? 254 : s.len] = 0)
//#define fpcrtl_check_string(s) do{ if(strlen((s).str) != (s).len){ \
// printf("String %s internal inconsistency error. Length should be %d but actually is %d.\n", (s).str, strlen((s).str), (s).len); \
// assert(0);\
// }}while(0)
void fpcrtl_assert(int);
void fpcrtl_print_trace (void);
int fpcrtl_round(double number);
void fpcrtl_printf(const char* format, ...);
string255 fpcrtl_make_string(const char* s);
string255 fpcrtl_strconcat(string255 str1, string255 str2);
string255 fpcrtl_strappend(string255 s, char c);
string255 fpcrtl_strprepend(char c, string255 s);
string255 fpcrtl_chrconcat(char a, char b);
astring fpcrtl_strconcatA(astring str1, astring str2);
astring fpcrtl_strappendA(astring s, char c);
// return true if str1 == str2
bool fpcrtl_strcompare(string255 str1, string255 str2);
bool fpcrtl_strcomparec(string255 a, char b);
bool fpcrtl_strncompare(string255 a, string255 b);
bool fpcrtl_strncompareA(astring a, astring b);
#define fpcrtl__pchar(s) fpcrtl__pchar__vars(&(s))
#define fpcrtl__pcharA(s) fpcrtl__pcharA__vars(&(s))
char* fpcrtl__pchar__vars(const string255 * s);
char* fpcrtl__pcharA__vars(astring * s);
string255 fpcrtl_pchar2str(const char *s);
astring fpcrtl_pchar2astr(const char *s);
astring fpcrtl_str2astr(const string255 s);
string255 fpcrtl_astr2str(const astring s);
#define fpcrtl_TypeInfo sizeof // dummy
#ifdef EMSCRIPTEN
#define GLEW_OK 1
GLenum glewInit();
#endif
#endif