projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed position of initial busy animation
[rocksndiamonds.git]
/
src
/
init.c
diff --git
a/src/init.c
b/src/init.c
index 041098f2665f427118e8e5a8bce1b539d17e50f2..a79bd5bbb2b9483ae0a3a0a5a91e03d0bed69606 100644
(file)
--- a/
src/init.c
+++ b/
src/init.c
@@
-34,13
+34,20
@@
#define CONFIG_TOKEN_FONT_INITIAL "font.initial"
#define CONFIG_TOKEN_FONT_INITIAL "font.initial"
+#define CONFIG_TOKEN_GLOBAL_BUSY_INITIAL "global.busy_initial"
#define CONFIG_TOKEN_GLOBAL_BUSY "global.busy"
#define CONFIG_TOKEN_GLOBAL_BUSY "global.busy"
+#define CONFIG_TOKEN_BACKGROUND_LOADING_INITIAL "background.LOADING_INITIAL"
#define CONFIG_TOKEN_BACKGROUND_LOADING "background.LOADING"
#define CONFIG_TOKEN_BACKGROUND_LOADING "background.LOADING"
-#define INITIAL_IMG_GLOBAL_BUSY
0
-#define INITIAL_IMG_
BACKGROUND_LOADING
1
+#define INITIAL_IMG_GLOBAL_BUSY
_INITIAL
0
+#define INITIAL_IMG_
GLOBAL_BUSY
1
-#define NUM_INITIAL_IMAGES 2
+#define NUM_INITIAL_IMAGES_BUSY 2
+
+#define INITIAL_IMG_BACKGROUND_LOADING_INITIAL 2
+#define INITIAL_IMG_BACKGROUND_LOADING 3
+
+#define NUM_INITIAL_IMAGES 4
static struct FontBitmapInfo font_initial[NUM_INITIAL_FONTS];
static struct FontBitmapInfo font_initial[NUM_INITIAL_FONTS];
@@
-102,13
+109,16
@@
static int get_graphic_parameter_value(char *, char *, int);
static void SetLoadingBackgroundImage(void)
{
struct GraphicInfo *graphic_info_last = graphic_info;
static void SetLoadingBackgroundImage(void)
{
struct GraphicInfo *graphic_info_last = graphic_info;
+ int background_image = (game_status_last_screen == -1 ?
+ INITIAL_IMG_BACKGROUND_LOADING_INITIAL :
+ INITIAL_IMG_BACKGROUND_LOADING);
graphic_info = image_initial;
SetDrawDeactivationMask(REDRAW_NONE);
SetDrawBackgroundMask(REDRAW_ALL);
graphic_info = image_initial;
SetDrawDeactivationMask(REDRAW_NONE);
SetDrawBackgroundMask(REDRAW_ALL);
- SetWindowBackgroundImage(
INITIAL_IMG_BACKGROUND_LOADING
);
+ SetWindowBackgroundImage(
background_image
);
graphic_info = graphic_info_last;
}
graphic_info = graphic_info_last;
}
@@
-116,35
+126,41
@@
static void SetLoadingBackgroundImage(void)
static void DrawInitAnim(void)
{
struct GraphicInfo *graphic_info_last = graphic_info;
static void DrawInitAnim(void)
{
struct GraphicInfo *graphic_info_last = graphic_info;
- int graphic = 0;
+ int graphic = (game_status_last_screen == -1 ?
+ INITIAL_IMG_GLOBAL_BUSY_INITIAL :
+ INITIAL_IMG_GLOBAL_BUSY);
+ struct MenuPosInfo *busy = (game_status_last_screen == -1 ?
+ &init_last.busy_initial :
+ &init_last.busy);
static unsigned int action_delay = 0;
unsigned int action_delay_value = GameFrameDelay;
int sync_frame = FrameCounter;
int x, y;
static unsigned int action_delay = 0;
unsigned int action_delay_value = GameFrameDelay;
int sync_frame = FrameCounter;
int x, y;
+
// prevent OS (Windows) from complaining about program not responding
CheckQuitEvent();
if (game_status != GAME_MODE_LOADING)
return;
// prevent OS (Windows) from complaining about program not responding
CheckQuitEvent();
if (game_status != GAME_MODE_LOADING)
return;
- if (image_initial[
INITIAL_IMG_GLOBAL_BUSY
].bitmap == NULL || window == NULL)
+ if (image_initial[
graphic
].bitmap == NULL || window == NULL)
return;
if (!DelayReached(&action_delay, action_delay_value))
return;
return;
if (!DelayReached(&action_delay, action_delay_value))
return;
- if (
init_last.busy.
x == -1)
-
init_last.busy.
x = WIN_XSIZE / 2;
- if (
init_last.busy.
y == -1)
-
init_last.busy.
y = WIN_YSIZE / 2;
+ if (
busy->
x == -1)
+
busy->
x = WIN_XSIZE / 2;
+ if (
busy->
y == -1)
+
busy->
y = WIN_YSIZE / 2;
- x = ALIGNED_TEXT_XPOS(
&init_last.
busy);
- y = ALIGNED_TEXT_YPOS(
&init_last.
busy);
+ x = ALIGNED_TEXT_XPOS(busy);
+ y = ALIGNED_TEXT_YPOS(busy);
- graphic_info = image_initial;
// graphic == 0 => image_initial
+ graphic_info = image_initial;
- if (sync_frame % image_initial[
INITIAL_IMG_GLOBAL_BUSY
].anim_delay == 0)
+ if (sync_frame % image_initial[
graphic
].anim_delay == 0)
{
Bitmap *src_bitmap;
int src_x, src_y;
{
Bitmap *src_bitmap;
int src_x, src_y;
@@
-1718,6
+1734,8
@@
static void InitGraphicInfo(void)
IMG_BACKGROUND_REQUEST,
IMG_BACKGROUND,
IMG_BACKGROUND_REQUEST,
IMG_BACKGROUND,
+ IMG_BACKGROUND_LOADING_INITIAL,
+ IMG_BACKGROUND_LOADING,
IMG_BACKGROUND_TITLE_INITIAL,
IMG_BACKGROUND_TITLE,
IMG_BACKGROUND_MAIN,
IMG_BACKGROUND_TITLE_INITIAL,
IMG_BACKGROUND_TITLE,
IMG_BACKGROUND_MAIN,
@@
-1725,6
+1743,7
@@
static void InitGraphicInfo(void)
IMG_BACKGROUND_LEVELS,
IMG_BACKGROUND_LEVELNR,
IMG_BACKGROUND_SCORES,
IMG_BACKGROUND_LEVELS,
IMG_BACKGROUND_LEVELNR,
IMG_BACKGROUND_SCORES,
+ IMG_BACKGROUND_SCOREINFO,
IMG_BACKGROUND_EDITOR,
IMG_BACKGROUND_INFO,
IMG_BACKGROUND_INFO_ELEMENTS,
IMG_BACKGROUND_EDITOR,
IMG_BACKGROUND_INFO,
IMG_BACKGROUND_INFO_ELEMENTS,
@@
-5566,9
+5585,16
@@
static void InitGfx(void)
char *filename_image_initial[NUM_INITIAL_IMAGES] = { NULL };
char *image_token[NUM_INITIAL_IMAGES] =
{
char *filename_image_initial[NUM_INITIAL_IMAGES] = { NULL };
char *image_token[NUM_INITIAL_IMAGES] =
{
+ CONFIG_TOKEN_GLOBAL_BUSY_INITIAL,
CONFIG_TOKEN_GLOBAL_BUSY,
CONFIG_TOKEN_GLOBAL_BUSY,
+ CONFIG_TOKEN_BACKGROUND_LOADING_INITIAL,
CONFIG_TOKEN_BACKGROUND_LOADING
};
CONFIG_TOKEN_BACKGROUND_LOADING
};
+ struct MenuPosInfo *init_busy[NUM_INITIAL_IMAGES_BUSY] =
+ {
+ &init.busy_initial,
+ &init.busy
+ };
Bitmap *bitmap_font_initial = NULL;
int parameter[NUM_INITIAL_IMAGES][NUM_GFX_ARGS];
int i, j, k;
Bitmap *bitmap_font_initial = NULL;
int parameter[NUM_INITIAL_IMAGES][NUM_GFX_ARGS];
int i, j, k;
@@
-5733,6
+5759,13
@@
static void InitGfx(void)
graphic_info = graphic_info_last;
graphic_info = graphic_info_last;
+ for (i = 0; i < NUM_INITIAL_IMAGES_BUSY; i++)
+ {
+ // set image size for busy animations
+ init_busy[i]->width = image_initial[i].width;
+ init_busy[i]->height = image_initial[i].height;
+ }
+
SetLoadingBackgroundImage();
ClearRectangleOnBackground(window, 0, 0, WIN_XSIZE, WIN_YSIZE);
SetLoadingBackgroundImage();
ClearRectangleOnBackground(window, 0, 0, WIN_XSIZE, WIN_YSIZE);