#include "sound.h"
#include "screens.h"
#include "editor.h"
+#include "game.h"
+#include "tape.h"
#include "tools.h"
#include "files.h"
#include "joystick.h"
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[])
InitSoundServer();
InitJoysticks();
InitRND(NEW_RANDOMIZE);
- InitLevelEditorGadgets();
signal(SIGINT, CloseAllAndExit);
signal(SIGTERM, CloseAllAndExit);
InitGfx();
InitElementProperties();
+ InitGadgets();
DrawMainMenu();
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
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
{ GFX_SPIELER4_RIGHT, 4 },
{ GFX_SPIELER4_PUSH_LEFT, 4 },
{ GFX_SPIELER4_PUSH_RIGHT, 4 },
+ { GFX_SP_MURPHY, 1 },
+ { GFX_MURPHY_GO_LEFT, 3 },
+ { GFX_MURPHY_GO_RIGHT, 3 },
+ { GFX_MURPHY_SNAP_UP, 1 },
+ { GFX_MURPHY_SNAP_DOWN, 1 },
+ { GFX_MURPHY_SNAP_RIGHT, 1 },
+ { GFX_MURPHY_SNAP_LEFT, 1 },
+ { GFX_MURPHY_PUSH_RIGHT, 1 },
+ { GFX_MURPHY_PUSH_LEFT, 1 },
{ GFX_GEBLUBBER, 4 },
{ GFX_DYNAMIT, 7 },
{ GFX_DYNABOMB, 4 },
#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);
int src_x, src_y;
Pixmap src_pixmap;
+#if 0
if (graphic >= GFX_START_ROCKSSCREEN &&
graphic <= GFX_END_ROCKSSCREEN)
{
}
else
break;
+#else
+
+ int pixmap_nr;
+
+ getGraphicSource(graphic, &pixmap_nr, &src_x, &src_y);
+ src_pixmap = clipmask[pixmap_nr];
+
+#endif
tile_clipmask[tile] = XCreatePixmap(display, window, TILEX,TILEY, 1);
}
}
+void InitGadgets()
+{
+ CreateLevelEditorGadgets();
+ CreateGameButtons();
+ CreateTapeButtons();
+ CreateToolButtons();
+}
+
void InitElementProperties()
{
int i,j;
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_massiv[] =
+ static int ep_massive[] =
{
EL_BETON,
EL_SALZSAEURE,
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_massive_num = sizeof(ep_massive)/sizeof(int);
static int ep_slippery[] =
{
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);
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);
EL_SP_HARD_BASE4,
EL_SP_HARD_BASE5,
EL_SP_HARD_BASE6,
- EL_SP_EXIT
+ EL_SP_EXIT,
+ EL_INVISIBLE_STEEL
};
static int ep_inactive_num = sizeof(ep_inactive)/sizeof(int);
EP_BIT_SCHLUESSEL,
EP_BIT_PFORTE,
EP_BIT_SOLID,
- EP_BIT_MASSIV,
+ EP_BIT_MASSIVE,
EP_BIT_SLIPPERY,
EP_BIT_ENEMY,
EP_BIT_MAUER,
ep_schluessel,
ep_pforte,
ep_solid,
- ep_massiv,
+ ep_massive,
ep_slippery,
ep_enemy,
ep_mauer,
&ep_schluessel_num,
&ep_pforte_num,
&ep_solid_num,
- &ep_massiv_num,
+ &ep_massive_num,
&ep_slippery_num,
&ep_enemy_num,
&ep_mauer_num,