X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=e689b266ef6b6263d0e689c330df1e6e375f2b0b;hb=516e119d29f14799bd352b05baa783ed4b56f07f;hp=72c164416c948c9cb3353addb9416b926c8a100e;hpb=ed7ea5975dead823d5119729e7851411c5c8089a;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 72c16441..e689b266 100644 --- a/src/main.h +++ b/src/main.h @@ -932,8 +932,8 @@ #define IS_NEW_FRAME(f, g) (IS_ANIMATED(g) && IS_NEW_DELAY(f, g)) #define IS_NEXT_FRAME(f, g) (IS_NEW_FRAME(f, g) && (f) > 0) -#define IS_LOOP_SOUND(s) (sound_info[s].loop) -#define IS_LOOP_MUSIC(s) (music_info[s].loop) +#define IS_LOOP_SOUND(s) ((s) >= 0 && sound_info[s].loop) +#define IS_LOOP_MUSIC(s) ((s) < 0 || music_info[s].loop) #define IS_SPECIAL_GFX_ARG(a) ((a) >= 0 && (a) < NUM_SPECIAL_GFX_ARGS) @@ -984,6 +984,12 @@ #define MAX_ANDROID_ELEMENTS 32 #define MAX_ANDROID_ELEMENTS_OLD 16 // (extended since version 4.2.0.0) +#define MAX_ISO_DATE_LEN 10 +#define MAX_PLATFORM_TEXT_LEN 16 +#define MAX_VERSION_TEXT_LEN 16 +#define MAX_COUNTRY_CODE_LEN 2 +#define MAX_COUNTRY_NAME_LEN 64 + // values for elements with content #define MIN_ELEMENT_CONTENTS 1 #define STD_ELEMENT_CONTENTS 4 @@ -2311,6 +2317,7 @@ enum GFX_SPECIAL_ARG_LEVELS, GFX_SPECIAL_ARG_LEVELNR, GFX_SPECIAL_ARG_SCORES, + GFX_SPECIAL_ARG_SCOREINFO, GFX_SPECIAL_ARG_EDITOR, GFX_SPECIAL_ARG_INFO, GFX_SPECIAL_ARG_SETUP, @@ -2562,6 +2569,7 @@ enum #define GAME_MODE_LEVELS GFX_SPECIAL_ARG_LEVELS #define GAME_MODE_LEVELNR GFX_SPECIAL_ARG_LEVELNR #define GAME_MODE_SCORES GFX_SPECIAL_ARG_SCORES +#define GAME_MODE_SCOREINFO GFX_SPECIAL_ARG_SCOREINFO #define GAME_MODE_EDITOR GFX_SPECIAL_ARG_EDITOR #define GAME_MODE_INFO GFX_SPECIAL_ARG_INFO #define GAME_MODE_SETUP GFX_SPECIAL_ARG_SETUP @@ -2598,7 +2606,7 @@ enum // program information and versioning definitions #define PROGRAM_VERSION_SUPER 4 #define PROGRAM_VERSION_MAJOR 3 -#define PROGRAM_VERSION_MINOR 1 +#define PROGRAM_VERSION_MINOR 2 #define PROGRAM_VERSION_PATCH 0 #define PROGRAM_VERSION_EXTRA "" @@ -2606,7 +2614,7 @@ enum #define PROGRAM_AUTHOR_STRING "Holger Schemel" #define PROGRAM_EMAIL_STRING "info@artsoft.org" #define PROGRAM_WEBSITE_STRING "https://www.artsoft.org/" -#define PROGRAM_COPYRIGHT_STRING "Copyright \xa9""1995-2021 by Holger Schemel" +#define PROGRAM_COPYRIGHT_STRING "Copyright \xa9""1995-2022 by Holger Schemel" #define PROGRAM_COMPANY_STRING "A Game by Artsoft Entertainment" #define PROGRAM_ICON_FILENAME "RocksIcon32x32.png" @@ -2798,6 +2806,17 @@ struct MenuSetupInfo struct MenuSetupButtonInfo button; }; +struct MenuScoresButtonInfo +{ + struct MenuPosInfo prev_level; + struct MenuPosInfo next_level; +}; + +struct MenuScoresInfo +{ + struct MenuScoresButtonInfo button; +}; + struct TitleFadingInfo { int fade_mode; @@ -2887,6 +2906,7 @@ struct MenuInfo struct MenuMainInfo main; struct MenuSetupInfo setup; + struct MenuScoresInfo scores; }; struct DoorInfo @@ -3071,6 +3091,14 @@ struct ScoreEntry char name[MAX_PLAYER_NAME_LEN + 1]; int score; int time; // time (in frames) or steps played + + // additional score information for score info screen + int id; + char tape_date[MAX_ISO_DATE_LEN + 1]; + char platform[MAX_PLATFORM_TEXT_LEN + 1]; + char version[MAX_VERSION_TEXT_LEN + 1]; + char country_code[MAX_COUNTRY_CODE_LEN + 1]; + char country_name[MAX_COUNTRY_NAME_LEN + 1]; }; struct ScoreInfo @@ -3084,6 +3112,8 @@ struct ScoreInfo int num_entries; int last_added; int last_added_local; + int last_level_nr; + int last_entry_nr; boolean updated; boolean uploaded; @@ -3760,6 +3790,7 @@ extern int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxRandomStatic[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern int GfxElementEmpty[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern int GfxRedraw[MAX_LEV_FIELDX][MAX_LEV_FIELDY];