projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5e13b10
)
added configurability of different window size for title screens
author
Holger Schemel
<info@artsoft.org>
Wed, 2 Dec 2015 20:06:39 +0000
(21:06 +0100)
committer
Holger Schemel
<info@artsoft.org>
Wed, 2 Dec 2015 20:06:39 +0000
(21:06 +0100)
build-scripts/create_element_defs.pl
patch
|
blob
|
history
src/conf_gfx.c
patch
|
blob
|
history
src/files.c
patch
|
blob
|
history
src/main.h
patch
|
blob
|
history
src/screens.c
patch
|
blob
|
history
src/tools.c
patch
|
blob
|
history
diff --git
a/build-scripts/create_element_defs.pl
b/build-scripts/create_element_defs.pl
index a2d92d3521bcac1204c6ab83c7ca1774cba1be98..3c080a7a02e2262487675237673d40b0722eb067 100755
(executable)
--- a/
build-scripts/create_element_defs.pl
+++ b/
build-scripts/create_element_defs.pl
@@
-2418,7
+2418,7
@@
sub print_image_config_vars
$var .= "[GFX_SPECIAL_ARG_DEFAULT]";
}
$var .= "[GFX_SPECIAL_ARG_DEFAULT]";
}
- if ($var =~ /^(viewport.(playfield|door_[12]))(.[a-z_]+)$/)
+ if ($var =~ /^(viewport.(
window|
playfield|door_[12]))(.[a-z_]+)$/)
{
$var = $1 . "[GFX_SPECIAL_ARG_DEFAULT]" . $3;
}
{
$var = $1 . "[GFX_SPECIAL_ARG_DEFAULT]" . $3;
}
diff --git
a/src/conf_gfx.c
b/src/conf_gfx.c
index 15a3b244e9d6e0e016eb6e8e9d931872fac8609a..503f2b32d35ecbb179c8cdfd6c22026830bd9801 100644
(file)
--- a/
src/conf_gfx.c
+++ b/
src/conf_gfx.c
@@
-7706,6
+7706,9
@@
struct ConfigInfo image_config[] =
{ "viewport.window.width", "672" },
{ "viewport.window.height", "560" },
{ "viewport.window.width", "672" },
{ "viewport.window.height", "560" },
+ { "viewport.window.TITLE.width", ARG_DEFAULT },
+ { "viewport.window.TITLE.height", ARG_DEFAULT },
+
{ "viewport.playfield.x", "6" },
{ "viewport.playfield.y", "6" },
{ "viewport.playfield.width", "548" },
{ "viewport.playfield.x", "6" },
{ "viewport.playfield.y", "6" },
{ "viewport.playfield.width", "548" },
@@
-7731,6
+7734,7
@@
struct ConfigInfo image_config[] =
{ "viewport.playfield.PLAYING.width", ARG_DEFAULT },
{ "viewport.playfield.PLAYING.height", ARG_DEFAULT },
{ "viewport.playfield.PLAYING.border_size", ARG_DEFAULT },
{ "viewport.playfield.PLAYING.width", ARG_DEFAULT },
{ "viewport.playfield.PLAYING.height", ARG_DEFAULT },
{ "viewport.playfield.PLAYING.border_size", ARG_DEFAULT },
+
{ "viewport.door_1.x", "566" },
{ "viewport.door_1.y", "60" },
{ "viewport.door_1.width", "100" },
{ "viewport.door_1.x", "566" },
{ "viewport.door_1.y", "60" },
{ "viewport.door_1.width", "100" },
@@
-7756,6
+7760,7
@@
struct ConfigInfo image_config[] =
{ "viewport.door_1.PLAYING.width", ARG_DEFAULT },
{ "viewport.door_1.PLAYING.height", ARG_DEFAULT },
{ "viewport.door_1.PLAYING.border_size", ARG_DEFAULT },
{ "viewport.door_1.PLAYING.width", ARG_DEFAULT },
{ "viewport.door_1.PLAYING.height", ARG_DEFAULT },
{ "viewport.door_1.PLAYING.border_size", ARG_DEFAULT },
+
{ "viewport.door_2.x", "566" },
{ "viewport.door_2.y", "400" },
{ "viewport.door_2.width", "100" },
{ "viewport.door_2.x", "566" },
{ "viewport.door_2.y", "400" },
{ "viewport.door_2.width", "100" },
diff --git
a/src/files.c
b/src/files.c
index df4887a079f8e681f270f62860887c807269e54a..c357e2c7003fb45894f0603cf0b6b22fb4dfbff6 100644
(file)
--- a/
src/files.c
+++ b/
src/files.c
@@
-8786,8
+8786,10
@@
static void InitMenuDesignSettings_SpecialPreProcessing()
/* (eg, init "viewport.door_1.MAIN.xyz" from "viewport.door_1.xyz") */
for (i = 0; i < NUM_SPECIAL_GFX_ARGS; i++)
{
/* (eg, init "viewport.door_1.MAIN.xyz" from "viewport.door_1.xyz") */
for (i = 0; i < NUM_SPECIAL_GFX_ARGS; i++)
{
+ viewport.window[i] = viewport.window[GFX_SPECIAL_ARG_DEFAULT];
viewport.playfield[i] = viewport.playfield[GFX_SPECIAL_ARG_DEFAULT];
viewport.playfield[i] = viewport.playfield[GFX_SPECIAL_ARG_DEFAULT];
- viewport.door_1[i] = viewport.door_1[GFX_SPECIAL_ARG_DEFAULT];
+ viewport.door_1[i] = viewport.door_1[GFX_SPECIAL_ARG_DEFAULT];
+
if (i != GFX_SPECIAL_ARG_EDITOR) /* editor value already initialized */
viewport.door_2[i] = viewport.door_2[GFX_SPECIAL_ARG_DEFAULT];
}
if (i != GFX_SPECIAL_ARG_EDITOR) /* editor value already initialized */
viewport.door_2[i] = viewport.door_2[GFX_SPECIAL_ARG_DEFAULT];
}
@@
-8963,6
+8965,8
@@
static void LoadMenuDesignSettingsFromFilename(char *filename)
/* (eg, init "viewport.door_1.MAIN.xyz" from "viewport.door_1.xyz") */
for (i = 0; i < NUM_SPECIAL_GFX_ARGS; i++)
{
/* (eg, init "viewport.door_1.MAIN.xyz" from "viewport.door_1.xyz") */
for (i = 0; i < NUM_SPECIAL_GFX_ARGS; i++)
{
+ char *token_w1 = "viewport.window.width";
+ char *token_w2 = "viewport.window.height";
char *token_01 = "viewport.playfield.x";
char *token_02 = "viewport.playfield.y";
char *token_03 = "viewport.playfield.width";
char *token_01 = "viewport.playfield.x";
char *token_02 = "viewport.playfield.y";
char *token_03 = "viewport.playfield.width";
@@
-8978,6
+8982,8
@@
static void LoadMenuDesignSettingsFromFilename(char *filename)
char *token_13 = "viewport.door_2.width";
char *token_14 = "viewport.door_2.height";
char *token_15 = "viewport.door_2.border_size";
char *token_13 = "viewport.door_2.width";
char *token_14 = "viewport.door_2.height";
char *token_15 = "viewport.door_2.border_size";
+ char *value_w1 = getHashEntry(setup_file_hash, token_w1);
+ char *value_w2 = getHashEntry(setup_file_hash, token_w2);
char *value_01 = getHashEntry(setup_file_hash, token_01);
char *value_02 = getHashEntry(setup_file_hash, token_02);
char *value_03 = getHashEntry(setup_file_hash, token_03);
char *value_01 = getHashEntry(setup_file_hash, token_01);
char *value_02 = getHashEntry(setup_file_hash, token_02);
char *value_03 = getHashEntry(setup_file_hash, token_03);
@@
-8994,6
+9000,10
@@
static void LoadMenuDesignSettingsFromFilename(char *filename)
char *value_14 = getHashEntry(setup_file_hash, token_14);
char *value_15 = getHashEntry(setup_file_hash, token_15);
char *value_14 = getHashEntry(setup_file_hash, token_14);
char *value_15 = getHashEntry(setup_file_hash, token_15);
+ if (value_w1 != NULL)
+ viewport.window[i].width = get_token_parameter_value(token_w1, value_w1);
+ if (value_w2 != NULL)
+ viewport.window[i].height = get_token_parameter_value(token_w2, value_w2);
if (value_01 != NULL)
viewport.playfield[i].x = get_token_parameter_value(token_01, value_01);
if (value_02 != NULL)
if (value_01 != NULL)
viewport.playfield[i].x = get_token_parameter_value(token_01, value_01);
if (value_02 != NULL)
diff --git
a/src/main.h
b/src/main.h
index da66e67c80636a29c4bc244ac53f30b19bbac8e2..a8edcee71ea33d8c76b534843b1bb39e487c7aa7 100644
(file)
--- a/
src/main.h
+++ b/
src/main.h
@@
-2343,7
+2343,7
@@
struct EditorInfo
struct ViewportInfo
{
struct ViewportInfo
{
- struct RectWithBorder window;
+ struct RectWithBorder window
[NUM_SPECIAL_GFX_ARGS]
;
struct RectWithBorder playfield[NUM_SPECIAL_GFX_ARGS];
struct RectWithBorder door_1[NUM_SPECIAL_GFX_ARGS];
struct RectWithBorder door_2[NUM_SPECIAL_GFX_ARGS];
struct RectWithBorder playfield[NUM_SPECIAL_GFX_ARGS];
struct RectWithBorder door_1[NUM_SPECIAL_GFX_ARGS];
struct RectWithBorder door_2[NUM_SPECIAL_GFX_ARGS];
diff --git
a/src/screens.c
b/src/screens.c
index 9de4b55d4bdbddb06d5a1519ff13cf4dfd74151a..e68ec1a8d37efb07cee16488cc4a1c64f5a1a93f 100644
(file)
--- a/
src/screens.c
+++ b/
src/screens.c
@@
-1568,6
+1568,8
@@
void HandleTitleScreen(int mx, int my, int dx, int dy, int button)
ClearField();
}
ClearField();
}
+ ChangeViewportPropertiesIfNeeded();
+
if (tci->is_image)
DrawTitleScreenImage(tci->local_nr, tci->initial);
else
if (tci->is_image)
DrawTitleScreenImage(tci->local_nr, tci->initial);
else
@@
-2158,6
+2160,8
@@
static void DrawInfoScreen_Main()
FadeOut(fade_mask);
FadeOut(fade_mask);
+ ChangeViewportPropertiesIfNeeded();
+
OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
ClearField();
OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW);
ClearField();
diff --git
a/src/tools.c
b/src/tools.c
index 7e8806e54f67fd3e2e9055f631bee2229863b15b..3cf3b9609618d50b46346dba54d7bed7c7f32937 100644
(file)
--- a/
src/tools.c
+++ b/
src/tools.c
@@
-8142,10
+8142,13
@@
void ChangeViewportPropertiesIfNeeded()
int gfx_game_mode = game_status;
int gfx_game_mode2 = (game_status == GAME_MODE_EDITOR ? GAME_MODE_DEFAULT :
game_status);
int gfx_game_mode = game_status;
int gfx_game_mode2 = (game_status == GAME_MODE_EDITOR ? GAME_MODE_DEFAULT :
game_status);
+ struct RectWithBorder *vp_window = &viewport.window[gfx_game_mode];
struct RectWithBorder *vp_playfield = &viewport.playfield[gfx_game_mode];
struct RectWithBorder *vp_playfield = &viewport.playfield[gfx_game_mode];
- struct RectWithBorder *vp_door_1 = &viewport.door_1[gfx_game_mode];
- struct RectWithBorder *vp_door_2 = &viewport.door_2[gfx_game_mode2];
- struct RectWithBorder *vp_door_3 = &viewport.door_2[GAME_MODE_EDITOR];
+ struct RectWithBorder *vp_door_1 = &viewport.door_1[gfx_game_mode];
+ struct RectWithBorder *vp_door_2 = &viewport.door_2[gfx_game_mode2];
+ struct RectWithBorder *vp_door_3 = &viewport.door_2[GAME_MODE_EDITOR];
+ int new_win_xsize = vp_window->width;
+ int new_win_ysize = vp_window->height;
int border_size = vp_playfield->border_size;
int new_sx = vp_playfield->x + border_size;
int new_sy = vp_playfield->y + border_size;
int border_size = vp_playfield->border_size;
int new_sx = vp_playfield->x + border_size;
int new_sy = vp_playfield->y + border_size;
@@
-8181,11
+8184,11
@@
void ChangeViewportPropertiesIfNeeded()
boolean init_gadgets_and_toons = FALSE;
boolean init_em_graphics = FALSE;
boolean init_gadgets_and_toons = FALSE;
boolean init_em_graphics = FALSE;
- if (
viewport.window.width
!= WIN_XSIZE ||
-
viewport.window.height
!= WIN_YSIZE)
+ if (
new_win_xsize
!= WIN_XSIZE ||
+
new_win_ysize
!= WIN_YSIZE)
{
{
- WIN_XSIZE =
viewport.window.width
;
- WIN_YSIZE =
viewport.window.height
;
+ WIN_XSIZE =
new_win_xsize
;
+ WIN_YSIZE =
new_win_ysize
;
init_video_buffer = TRUE;
init_gfx_buffers = TRUE;
init_video_buffer = TRUE;
init_gfx_buffers = TRUE;