projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-19990124-1
[rocksndiamonds.git]
/
src
/
init.c
diff --git
a/src/init.c
b/src/init.c
index 63e6e57699883e25e557e1d7cc1b825ad1c2ad41..b92780b6e32130eee8eb92defdc08e2b35c9b0ff 100644
(file)
--- a/
src/init.c
+++ b/
src/init.c
@@
-18,6
+18,8
@@
#include "sound.h"
#include "screens.h"
#include "editor.h"
#include "sound.h"
#include "screens.h"
#include "editor.h"
+#include "game.h"
+#include "tape.h"
#include "tools.h"
#include "files.h"
#include "joystick.h"
#include "tools.h"
#include "files.h"
#include "joystick.h"
@@
-48,6
+50,7
@@
static void InitSoundServer(void);
static void InitWindow(int, char **);
static void InitGfx(void);
static void LoadGfx(int, struct PictureFileInfo *);
static void InitWindow(int, char **);
static void InitGfx(void);
static void LoadGfx(int, struct PictureFileInfo *);
+static void InitGadgets(void);
static void InitElementProperties(void);
void OpenAll(int argc, char *argv[])
static void InitElementProperties(void);
void OpenAll(int argc, char *argv[])
@@
-67,7
+70,6
@@
void OpenAll(int argc, char *argv[])
InitSoundServer();
InitJoysticks();
InitRND(NEW_RANDOMIZE);
InitSoundServer();
InitJoysticks();
InitRND(NEW_RANDOMIZE);
- InitLevelEditorGadgets();
signal(SIGINT, CloseAllAndExit);
signal(SIGTERM, CloseAllAndExit);
signal(SIGINT, CloseAllAndExit);
signal(SIGTERM, CloseAllAndExit);
@@
-79,6
+81,7
@@
void OpenAll(int argc, char *argv[])
XFlush(display);
InitGfx();
XFlush(display);
InitGfx();
+ InitGadgets();
InitElementProperties();
DrawMainMenu();
InitElementProperties();
DrawMainMenu();
@@
-348,8
+351,8
@@
void InitWindow(int argc, char *argv[])
XSizeHints size_hints;
XWMHints wm_hints;
XClassHint class_hints;
XSizeHints size_hints;
XWMHints wm_hints;
XClassHint class_hints;
- char *window_name = WINDOWTITLE_STRING;
- char *icon_name = WINDOWTITLE_STRING;
+ char *window_name = WINDOW
_
TITLE_STRING;
+ char *icon_name = WINDOW
_
TITLE_STRING;
long window_event_mask;
Atom proto_atom = None, delete_atom = None;
#endif
long window_event_mask;
Atom proto_atom = None, delete_atom = None;
#endif
@@
-436,9
+439,11
@@
void InitWindow(int argc, char *argv[])
XFree(iconName.value);
/* Select event types wanted */
XFree(iconName.value);
/* Select event types wanted */
- window_event_mask = ExposureMask | StructureNotifyMask | FocusChangeMask |
- ButtonPressMask | ButtonReleaseMask | ButtonMotionMask |
- KeyPressMask | KeyReleaseMask;
+ window_event_mask =
+ ExposureMask | StructureNotifyMask | FocusChangeMask |
+ ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
+ PointerMotionHintMask | KeyPressMask | KeyReleaseMask;
+
XSelectInput(display, window, window_event_mask);
#endif
XSelectInput(display, window, window_event_mask);
#endif
@@
-538,7
+543,7
@@
void InitGfx()
#endif
LoadGfx(PIX_SMALLFONT,&pic[PIX_SMALLFONT]);
#endif
LoadGfx(PIX_SMALLFONT,&pic[PIX_SMALLFONT]);
- DrawInitText(WINDOWTITLE_STRING,20,FC_YELLOW);
+ DrawInitText(WINDOW
_
TITLE_STRING,20,FC_YELLOW);
DrawInitText(COPYRIGHT_STRING,50,FC_RED);
#ifdef MSDOS
DrawInitText("MSDOS version done by Guido Schulz",210,FC_BLUE);
DrawInitText(COPYRIGHT_STRING,50,FC_RED);
#ifdef MSDOS
DrawInitText("MSDOS version done by Guido Schulz",210,FC_BLUE);
@@
-789,6
+794,13
@@
void LoadGfx(int pos, struct PictureFileInfo *pic)
}
}
}
}
+void InitGadgets()
+{
+ CreateLevelEditorGadgets();
+ CreateGameButtons();
+ CreateTapeButtons();
+}
+
void InitElementProperties()
{
int i,j;
void InitElementProperties()
{
int i,j;
@@
-853,11
+865,13
@@
void InitElementProperties()
EL_AMOEBE_BD,
EL_MORAST_VOLL,
EL_MORAST_LEER,
EL_AMOEBE_BD,
EL_MORAST_VOLL,
EL_MORAST_LEER,
- EL_SIEB_
VOLL
,
+ EL_SIEB_
INAKTIV
,
EL_SIEB_LEER,
EL_SIEB_LEER,
+ EL_SIEB_VOLL,
EL_SIEB_TOT,
EL_SIEB_TOT,
- EL_SIEB2_
VOLL
,
+ EL_SIEB2_
INAKTIV
,
EL_SIEB2_LEER,
EL_SIEB2_LEER,
+ EL_SIEB2_VOLL,
EL_SIEB2_TOT,
EL_LIFE,
EL_LIFE_ASYNC,
EL_SIEB2_TOT,
EL_LIFE,
EL_LIFE_ASYNC,
@@
-883,11
+897,12
@@
void InitElementProperties()
EL_SP_HARD_BASE5,
EL_SP_HARD_BASE6,
EL_SP_TERMINAL,
EL_SP_HARD_BASE5,
EL_SP_HARD_BASE6,
EL_SP_TERMINAL,
- EL_SP_EXIT
+ EL_SP_EXIT,
+ EL_INVISIBLE_STEEL
};
static int ep_solid_num = sizeof(ep_solid)/sizeof(int);
};
static int ep_solid_num = sizeof(ep_solid)/sizeof(int);
- static int ep_massiv[] =
+ static int ep_massiv
e
[] =
{
EL_BETON,
EL_SALZSAEURE,
{
EL_BETON,
EL_SALZSAEURE,
@@
-915,8
+930,9
@@
void InitElementProperties()
EL_SP_HARD_BASE4,
EL_SP_HARD_BASE5,
EL_SP_HARD_BASE6,
EL_SP_HARD_BASE4,
EL_SP_HARD_BASE5,
EL_SP_HARD_BASE6,
+ EL_INVISIBLE_STEEL
};
};
- static int ep_massiv
_num = sizeof(ep_massiv
)/sizeof(int);
+ static int ep_massiv
e_num = sizeof(ep_massive
)/sizeof(int);
static int ep_slippery[] =
{
static int ep_slippery[] =
{
@@
-940,11
+956,13
@@
void InitElementProperties()
EL_BADEWANNE2,
EL_SONDE,
EL_SP_ZONK,
EL_BADEWANNE2,
EL_SONDE,
EL_SP_ZONK,
+ EL_SP_INFOTRON,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
EL_SP_CHIP_UPPER,
EL_SP_CHIP_LOWER,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
EL_SP_CHIP_UPPER,
EL_SP_CHIP_LOWER,
+ EL_SPEED_PILL
};
static int ep_slippery_num = sizeof(ep_slippery)/sizeof(int);
};
static int ep_slippery_num = sizeof(ep_slippery)/sizeof(int);
@@
-1001,7
+1019,8
@@
void InitElementProperties()
EL_SP_HARD_BASE5,
EL_SP_HARD_BASE6,
EL_SP_TERMINAL,
EL_SP_HARD_BASE5,
EL_SP_HARD_BASE6,
EL_SP_TERMINAL,
- EL_SP_EXIT
+ EL_SP_EXIT,
+ EL_INVISIBLE_STEEL
};
static int ep_mauer_num = sizeof(ep_mauer)/sizeof(int);
};
static int ep_mauer_num = sizeof(ep_mauer)/sizeof(int);
@@
-1132,7
+1151,7
@@
void InitElementProperties()
EL_SALZSAEURE,
EL_SP_SNIKSNAK,
EL_SP_ELECTRON,
EL_SALZSAEURE,
EL_SP_SNIKSNAK,
EL_SP_ELECTRON,
- EL_SP_BUG
+ EL_SP_BUG
_ACTIVE
};
static int ep_dont_go_to_num = sizeof(ep_dont_go_to)/sizeof(int);
};
static int ep_dont_go_to_num = sizeof(ep_dont_go_to)/sizeof(int);
@@
-1168,7
+1187,7
@@
void InitElementProperties()
EL_FELSBODEN,
EL_FELSBROCKEN,
EL_EDELSTEIN_BD,
EL_FELSBODEN,
EL_FELSBROCKEN,
EL_EDELSTEIN_BD,
- EL_SIEB2_
LEER
,
+ EL_SIEB2_
INAKTIV
,
EL_AUSGANG_ZU,
EL_AUSGANG_AUF,
EL_BETON,
EL_AUSGANG_ZU,
EL_AUSGANG_AUF,
EL_BETON,
@@
-1195,7
+1214,8
@@
void InitElementProperties()
EL_SOKOBAN_OBJEKT,
EL_SOKOBAN_FELD_LEER,
EL_SOKOBAN_FELD_VOLL,
EL_SOKOBAN_OBJEKT,
EL_SOKOBAN_FELD_LEER,
EL_SOKOBAN_FELD_VOLL,
- EL_SPIELFIGUR
+ EL_SPIELFIGUR,
+ EL_INVISIBLE_STEEL
};
static int ep_sb_element_num = sizeof(ep_sb_element)/sizeof(int);
};
static int ep_sb_element_num = sizeof(ep_sb_element)/sizeof(int);
@@
-1256,7
+1276,9
@@
void InitElementProperties()
EL_BADEWANNE3,
EL_BADEWANNE4,
EL_BADEWANNE5,
EL_BADEWANNE3,
EL_BADEWANNE4,
EL_BADEWANNE5,
+ EL_SIEB_INAKTIV,
EL_SIEB_TOT,
EL_SIEB_TOT,
+ EL_SIEB2_INAKTIV,
EL_SIEB2_TOT,
EL_AMOEBA2DIAM,
EL_BLOCKED,
EL_SIEB2_TOT,
EL_AMOEBA2DIAM,
EL_BLOCKED,
@@
-1275,7
+1297,6
@@
void InitElementProperties()
EL_SP_PORT_XY,
EL_SP_DISK_RED,
EL_SP_DISK_YELLOW,
EL_SP_PORT_XY,
EL_SP_DISK_RED,
EL_SP_DISK_YELLOW,
- EL_SP_TERMINAL,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
@@
-1292,8
+1313,8
@@
void InitElementProperties()
EL_SP_HARD_BASE4,
EL_SP_HARD_BASE5,
EL_SP_HARD_BASE6,
EL_SP_HARD_BASE4,
EL_SP_HARD_BASE5,
EL_SP_HARD_BASE6,
- EL_SP_
TERMINAL
,
- EL_
SP_EXIT
+ EL_SP_
EXIT
,
+ EL_
INVISIBLE_STEEL
};
static int ep_inactive_num = sizeof(ep_inactive)/sizeof(int);
};
static int ep_inactive_num = sizeof(ep_inactive)/sizeof(int);
@@
-1374,6
+1395,51
@@
void InitElementProperties()
};
static int ep_eatable_num = sizeof(ep_eatable)/sizeof(int);
};
static int ep_eatable_num = sizeof(ep_eatable)/sizeof(int);
+ static int ep_sp_element[] =
+ {
+ EL_SP_EMPTY,
+ EL_SP_ZONK,
+ EL_SP_BASE,
+ EL_SP_MURPHY,
+ EL_SP_INFOTRON,
+ EL_SP_CHIP_SINGLE,
+ EL_SP_HARD_GRAY,
+ EL_SP_EXIT,
+ EL_SP_DISK_ORANGE,
+ EL_SP_PORT1_RIGHT,
+ EL_SP_PORT1_DOWN,
+ EL_SP_PORT1_LEFT,
+ EL_SP_PORT1_UP,
+ EL_SP_PORT2_RIGHT,
+ EL_SP_PORT2_DOWN,
+ EL_SP_PORT2_LEFT,
+ EL_SP_PORT2_UP,
+ EL_SP_SNIKSNAK,
+ EL_SP_DISK_YELLOW,
+ EL_SP_TERMINAL,
+ EL_SP_DISK_RED,
+ EL_SP_PORT_Y,
+ EL_SP_PORT_X,
+ EL_SP_PORT_XY,
+ EL_SP_ELECTRON,
+ EL_SP_BUG,
+ EL_SP_CHIP_LEFT,
+ EL_SP_CHIP_RIGHT,
+ EL_SP_HARD_BASE1,
+ EL_SP_HARD_GREEN,
+ EL_SP_HARD_BLUE,
+ EL_SP_HARD_RED,
+ EL_SP_HARD_YELLOW,
+ EL_SP_HARD_BASE2,
+ EL_SP_HARD_BASE3,
+ EL_SP_HARD_BASE4,
+ EL_SP_HARD_BASE5,
+ EL_SP_HARD_BASE6,
+ EL_SP_CHIP_UPPER,
+ EL_SP_CHIP_LOWER
+ };
+ static int ep_sp_element_num = sizeof(ep_sp_element)/sizeof(int);
+
static long ep_bit[] =
{
EP_BIT_AMOEBALIVE,
static long ep_bit[] =
{
EP_BIT_AMOEBALIVE,
@@
-1381,7
+1447,7
@@
void InitElementProperties()
EP_BIT_SCHLUESSEL,
EP_BIT_PFORTE,
EP_BIT_SOLID,
EP_BIT_SCHLUESSEL,
EP_BIT_PFORTE,
EP_BIT_SOLID,
- EP_BIT_MASSIV,
+ EP_BIT_MASSIV
E
,
EP_BIT_SLIPPERY,
EP_BIT_ENEMY,
EP_BIT_MAUER,
EP_BIT_SLIPPERY,
EP_BIT_ENEMY,
EP_BIT_MAUER,
@@
-1402,7
+1468,8
@@
void InitElementProperties()
EP_BIT_PUSHABLE,
EP_BIT_PLAYER,
EP_BIT_HAS_CONTENT,
EP_BIT_PUSHABLE,
EP_BIT_PLAYER,
EP_BIT_HAS_CONTENT,
- EP_BIT_EATABLE
+ EP_BIT_EATABLE,
+ EP_BIT_SP_ELEMENT
};
static int *ep_array[] =
{
};
static int *ep_array[] =
{
@@
-1411,7
+1478,7
@@
void InitElementProperties()
ep_schluessel,
ep_pforte,
ep_solid,
ep_schluessel,
ep_pforte,
ep_solid,
- ep_massiv,
+ ep_massiv
e
,
ep_slippery,
ep_enemy,
ep_mauer,
ep_slippery,
ep_enemy,
ep_mauer,
@@
-1432,7
+1499,8
@@
void InitElementProperties()
ep_pushable,
ep_player,
ep_has_content,
ep_pushable,
ep_player,
ep_has_content,
- ep_eatable
+ ep_eatable,
+ ep_sp_element
};
static int *ep_num[] =
{
};
static int *ep_num[] =
{
@@
-1441,7
+1509,7
@@
void InitElementProperties()
&ep_schluessel_num,
&ep_pforte_num,
&ep_solid_num,
&ep_schluessel_num,
&ep_pforte_num,
&ep_solid_num,
- &ep_massiv_num,
+ &ep_massiv
e
_num,
&ep_slippery_num,
&ep_enemy_num,
&ep_mauer_num,
&ep_slippery_num,
&ep_enemy_num,
&ep_mauer_num,
@@
-1462,7
+1530,8
@@
void InitElementProperties()
&ep_pushable_num,
&ep_player_num,
&ep_has_content_num,
&ep_pushable_num,
&ep_player_num,
&ep_has_content_num,
- &ep_eatable_num
+ &ep_eatable_num,
+ &ep_sp_element_num
};
static int num_properties = sizeof(ep_num)/sizeof(int *);
};
static int num_properties = sizeof(ep_num)/sizeof(int *);