mirror of
https://github.com/jummy0/sb2-decomp
synced 2025-03-14 20:23:30 +01:00
1395 lines
29 KiB
C++
1395 lines
29 KiB
C++
// Def.h
|
|
//
|
|
|
|
#ifndef DEF_H
|
|
#define DEF_H
|
|
|
|
#include <windows.h>
|
|
|
|
// prevent WinAPI from overriding our functions
|
|
#undef PlaySound
|
|
#undef DrawText
|
|
#undef GetCharWidth
|
|
|
|
#define _DEMO FALSE // TRUE=demo, FALSE=complet
|
|
#define _EGAMES FALSE // TRUE version pour eGames
|
|
#define _SE FALSE // TRUE eGames Special Edition
|
|
#define _INTRO FALSE // TRUE si images d'introduction
|
|
|
|
// additional flags
|
|
#define _CD FALSE // if TRUE, require the game CD
|
|
#define _BYE !_EGAMES // if TRUE, show exit image (like _INTRO)
|
|
#define _LEGACY FALSE // if TRUE, keep broken/quirky legacy code
|
|
#define _DREAM TRUE // if TRUE, allow Dream blocks when loading levels
|
|
#define _BASS TRUE // if TRUE, use BASS audio library instead of DirectMusic (wip)
|
|
|
|
#define MAXGAMER 8
|
|
#define MAXNETPLAYER 4
|
|
#define MAXTEAM 4
|
|
#define MAXNETMESSAGE 20
|
|
#define MAXSESSION 100
|
|
#define MAXMOVEOBJECT 200
|
|
#define MAXNOTIF 5
|
|
#define MAXFIFOPOS 10
|
|
#define MAXCHAT 6
|
|
#define MAXSAVE 6
|
|
#define LIFT_RANGE_Y 30
|
|
#define MAXDEMO 9999
|
|
#define MAXINDEX 20
|
|
|
|
#define LXIMAGE 640 // dimensions de la fenêtre de jeu
|
|
#define LYIMAGE 480
|
|
|
|
#define POSDRAWX 0
|
|
#define POSDRAWY 0
|
|
|
|
#define MAXCELX 100 // nb max de cellules d'un monde
|
|
#define MAXCELY 100
|
|
|
|
#define DIMOBJX 64 // dimensions d'un objet
|
|
#define DIMOBJY 64
|
|
|
|
#define DIMEXPLOX 128
|
|
#define DIMEXPLOY 128
|
|
|
|
#define DIMBLUPIX 60 // dimensions de blupi
|
|
#define DIMBLUPIY 60
|
|
|
|
#define DIMEXPLOX 128
|
|
#define DIMEXPLOY 128
|
|
|
|
#define DIMBUTTONX 40 // dimensions d'un button
|
|
#define DIMBUTTONY 40
|
|
|
|
#define DIMJAUGEX 124 // dimensions de la jauge
|
|
#define DIMJAUGEY 22
|
|
|
|
#define DIMTEXTX 16 // dimensions max d'un caractère
|
|
#define DIMTEXTY 16
|
|
|
|
#define DIMLITTLEX 16 // dimensions max d'un petit caractère
|
|
#define DIMLITTLEY 12
|
|
|
|
#define DIMDECORX 640
|
|
#define DIMDECORY 480
|
|
|
|
enum {
|
|
CHBACK = 0,
|
|
CHOBJECT,
|
|
CHBLUPI,
|
|
CHDECOR,
|
|
CHBUTTON,
|
|
CHJAUGE,
|
|
CHTEXT,
|
|
CHLITTLE,
|
|
CHMAP,
|
|
CHEXPLO,
|
|
CHELEMENT,
|
|
CHBLUPI1,
|
|
CHBLUPI2,
|
|
CHBLUPI3,
|
|
CHTEMP,
|
|
CHMAX = CHTEMP
|
|
};
|
|
|
|
enum {
|
|
MESS_RESUME = 0,
|
|
MESS_PAUSE,
|
|
MESS_2,
|
|
MESS_3,
|
|
MESS_LOBBY,
|
|
MESS_5,
|
|
MESS_6,
|
|
MESS_7,
|
|
MESS_LEAVE,
|
|
MESS_LOST,
|
|
MESS_START,
|
|
MESS_11,
|
|
MESS_PAUSE2,
|
|
|
|
MESS_OBJECTSTART = 20,
|
|
MESS_OBJECTDELETE,
|
|
|
|
MESS_MODIFDECOR = 30,
|
|
|
|
MESS_PLAYSOUND = 40,
|
|
MESS_STOPSOUND,
|
|
|
|
MESS_ASCENSEURSTART = 50,
|
|
MESS_ASCENSEUREND,
|
|
|
|
MESS_STOPCLOUD = 60
|
|
};
|
|
|
|
#define MAXNETMESSAGE 20
|
|
|
|
// Directions :
|
|
|
|
enum {
|
|
DIR_LEFT = 1,
|
|
DIR_RIGHT
|
|
};
|
|
|
|
// Actions :
|
|
|
|
#define ACTION_STOP 1 // stand still
|
|
#define ACTION_MARCH 2 // walk
|
|
#define ACTION_TURN 3
|
|
#define ACTION_JUMP 4 // beginning to jump
|
|
#define ACTION_AIR 5
|
|
#define ACTION_DOWN 6 // look down
|
|
#define ACTION_UP 7 // look up
|
|
#define ACTION_VERTIGO 8 // "whoops"
|
|
#define ACTION_RECEDE 9 // back away from edge
|
|
#define ACTION_ADVANCE 10 // walk forward away from edge
|
|
#define ACTION_CLEAR1 11
|
|
#define ACTION_SET 12
|
|
#define ACTION_WIN 13
|
|
#define ACTION_PUSH 14 // pushing a case
|
|
#define ACTION_STOPHELICO 15
|
|
#define ACTION_MARCHHELICO 16
|
|
#define ACTION_TURNHELICO 17
|
|
#define ACTION_STOPNAGE 18 // stopped in deep water
|
|
#define ACTION_MARCHNAGE 19 // swimming in deep water
|
|
#define ACTION_TURNNAGE 20 // turning in deep water
|
|
#define ACTION_STOPSURF 21 // stopped on water surface
|
|
#define ACTION_MARCHSURF 22 // swimming at water surface
|
|
#define ACTION_TURNSURF 23 // turning at water surface
|
|
#define ACTION_DROWN 24
|
|
#define ACTION_STOPJEEP 25
|
|
#define ACTION_MARCHJEEP 26
|
|
#define ACTION_TURNJEEP 27
|
|
#define ACTION_STOPPOP 28 // pulling a case, stopped
|
|
#define ACTION_POP 29 // pulling a case
|
|
#define ACTION_BYE 30 // "au au"
|
|
#define ACTION_STOPSUSPEND 31 // stopped on bars
|
|
#define ACTION_MARCHSUSPEND 32 // moving on bars
|
|
#define ACTION_TURNSUSPEND 33 // turning on bars
|
|
#define ACTION_JUMPSUSPEND 34 // pulling up from bars
|
|
#define ACTION_HIDE 35 // invisible
|
|
#define ACTION_JUMPAIE 36 // headache
|
|
#define ACTION_STOPSKATE 37
|
|
#define ACTION_MARCHSKATE 38
|
|
#define ACTION_TURNSKATE 39
|
|
#define ACTION_JUMPSKATE 40
|
|
#define ACTION_AIRSKATE 41
|
|
#define ACTION_TAKESKATE 42
|
|
#define ACTION_DEPOSESKATE 43
|
|
#define ACTION_OUF1a 44
|
|
#define ACTION_OUF1b 45
|
|
#define ACTION_OUF2 46
|
|
#define ACTION_OUF3 47 // stop moving case "gahh...!"
|
|
#define ACTION_OUF4 48
|
|
#define ACTION_SUCETTE 49 // eating lollipop
|
|
#define ACTION_STOPTANK 50
|
|
#define ACTION_MARCHTANK 51
|
|
#define ACTION_TURNTANK 52
|
|
#define ACTION_FIRETANK 53
|
|
#define ACTION_GLU 54 // glued
|
|
#define ACTION_DRINK 55
|
|
#define ACTION_CHARGE 56
|
|
#define ACTION_ELECTRO 57
|
|
#define ACTION_HELICOGLU 58
|
|
#define ACTION_TURNAIR 59
|
|
#define ACTION_STOPMARCH 60
|
|
#define ACTION_STOPJUMP 61
|
|
#define ACTION_STOPJUMPh 62
|
|
#define ACTION_MOCKERY 63
|
|
#define ACTION_MOCKERYi 64
|
|
#define ACTION_OUF5 65
|
|
#define ACTION_BALLOON 66 // stung by wasp
|
|
#define ACTION_STOPOVER 67 // stopped in hovercraft
|
|
#define ACTION_MARCHOVER 68 // moving in hovercraft
|
|
#define ACTION_TURNOVER 69 // turning in hovercraft
|
|
#define ACTION_RECEDEq 70
|
|
#define ACTION_ADVANCEq 71
|
|
#define ACTION_STOPECRASE 72
|
|
#define ACTION_MARCHECRASE 73
|
|
#define ACTION_TELEPORTE 74
|
|
#define ACTION_CLEAR2 75
|
|
#define ACTION_CLEAR3 76
|
|
#define ACTION_CLEAR4 77
|
|
#define ACTION_CLEAR5 78
|
|
#define ACTION_CLEAR6 79
|
|
#define ACTION_CLEAR7 80
|
|
#define ACTION_CLEAR8 81
|
|
#define ACTION_SWITCH 82
|
|
#define ACTION_MOCKERYp 83
|
|
#define ACTION_NON 84 // can't place personal bomb
|
|
#define ACTION_SLOWDOWNSKATE 85
|
|
#define ACTION_TAKEDYNAMITE 86
|
|
#define ACTION_PUTDYNAMITE 87
|
|
|
|
// Sécurités :
|
|
|
|
enum {
|
|
SEC_SHIELD = 1,
|
|
SEC_POWER,
|
|
SEC_CLOUD,
|
|
SEC_HIDE
|
|
};
|
|
|
|
static char debugMobTypeNames[204][20] =
|
|
{
|
|
"-",
|
|
"ascenseur",
|
|
"bombedown",
|
|
"bombeup",
|
|
"bulldozer",
|
|
"tresor",
|
|
"egg",
|
|
"goal",
|
|
"explo1",
|
|
"explo2",
|
|
"explo3",
|
|
"explo4",
|
|
"caisse",
|
|
"helico",
|
|
"plouf",
|
|
"blup",
|
|
"bombemove",
|
|
"poisson",
|
|
"tomates",
|
|
"jeep",
|
|
"oiseau",
|
|
"cle",
|
|
"door",
|
|
"balle",
|
|
"skate",
|
|
"shield",
|
|
"power",
|
|
"magictrack",
|
|
"tank",
|
|
"bullet",
|
|
"drink",
|
|
"charge",
|
|
"blupihelico",
|
|
"blupitank",
|
|
"glu",
|
|
"tiplouf",
|
|
"pollution",
|
|
"clear",
|
|
"electro",
|
|
"tresortrack",
|
|
"invert",
|
|
"invertstart",
|
|
"invertstop",
|
|
"?????? (43)",
|
|
"guepe",
|
|
"?????? (45)",
|
|
"over",
|
|
"ascenseur s",
|
|
"ascenseur si",
|
|
"cle1",
|
|
"cle2",
|
|
"cle3",
|
|
"bridge",
|
|
"tentacule",
|
|
"creature",
|
|
"dynamite",
|
|
"dynamite f",
|
|
"shieldtrack",
|
|
"hidetrack",
|
|
"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",
|
|
"explo5",
|
|
"explo6",
|
|
"explo7",
|
|
"explo8",
|
|
"explo9",
|
|
"explo10",
|
|
"bombefollow1",
|
|
"bombefollow2",
|
|
"sploutch1",
|
|
"sploutch2",
|
|
"sploutch3",
|
|
"","","","","","","","","","",
|
|
"","","","","","","","","","",
|
|
"","","","","","","","","","",
|
|
"","","","","","","","","","",
|
|
"","","","","","","","","","",
|
|
"","","","","","","","","","",
|
|
"","","","","","","","","","",
|
|
"","","","","","","","","","",
|
|
"","","","","","","","","","",
|
|
"","","","","","","","","",
|
|
"bombeperso1",
|
|
"bombeperso2",
|
|
"bombeperso3",
|
|
"bombeperso4"
|
|
};
|
|
|
|
// Types :
|
|
|
|
#define TYPE_ASCENSEUR 1 // lift
|
|
#define TYPE_BOMBEDOWN 2 // floor bomb
|
|
#define TYPE_BOMBEUP 3 // hanging bomb
|
|
#define TYPE_BULLDOZER 4
|
|
#define TYPE_TRESOR 5
|
|
#define TYPE_EGG 6
|
|
#define TYPE_GOAL 7
|
|
#define TYPE_EXPLO1 8
|
|
#define TYPE_EXPLO2 9
|
|
#define TYPE_EXPLO3 10
|
|
#define TYPE_EXPLO4 11
|
|
#define TYPE_CAISSE 12
|
|
#define TYPE_HELICO 13
|
|
#define TYPE_PLOUF 14
|
|
#define TYPE_BLUP 15
|
|
#define TYPE_BOMBEMOVE 16
|
|
#define TYPE_POISSON 17 // fish
|
|
#define TYPE_TOMATES 18 // unused
|
|
#define TYPE_JEEP 19
|
|
#define TYPE_OISEAU 20 // bird
|
|
#define TYPE_CLE 21 // gold key
|
|
#define TYPE_DOOR 22
|
|
#define TYPE_BALLE 23 // glue ball
|
|
#define TYPE_SKATE 24
|
|
#define TYPE_SHIELD 25
|
|
#define TYPE_POWER 26 // lollipop
|
|
#define TYPE_MAGICTRACK 27 // sparkles
|
|
#define TYPE_TANK 28
|
|
#define TYPE_BULLET 29
|
|
#define TYPE_DRINK 30
|
|
#define TYPE_CHARGE 31 // charging device
|
|
#define TYPE_BLUPIHELICO 32
|
|
#define TYPE_BLUPITANK 33
|
|
#define TYPE_GLU 34
|
|
#define TYPE_TIPLOUF 35
|
|
#define TYPE_POLLUTION 36
|
|
#define TYPE_CLEAR 37 // burned blupi
|
|
#define TYPE_ELECTRO 38 // shocked blupi
|
|
#define TYPE_TRESORTRACK 39 // sparkles
|
|
#define TYPE_INVERT 40
|
|
#define TYPE_INVERTSTART 41
|
|
#define TYPE_INVERTSTOP 42
|
|
#define TYPE_GUEPE 44 // wasp
|
|
#define TYPE_OVER 46 // hovercraft
|
|
#define TYPE_ASCENSEURs 47 // conveyor belt right
|
|
#define TYPE_ASCENSEURsi 48 // conveyor belt left
|
|
#define TYPE_CLE1 49 // red key
|
|
#define TYPE_CLE2 50 // green key
|
|
#define TYPE_CLE3 51 // blue key
|
|
#define TYPE_BRIDGE 52 // fragile bridge
|
|
#define TYPE_TENTACULE 53 // slime tentacle effect
|
|
#define TYPE_CREATURE 54 // moving slime creature
|
|
#define TYPE_DYNAMITE 55
|
|
#define TYPE_DYNAMITEf 56 // lit dynamite
|
|
#define TYPE_SHIELDTRACK 57 // particles
|
|
#define TYPE_HIDETRACK 58 // particles
|
|
#define TYPE_EXPLO5 90
|
|
#define TYPE_EXPLO6 91
|
|
#define TYPE_EXPLO7 92
|
|
#define TYPE_EXPLO8 93
|
|
#define TYPE_EXPLO9 94
|
|
#define TYPE_EXPLO10 95
|
|
#define TYPE_BOMBEFOLLOW1 96 // homing bomb, stopped
|
|
#define TYPE_BOMBEFOLLOW2 97 // homing bomb, moving
|
|
#define TYPE_SPLOUTCH1 98 // particles
|
|
#define TYPE_SPLOUTCH2 99 // particles
|
|
#define TYPE_SPLOUTCH3 100 // particles
|
|
#define TYPE_BOMBEPERSO1 200 // player 1 personal bomb (yellow)
|
|
#define TYPE_BOMBEPERSO2 201 // player 2 personal bomb (orange)
|
|
#define TYPE_BOMBEPERSO3 202 // player 3 personal bomb (blue)
|
|
#define TYPE_BOMBEPERSO4 203 // player 4 personal bomb (green)
|
|
|
|
// Steps :
|
|
|
|
enum {
|
|
STEP_STOPSTART = 1,
|
|
STEP_ADVANCE,
|
|
STEP_STOPEND,
|
|
STEP_RECEDE
|
|
};
|
|
|
|
// Sons :
|
|
|
|
#define SOUND_CLICK 0
|
|
#define SOUND_JUMP1 1 // medium jump
|
|
#define SOUND_JUMP2 2 // high jump
|
|
#define SOUND_JUMPEND 3 // step on stone
|
|
#define SOUND_JUMPTOC 4 // hit stone
|
|
#define SOUND_TURN 5
|
|
#define SOUND_VERTIGO 6 // "whoops"
|
|
#define SOUND_DOWN 7 // look down
|
|
#define SOUND_FALL 8
|
|
#define SOUND_NEW 9 // respawn
|
|
#define SOUND_BOUM 10
|
|
#define SOUND_TRESOR 11
|
|
#define SOUND_EGG 12
|
|
#define SOUND_ENDKO 13
|
|
#define SOUND_ENDOK 14
|
|
#define SOUND_HELICOSTART 15
|
|
#define SOUND_HELICOHIGH 16
|
|
#define SOUND_HELICOSTOP 17
|
|
#define SOUND_HELICOLOW 18
|
|
#define SOUND_LASTTRESOR 19
|
|
#define SOUND_UP 20 // partially unused sound when pressing left+right+down
|
|
#define SOUND_LOOKUP 21
|
|
#define SOUND_JUMP0 22 // low jump
|
|
#define SOUND_PLOUF 23
|
|
#define SOUND_BLUP 24
|
|
#define SOUND_SURF 25 // inhale
|
|
#define SOUND_DROWN 26
|
|
#define SOUND_ERROR 27
|
|
#define SOUND_JEEPSTART 28
|
|
#define SOUND_JEEPHIGH 29
|
|
#define SOUND_JEEPSTOP 30
|
|
#define SOUND_JEEPLOW 31
|
|
#define SOUND_BYE 32 // "au au"
|
|
#define SOUND_DOOR 33 // door creak
|
|
#define SOUND_SUSPENDTOC 34 // grab bar
|
|
#define SOUND_SUSPENDJUMP 35 // pull up from bar
|
|
#define SOUND_SINGE 36
|
|
#define SOUND_PATIENT 37
|
|
#define SOUND_PUSH 38 // pushing crate
|
|
#define SOUND_POP 39 // pulling crate
|
|
#define SOUND_JUMPAIE 40 // headache "aie"
|
|
#define SOUND_RESSORT 41 // spring
|
|
#define SOUND_STARTSHIELD 42
|
|
#define SOUND_STOPSHIELD 43
|
|
#define SOUND_STARTPOWER 44 // lollipop activate
|
|
#define SOUND_STOPPOWER 45 // lollipop deactivate
|
|
#define SOUND_OUF1 46 // exit water "phew"
|
|
#define SOUND_OUF2 47 // scared "huaaaahhhhh--!"
|
|
#define SOUND_OUF3 48 // stop moving case "gahh...!"
|
|
#define SOUND_OUF4 49 // shriek, heartbeat
|
|
#define SOUND_SUCETTE 50 // lick lollipop
|
|
#define SOUND_GLU 51 // buaaaaaaaaaaaah
|
|
#define SOUND_FIREOK 52
|
|
#define SOUND_FIREKO 53 // ratchet
|
|
#define SOUND_TAKEGLU 54
|
|
#define SOUND_STARTCLOUD 55
|
|
#define SOUND_STOPCLOUD 56
|
|
#define SOUND_DRINK 57
|
|
#define SOUND_CHARGE 58
|
|
#define SOUND_ELECTRO 59
|
|
#define SOUND_PERSOTAKE 60 // "wow!"
|
|
#define SOUND_PERSOPOSE 61 // *evil laugh*
|
|
#define SOUND_STARTHIDE 62
|
|
#define SOUND_STOPHIDE 63
|
|
#define SOUND_TIPLOUF 64 // light splash
|
|
#define SOUND_MOCKERY 65
|
|
#define SOUND_INVERTSTART 66
|
|
#define SOUND_INVERTSTOP 67
|
|
#define SOUND_OVERSTOP 68 // hovercraft stall
|
|
#define SOUND_BLITZ 69 // lightning buzz
|
|
#define SOUND_ECRASE 70
|
|
#define SOUND_TELEPORTE 71
|
|
#define SOUND_BRIDGE1 72 // bridge fall
|
|
#define SOUND_BRIDGE2 73 // bridge appear
|
|
#define SOUND_ANGEL 74 // "uie uie uie, aie aie aie"
|
|
#define SOUND_SCIE 75 // saw
|
|
#define SOUND_SWITCHOFF 76
|
|
#define SOUND_SWITCHON 77
|
|
#define SOUND_JUMPENDb 78 // step on wood
|
|
#define SOUND_JUMPTOCb 79 // hit wood
|
|
#define SOUND_JUMPENDm 80 // step on metal
|
|
#define SOUND_JUMPTOCm 81 // hit metal
|
|
#define SOUND_JUMPENDg 82 // step on cave
|
|
#define SOUND_JUMPTOCg 83 // hit cave
|
|
#define SOUND_JUMPENDo 84 // step on slime
|
|
#define SOUND_JUMPTOCo 85 // hit slime
|
|
#define SOUND_JUMPENDk 86 // step on plastic
|
|
#define SOUND_JUMPTOCk 87 // hit plastic
|
|
#define SOUND_JUMPENDf 88 // step on cheese
|
|
#define SOUND_JUMPTOCf 89 // hit cheese
|
|
#define SOUND_JUMPENDh 90 // step on grass
|
|
#define SOUND_JUMPTOCh 91 // hit grass
|
|
#define SOUND_FOLLOW 92 // homing bomb "be-be-beep"
|
|
#define SOUND_MOVIE 99
|
|
|
|
//
|
|
|
|
enum {
|
|
KEY_NONE = 0,
|
|
KEY_LEFT = 1,
|
|
KEY_RIGHT = 2,
|
|
KEY_UP = 4,
|
|
KEY_DOWN = 8,
|
|
KEY_JUMP = 16,
|
|
KEY_FIRE = 32
|
|
};
|
|
|
|
// Boutons (play) :
|
|
|
|
#define MAXBUTTON 40
|
|
|
|
// Lutins pour la souris
|
|
|
|
#define SPRITE_ARROW 1
|
|
#define SPRITE_POINTER 2
|
|
#define SPRITE_ARROWU 3
|
|
#define SPRITE_ARROWD 4
|
|
#define SPRITE_ARROWL 5
|
|
#define SPRITE_ARROWR 6
|
|
#define SPRITE_ARROWUL 7
|
|
#define SPRITE_ARROWUR 8
|
|
#define SPRITE_ARROWDL 9
|
|
#define SPRITE_ARROWDR 10
|
|
#define SPRITE_WAIT 11
|
|
#define SPRITE_EMPTY 12
|
|
#define SPRITE_DISABLE 13
|
|
|
|
|
|
// User define message
|
|
|
|
enum {
|
|
WM_UPDATE = WM_USER + 1,
|
|
|
|
WM_DECOR1 = WM_USER + 20,
|
|
WM_DECOR2,
|
|
WM_DECOR3,
|
|
WM_DECOR4,
|
|
WM_DECOR5,
|
|
WM_DECOR6,
|
|
WM_DECOR7,
|
|
WM_DECOR8,
|
|
WM_DECOR9,
|
|
WM_DECOR10,
|
|
WM_DECOR11,
|
|
|
|
WM_BUTTON0 = WM_USER + 200,
|
|
WM_BUTTON1,
|
|
WM_BUTTON2,
|
|
WM_BUTTON3,
|
|
WM_BUTTON4,
|
|
WM_BUTTON5,
|
|
WM_BUTTON6,
|
|
WM_BUTTON7,
|
|
WM_BUTTON8,
|
|
WM_BUTTON9,
|
|
WM_BUTTON10,
|
|
WM_BUTTON11,
|
|
WM_BUTTON12,
|
|
WM_BUTTON13,
|
|
WM_BUTTON14,
|
|
WM_BUTTON15,
|
|
WM_BUTTON16,
|
|
WM_BUTTON17,
|
|
WM_BUTTON18,
|
|
WM_BUTTON19,
|
|
WM_BUTTON20,
|
|
WM_BUTTON21,
|
|
WM_BUTTON22,
|
|
WM_BUTTON23,
|
|
WM_BUTTON24,
|
|
WM_BUTTON25,
|
|
WM_BUTTON26,
|
|
WM_BUTTON27,
|
|
WM_BUTTON28,
|
|
WM_BUTTON29,
|
|
WM_BUTTON30,
|
|
WM_BUTTON31,
|
|
WM_BUTTON32,
|
|
WM_BUTTON33,
|
|
WM_BUTTON34,
|
|
WM_BUTTON35,
|
|
WM_BUTTON36,
|
|
WM_BUTTON37,
|
|
WM_BUTTON38,
|
|
WM_BUTTON39,
|
|
|
|
WM_DIMS1 = WM_USER + 241,
|
|
WM_DIMS2,
|
|
WM_DIMS3,
|
|
WM_DIMS4,
|
|
|
|
WM_READ0 = WM_USER + 300,
|
|
WM_READ1,
|
|
WM_READ2,
|
|
WM_READ3,
|
|
WM_READ4,
|
|
WM_READ5,
|
|
WM_READ6,
|
|
WM_READ7,
|
|
WM_READ8,
|
|
WM_READ9,
|
|
WM_WRITE0,
|
|
WM_WRITE1,
|
|
WM_WRITE2,
|
|
WM_WRITE3,
|
|
WM_WRITE4,
|
|
WM_WRITE5,
|
|
WM_WRITE6,
|
|
WM_WRITE7,
|
|
WM_WRITE8,
|
|
WM_WRITE9,
|
|
|
|
WM_PHASE_INIT = WM_USER + 500,
|
|
WM_PHASE_PLAY,
|
|
WM_PHASE_BUILD,
|
|
WM_PHASE_NAMEGAMER,
|
|
WM_PHASE_CLEARGAMER,
|
|
WM_PHASE_INFO,
|
|
WM_PHASE_PLAYTEST,
|
|
WM_PHASE_1531,
|
|
WM_PHASE_WIN,
|
|
WM_PHASE_LOST,
|
|
WM_PHASE_SETUP,
|
|
WM_PHASE_MUSIC,
|
|
WM_PHASE_PLAYMOVIE,
|
|
WM_PHASE_WINMOVIE,
|
|
WM_PHASE_1539,
|
|
WM_PHASE_DOPLAY, // do singleplayer
|
|
WM_PHASE_LASTWIN, // PB vestige
|
|
WM_PHASE_SETUPp,
|
|
WM_PHASE_REGION,
|
|
WM_PHASE_INSERT,
|
|
WM_PHASE_QUITPLAYTEST,
|
|
WM_PHASE_GAMER,
|
|
WM_PHASE_WINDESIGN,
|
|
WM_PHASE_LOSTDESIGN,
|
|
WM_PHASE_WINMOVIEDESIGN,
|
|
WM_PHASE_LOSTMULTI,
|
|
WM_PHASE_WINMULTI,
|
|
WM_PHASE_WINMOVIEMULTI,
|
|
WM_PHASE_TESTCD,
|
|
WM_PHASE_MANUEL,
|
|
WM_PHASE_PRIVATE,
|
|
WM_PHASE_UNDO, // PB vestige
|
|
WM_PHASE_BYE,
|
|
WM_PHASE_DEMO,
|
|
WM_PHASE_NAMEDESIGN,
|
|
WM_PHASE_WRITEDESIGN, // export design to c:\user
|
|
WM_PHASE_READDESIGN, // import design from c:\user
|
|
WM_PHASE_CLEARDESIGN,
|
|
WM_PHASE_DONAMEGAMER,
|
|
WM_PHASE_DOCLEARGAMER,
|
|
WM_PHASE_DONAMEDESIGN,
|
|
WM_PHASE_DOWRITEDESIGN,
|
|
WM_PHASE_DOREADDESIGN,
|
|
WM_PHASE_DOCLEARDESIGN,
|
|
WM_PHASE_SERVICE,
|
|
WM_PHASE_DP_DOSERVICE,
|
|
WM_PHASE_DP_CANCELSERVICE,
|
|
WM_PHASE_SESSION,
|
|
WM_PHASE_DP_JOIN,
|
|
WM_PHASE_DP_CREATELOBBY,
|
|
WM_PHASE_DP_REFRESH,
|
|
WM_PHASE_DP_CANCELSESSION,
|
|
WM_PHASE_MULTI,
|
|
WM_PHASE_DP_STARTMULTI,
|
|
WM_PHASE_DP_CANCELMULTI,
|
|
WM_PHASE_CREATE,
|
|
WM_PHASE_DP_DOCREATE,
|
|
WM_PHASE_DP_CANCELCREATE,
|
|
WM_PHASE_STOP, // escape key pause menu during gameplay
|
|
WM_PHASE_HELP,
|
|
WM_PHASE_GWRITE,
|
|
WM_PHASE_GREADp,
|
|
WM_PHASE_GREAD,
|
|
WM_PHASE_QUITPLAY,
|
|
WM_PHASE_1588,
|
|
WM_PHASE_INTRO1,
|
|
WM_PHASE_INTRO2,
|
|
|
|
WM_PREV = WM_USER + 600,
|
|
WM_NEXT,
|
|
WM_MOVIE
|
|
};
|
|
|
|
// Types de gestion de la souris.
|
|
|
|
#define MOUSETYPEGRA 1
|
|
#define MOUSETYPEWIN 2
|
|
#define MOUSETYPEWINPOS 3
|
|
|
|
// Button icons
|
|
|
|
enum {
|
|
IC_BT_TECH = 0, // Item: Square tech-block
|
|
IC_BT_SPECIALTECH, // Item: Special tech-block
|
|
IC_BT_TRIANGULARTECH, // Item: Triangular tech-block
|
|
IC_BT_9, // Item: Special tech-block (T shape)
|
|
IC_BT_10, // Scrolling: Horizontal and vertical (duplicate?)
|
|
IC_BT_BLUPI, // Item: Yellow Blupi
|
|
IC_BT_CANCEL, // UI: Black X (cancel)
|
|
IC_BT_TREASURE, // Item: Treasure chest
|
|
IC_BT_BOMB, // Item: Bomb
|
|
IC_BT_BOMBUP, // Item: Hanging bomb
|
|
IC_BT_EGG, // Item: Egg
|
|
IC_BT_GOAL, // Item: Goal
|
|
IC_BT_CANCEL2, // UI: Yellow X
|
|
IC_BT_HORIZONTAL, // Scrolling: Horizontal only
|
|
IC_BT_VERTICAL, // Scrolling: Vertical only
|
|
IC_BT_HORIZONTALVERTICAL, // Scrolling: Horizontal and vertical
|
|
IC_BT_BULLDOZER, // Item: Bulldozer
|
|
IC_BT_CASE, // Item: Wooden case
|
|
IC_BT_ACCEPT, // UI: Black checkmark
|
|
IC_BT_LIFTFAST, // Item: Fast lift
|
|
IC_BT_LIFTNORMAL, // Item: Normal lift
|
|
IC_BT_LIFTSLOW, // Item: Slow lift
|
|
IC_BT_ROCK, // Item: Square rock
|
|
IC_BT_WOODENWALL, // Item: Wooden wall
|
|
IC_BT_HELICOPTER, // Item: Helicopter
|
|
IC_BT_DREAM, // Item: Dream
|
|
IC_BT_LAVA, // Item: Lava
|
|
IC_BT_SECRETTECH, // Item: Secret tech-block
|
|
IC_BT_LIFTFASTSLOW, // Item: Fast/slow lift
|
|
IC_BT_PALMTREE, // Item: Palmtree
|
|
IC_BT_SUPPORT, // Item: Support
|
|
IC_BT_TREE, // Item: Tree
|
|
IC_BT_VEGETATION, // Item: Vegetation
|
|
IC_BT_HOUSE, // Item: House
|
|
IC_BT_MECH, // Item: Square mechanical
|
|
IC_BT_SPECIALMECH, // Item: Special mechanical
|
|
IC_BT_DELETE, // UI: Red X (delete)
|
|
IC_BT_BIGMECH, // Item: Mechanical background element
|
|
IC_BT_WATER, // Item: Water
|
|
IC_BT_GRASS, // Item: Grass
|
|
IC_BT_STOP, // UI: STOP sign
|
|
IC_BT_WIND, // Item: Wind
|
|
IC_BT_FAN, // Item: Fan
|
|
IC_BT_CREATE, // UI: Create multiplayer lobby
|
|
IC_BT_MUSIC, // UI: Music
|
|
IC_BT_JOIN, // UI: Join multiplayer lobby
|
|
IC_BT_NAME, // UI: Edit name
|
|
IC_BT_SETUP, // UI: Setup (analog gauge)
|
|
IC_BT_PLAY, // UI: Play (dice)
|
|
IC_BT_DESIGN, // UI: Design (wrench and screwdriver)
|
|
IC_BT_ARROWLEFT, // UI: Arrow pointing left
|
|
IC_BT_ARROWRIGHT, // UI: Arrow pointing right
|
|
IC_BT_READ, // UI: Load game
|
|
IC_BT_WRITE, // UI: Save game
|
|
IC_BT_MOVINGBOMB, // Item: Moving bomb
|
|
IC_BT_FISH, // Item: Fish
|
|
IC_BT_BAR, // Item: Bar to hang from
|
|
IC_BT_JEEP, // Item: Jeep
|
|
IC_BT_FURNITURE, // Item: Furniture
|
|
IC_BT_TRIANGULARROCK, // Item: Triangular rock
|
|
IC_BT_BIRD, // Item: Bird
|
|
IC_BT_TINY, // Scrolling: Tiny (No scrolling)
|
|
IC_BT_LEVELSTART, // Item: Level start
|
|
IC_BT_DOOR, // Item: Door (hub)
|
|
IC_BT_KEY, // Item: Key (goal)
|
|
IC_BT_FACADE, // Item: Building facade
|
|
IC_BT_ROOF, // Item: Roof
|
|
IC_BT_SECRETMECH, // Item: Secret mechanical
|
|
IC_BT_SECRETROCK, // Item: Secret rock
|
|
IC_BT_MARINE, // Item: Marine plant
|
|
IC_BT_SPRING, // Item: Spring
|
|
IC_BT_SKATEBOARD, // Item: Skateboard
|
|
IC_BT_ARROWUP, // UI: Arrow pointing up
|
|
IC_BT_ARROWDOWN, // UI: Arrow pointing down
|
|
IC_BT_SHIELD, // Item: Shield
|
|
IC_BT_LOLLIPOP, // Item: Lollipop
|
|
IC_BT_SECRETCASE, // Item: Secret wooden case
|
|
IC_BT_CONTINUE, // UI: Continue game
|
|
IC_BT_HALT, // UI: Halt (hand)
|
|
IC_BT_INVISIBLEBLOCK, // Item: Invisible block
|
|
IC_BT_KIDSSTUFF, // Item: Kid's stuff block
|
|
IC_BT_SPECIALKIDSSTUFF, // Item: Special kid's stuff
|
|
IC_BT_BIGKIDSSTUFF, // Item: Kid's stuff background element
|
|
IC_BT_MULTI, // UI: Multiplayer
|
|
IC_BT_DEMO, // UI: Demo
|
|
IC_BT_TANK, // Item: Tank
|
|
IC_BT_HELP, // UI: Help
|
|
IC_BT_DYNAMITE, // Item: Dynamite
|
|
IC_BT_GLUE, // Item: Glue supply
|
|
IC_BT_DRINK, // Item: Invisibility potion
|
|
IC_BT_NOTREADY, // UI: Not ready (multiplayer lobby)
|
|
IC_BT_READY, // UI: Ready (multiplayer lobby)
|
|
IC_BT_PERSO, // Item: Personal bomb
|
|
IC_BT_CHARGER, // Item: Recharging device
|
|
IC_BT_SEND, // UI: Send message
|
|
IC_BT_HELICOENEMY, // Item: Heliported enemy
|
|
IC_BT_BLUPI1, // Item: Orange Blupi
|
|
IC_BT_BLUPI2, // Item: Blue Blupi
|
|
IC_BT_BLUPI3, // Item: Green Blupi
|
|
IC_BT_TANKENEMY, // Item: Motorized enemy
|
|
IC_BT_CHEESE, // Item: Cheese
|
|
IC_BT_INVERTER, // Item: Inverter
|
|
IC_BT_PERSO0, // Item: Yellow personal bomb
|
|
IC_BT_PERSO1, // Item: Orange personal bomb
|
|
IC_BT_PERSO2, // Item: Blue personal bomb
|
|
IC_BT_PERSO3, // Item: Green personal bomb
|
|
IC_BT_PIPES, // Item: Pipes
|
|
IC_BT_HOMINGBOMB, // Item: Homing bomb
|
|
IC_BT_TEAM1, // UI: Select team 1
|
|
IC_BT_TEAM2, // UI: Select team 2
|
|
IC_BT_TEAM3, // UI: Select team 3
|
|
IC_BT_TEAM4, // UI: Select team 4
|
|
IC_BT_BRICKS, // Item: Bricks
|
|
IC_BT_WASP, // Item: Wasp
|
|
IC_BT_TEAMLITTLE1, // Gameplay: Team 1 player indicator
|
|
IC_BT_TEAMLITTLE2, // Gameplay: Team 2 player indicator
|
|
IC_BT_TEAMLITTLE3, // Gameplay: Team 3 player indicator
|
|
IC_BT_TEAMLITTLE4, // Gameplay: Team 4 player indicator
|
|
IC_BT_CAVE, // Item: Cave
|
|
IC_BT_HOVERCRAFT, // Item: Hovercraft
|
|
IC_BT_LIGHTNING, // Item: Lightning
|
|
IC_BT_CONVEYOR, // Item: Lift with conveyor
|
|
IC_BT_CRUSHER, // Item: Crusher
|
|
IC_BT_VANISH, // Item: Vanishing bloc
|
|
IC_BT_TELEPORTER, // Item: Teleporter
|
|
IC_BT_KEYCOLOR, // Item: Key (color)
|
|
IC_BT_DOORCOLOR, // Item: Door (color)
|
|
IC_BT_SECRETCAVE, // Item: Secret cave
|
|
IC_BT_SECRETCHEESE, // Item: Secret cheese
|
|
IC_BT_SLIME, // Item: Slime block
|
|
IC_BT_BIGSLIME, // Item: Slime background element
|
|
IC_BT_SLIMEFLOOR, // Item: Floor slime trap
|
|
IC_BT_SAW, // Item: Saw
|
|
IC_BT_LOWCOLORBACK, // UI: 256-color background
|
|
IC_BT_TRUECOLORBACK, // UI: 65536-color background
|
|
IC_BT_LOWCOLORDECOR, // UI: 256-color foreground
|
|
IC_BT_TRUECOLORDECOR, // UI: 65536-color foreground
|
|
IC_BT_PALACE, // Item: Palace
|
|
IC_BT_PALACEELEMENT, // Item: Element for palace
|
|
IC_BT_BIGPALACE, // Item: Palace background element
|
|
IC_BT_SLIMECREATURE, // Item: Slime creature
|
|
IC_BT_BRIDGE, // Item: Fragile bridge
|
|
IC_BT_SPIDERWEB, // Item: Spider's web
|
|
IC_BT_SLIMECEILING, // Item: Ceiling slime trap
|
|
IC_BT_TREASUREDOOR // Item: Numbered treasure door
|
|
};
|
|
|
|
|
|
namespace Object {
|
|
enum Object {
|
|
Empty = -1,
|
|
Hili,
|
|
TechSquare_1,
|
|
TechSquare_2,
|
|
TechSquare_3,
|
|
TechSquare_4,
|
|
TechSquare_5,
|
|
TechSquare_6,
|
|
TechSquare_7,
|
|
TechSquare_8,
|
|
TechSquare_9,
|
|
TechSquare_10,
|
|
TechSquare_11,
|
|
TechSquare_12,
|
|
TechSquare_13,
|
|
TechSquare_14,
|
|
TechTriRight_1,
|
|
TechTriRight_2, // 16
|
|
TechTriLeft_1,
|
|
TechTriLeft_2,
|
|
TechSpecial_1,
|
|
TechSpecial_2,
|
|
TechSpecial_3,
|
|
TechSecret_1,
|
|
TechSpecial_4,
|
|
TechSpecial_5,
|
|
TechSpecial_6,
|
|
TechSpecial_7,
|
|
TechSpecial_8,
|
|
TechSpecial_9,
|
|
TechSpecial_10,
|
|
LiftPoint_1,
|
|
LiftPoint_2,
|
|
Caisse_1, // 32
|
|
Caisse_2,
|
|
Caisse_3,
|
|
RockSquare_1,
|
|
RockSquare_2,
|
|
RockSquare_3,
|
|
RockSquare_4,
|
|
RockSquare_5,
|
|
RockSquare_6,
|
|
WoodWall_1,
|
|
WoodWall_2,
|
|
WoodWall_3,
|
|
WoodWall_4,
|
|
WoodWall_5,
|
|
WoodWall_6,
|
|
WoodWall_7,
|
|
Dream_1, // 48
|
|
Dream_2,
|
|
Dream_3,
|
|
Dream_4,
|
|
Dream_5,
|
|
Dream_6,
|
|
Dream_7,
|
|
Dream_8,
|
|
Dream_9,
|
|
Dream_10,
|
|
Dream_11,
|
|
Dream_12,
|
|
Dream_13,
|
|
Dream_14,
|
|
Dream_15,
|
|
Dream_16,
|
|
Dream_17, // 64
|
|
Dream_18,
|
|
Dream_19,
|
|
Dream_20,
|
|
Lava_1,
|
|
Lava_2,
|
|
Lava_3,
|
|
Lava_4,
|
|
Lava_5,
|
|
TechSecret_2,
|
|
RockTriLeft_1,
|
|
RockTriRight_1,
|
|
Support_1,
|
|
Support_2,
|
|
MechSquare_1,
|
|
MechSquare_2,
|
|
MechSquare_3, // 80
|
|
MechSquare_4,
|
|
MechSquare_5,
|
|
MechSquare_6,
|
|
MechSquare_7,
|
|
MechSecret_1,
|
|
MechSecret_2,
|
|
MechSpecial_1,
|
|
MechSpecial_2,
|
|
MechSpecial_3,
|
|
MechSpecial_4,
|
|
WaterSquare_1,
|
|
WaterSurf_1,
|
|
WaterSurf_2,
|
|
WaterSurf_3,
|
|
WaterSurf_4,
|
|
WaterSquare_2, // 96
|
|
WaterSquare_3,
|
|
WaterSquare_4,
|
|
Splash_1,
|
|
Splash_2,
|
|
Splash_3,
|
|
Splash_4,
|
|
Bubble_1,
|
|
Bubble_2,
|
|
Bubble_3,
|
|
Bubble_4,
|
|
GrassSquare_1,
|
|
GrassLeft,
|
|
GrassRight,
|
|
WindLeft_1,
|
|
WindLeft_2, // 112
|
|
WindLeft_3,
|
|
WindLeft_4,
|
|
WindRight_1,
|
|
WindRight_2,
|
|
WindRight_3,
|
|
WindRight_4,
|
|
WindUp_1,
|
|
WindUp_2,
|
|
WindUp_3,
|
|
WindUp_4,
|
|
WindDown_1,
|
|
WindDown_2,
|
|
WindDown_3,
|
|
WindDown_4,
|
|
FanLeft_1,
|
|
FanLeft_2, // 128
|
|
FanLeft_3,
|
|
FanRight_1,
|
|
FanRight_2,
|
|
FanRight_3,
|
|
FanUp_1,
|
|
FanUp_2,
|
|
FanUp_3,
|
|
FanDown_1,
|
|
FanDown_2,
|
|
FanDown_3,
|
|
Bar_1,
|
|
Bookshelf_1,
|
|
Bookshelf_2,
|
|
Bookshelf_3,
|
|
Bookshelf_4,
|
|
Bookshelf_5,
|
|
RockSquare_7, // 144
|
|
RockSquare_8,
|
|
RockSquare_9,
|
|
RockSquare_10,
|
|
RockSquare_11,
|
|
RockSquare_12,
|
|
RockSquare_13,
|
|
RockSquare_14,
|
|
RockSquare_15,
|
|
RockSquare_16,
|
|
RockTriLeft_2,
|
|
RockTriRight_2,
|
|
RockSquare_17,
|
|
GrassSquare_2,
|
|
World_1,
|
|
World_2,
|
|
World_3, // 160
|
|
World_4,
|
|
World_5,
|
|
World_6,
|
|
World_7,
|
|
World_8,
|
|
WorldDone_1,
|
|
WorldDone_2,
|
|
WorldDone_3,
|
|
WorldDone_4,
|
|
WorldDone_5,
|
|
WorldDone_6,
|
|
WorldDone_7,
|
|
WorldDone_8,
|
|
Level_1,
|
|
Level_2,
|
|
Level_3, // 176
|
|
Level_4,
|
|
Level_5,
|
|
Level_6,
|
|
Level_7,
|
|
Level_8,
|
|
DoorLevel,
|
|
DoorCourse,
|
|
WorldBack,
|
|
RockSecret,
|
|
Facade_1,
|
|
Facade_2,
|
|
Facade_3,
|
|
Facade_4,
|
|
Facade_5,
|
|
Facade_6,
|
|
Facade_7, // 192
|
|
Roof_1,
|
|
Roof_2,
|
|
Roof_3,
|
|
Roof_4,
|
|
Roof_5,
|
|
Support_3,
|
|
Support_4,
|
|
Support_5,
|
|
Support_6,
|
|
Bar_2,
|
|
Marine_1,
|
|
Marine_2,
|
|
Marine_3,
|
|
Marine_4,
|
|
Marine_5,
|
|
Marine_6, // 208
|
|
Spring_1,
|
|
Spring_2,
|
|
Spring_3,
|
|
Spring_4,
|
|
Spring_5,
|
|
Invisible,
|
|
KidsSquare_1,
|
|
KidsSquare_2,
|
|
KidsSquare_3,
|
|
KidsSquare_4,
|
|
KidsSquare_5,
|
|
KidsSquare_6,
|
|
KidsSquare_7,
|
|
KidsSquare_8,
|
|
KidsSpecial_1,
|
|
KidsSpecial_2, // 224
|
|
KidsSpecial_3,
|
|
KidsSpecial_4,
|
|
KidsSpecial_5,
|
|
KidsSpecial_6,
|
|
KidsSpecial_7,
|
|
KidsSquare_9,
|
|
KidsSquare_10,
|
|
KidsSpecial_8,
|
|
KidsSquare_11,
|
|
KidsSquare_12,
|
|
Support_7,
|
|
Support_8,
|
|
DitherMask,
|
|
Charger_1,
|
|
Charger_2,
|
|
Charger_3, // 240
|
|
Charger_4,
|
|
Charger_5,
|
|
Charger_6,
|
|
Splash_5,
|
|
Unk_F5,
|
|
CheeseSquare_1,
|
|
CheeseSquare_2,
|
|
CheeseSquare_3,
|
|
CheeseSquare_4,
|
|
Pipes_1,
|
|
Pipes_2,
|
|
Pipes_3,
|
|
Pipes_4,
|
|
Pipes_5,
|
|
Pipes_6,
|
|
Pipes_7, // 256
|
|
Pipes_8,
|
|
Pipes_9,
|
|
Pipes_10,
|
|
Pipes_11,
|
|
Bricks_1,
|
|
Bricks_2,
|
|
Bricks_3,
|
|
CheeseSupport_1,
|
|
CheeseSupport_2,
|
|
CheeseSupport_3,
|
|
CheeseSupport_4,
|
|
CheeseSupport_5,
|
|
CheeseSupport_6,
|
|
CheeseSupport_7,
|
|
CheeseSupport_8,
|
|
CheeseSupport_9, // 272
|
|
CheeseSupport_10,
|
|
CheeseSupport_11,
|
|
CheeseSupport_12,
|
|
CheeseSupport_13,
|
|
CheeseSupport_14,
|
|
CheeseSupport_15,
|
|
CheeseSupport_16,
|
|
CheeseSupport_17,
|
|
CheeseSupport_18,
|
|
CheeseSupport_19,
|
|
Bricks_4,
|
|
Cave_1,
|
|
CaveSupport_1,
|
|
CaveSupport_2,
|
|
CaveSupport_3,
|
|
CaveSupport_4, // 288
|
|
CaveSupport_5,
|
|
CaveSupport_6,
|
|
CaveSupport_7,
|
|
CaveSupport_8,
|
|
CaveSupport_9,
|
|
CaveSupport_10,
|
|
CaveSupport_11,
|
|
CaveSupport_12,
|
|
CaveSupport_13,
|
|
CaveSupport_14,
|
|
CaveSupport_15,
|
|
CaveSupport_16,
|
|
Cave_2,
|
|
CaveSupport_17,
|
|
CaveSupport_18,
|
|
LightningMachine, // 304
|
|
Lightning_1,
|
|
Lightning_2,
|
|
Lightning_3,
|
|
Lightning_4,
|
|
World_9,
|
|
WorldDone_9,
|
|
Conveyor_1,
|
|
Conveyor_2,
|
|
Conveyor_3,
|
|
Conveyor_4,
|
|
Conveyor_5,
|
|
Conveyor_6,
|
|
Crusher_1,
|
|
Crusher_2,
|
|
Crusher_3,
|
|
Crusher_4, // 320
|
|
Crusher_5,
|
|
Crusher_6,
|
|
Crusher_7,
|
|
Vanish_1,
|
|
Vanish_2,
|
|
Vanish_3,
|
|
Vanish_4,
|
|
Vanish_5,
|
|
Vanish_6,
|
|
Teleporter_1,
|
|
Teleporter_2,
|
|
Teleporter_3,
|
|
Teleporter_4,
|
|
DoorRed,
|
|
DoorGreen,
|
|
DoorBlue, // 336
|
|
CaveSecret,
|
|
Cave_3,
|
|
CheeseSecret,
|
|
CheeseSquare_5,
|
|
Slime_1,
|
|
Slime_2,
|
|
Slime_3,
|
|
Slime_4,
|
|
Slime_5,
|
|
Slime_6,
|
|
Slime_7,
|
|
Slime_8,
|
|
Slime_9,
|
|
Slime_10,
|
|
Slime_11,
|
|
Slime_12, // 352
|
|
Slime_13,
|
|
Slime_14,
|
|
Slime_15,
|
|
Slime_16,
|
|
Slime_17,
|
|
Slime_18,
|
|
Slime_19,
|
|
Slime_20,
|
|
Slime_21,
|
|
Slime_22,
|
|
Slime_23,
|
|
FragileBridge_1,
|
|
FragileBridge_2,
|
|
FragileBridge_3,
|
|
FragileBridge_4,
|
|
FragileBridge_5, // 368
|
|
FragileBridge_6,
|
|
FragileBridge_7,
|
|
FragileBridge_8,
|
|
FragileBridge_9,
|
|
SlimeTrapFloor_1,
|
|
SlimeTrapFloor_2,
|
|
Support_9,
|
|
Support_10,
|
|
Support_11,
|
|
Saw_1,
|
|
Saw_2,
|
|
Saw_3,
|
|
Saw_4,
|
|
Saw_5,
|
|
Saw_6,
|
|
SawSwitchOn, // 384
|
|
SawSwitchOff,
|
|
Palace_1,
|
|
Palace_2,
|
|
Palace_3,
|
|
Palace_4,
|
|
Palace_5,
|
|
Palace_6,
|
|
Palace_7,
|
|
Palace_8,
|
|
Palace_9,
|
|
Palace_10,
|
|
Palace_11,
|
|
Palace_12,
|
|
PalaceElement_1,
|
|
PalaceElement_2,
|
|
PalaceElement_3, // 400
|
|
SpiderWeb_1,
|
|
SpiderWeb_2,
|
|
SpiderWeb_3,
|
|
SlimeTrapCeiling_1,
|
|
SlimeTrapCeiling_2,
|
|
SlimeTrapCeiling_3,
|
|
SlimeTrapCeiling_4,
|
|
SlimeTrapCeiling_5,
|
|
SlimeTrapCeiling_6,
|
|
SlimeTrapCeiling_7,
|
|
World_10,
|
|
World_11,
|
|
World_12,
|
|
World_13,
|
|
World_14,
|
|
WorldDone_10, // 416
|
|
WorldDone_11,
|
|
WorldDone_12,
|
|
WorldDone_13,
|
|
WorldDone_14,
|
|
DoorTreasure_1,
|
|
DoorTreasure_2,
|
|
DoorTreasure_3,
|
|
DoorTreasure_4,
|
|
DoorTreasure_5,
|
|
DoorTreasure_6,
|
|
DoorTreasure_7,
|
|
DoorTreasure_8,
|
|
DoorTreasure_9,
|
|
DoorTreasure_10,
|
|
DoorTreasure_11,
|
|
DoorTreasure_12, // 432
|
|
DoorTreasure_13,
|
|
DoorTreasure_14,
|
|
DoorTreasure_15,
|
|
DoorTreasure_16,
|
|
DoorTreasure_17,
|
|
DoorTreasure_18,
|
|
DoorTreasure_19,
|
|
DoorTreasure_20
|
|
};
|
|
}
|
|
|
|
#define CLE_RED (1 << 0)
|
|
#define CLE_GREEN (1 << 1)
|
|
#define CLE_BLUE (1 << 2)
|
|
|
|
#define JAUGE_AIR 0
|
|
#define JAUGE_POWER 1
|
|
|
|
// hack to mimic array literals in old c++
|
|
#if __cplusplus < 199711
|
|
#define RECT(A,B,C,D) MAKE_RECT(A,B,C,D)
|
|
#define POINT(X,Y) MAKE_POINT(X,Y)
|
|
|
|
inline RECT MAKE_RECT (int left, int top, int right, int bottom)
|
|
{
|
|
RECT r = {left, top, right, bottom};
|
|
return r;
|
|
};
|
|
|
|
inline POINT MAKE_POINT (int x, int y)
|
|
{
|
|
POINT p = {x, y};
|
|
return p;
|
|
};
|
|
#else
|
|
#define RECT(A,B,C,D) RECT{A,B,C,D}
|
|
#define POINT(X,Y) POINT{X,Y}
|
|
#endif
|
|
|
|
// helpers for POINT
|
|
|
|
POINT operator+(POINT p, const POINT& a)
|
|
{
|
|
return POINT( a.x + p.x, a.y + p.y );
|
|
}
|
|
|
|
POINT operator-(POINT p, const POINT& a)
|
|
{
|
|
return POINT( a.x - p.x, a.y - p.y );
|
|
}
|
|
|
|
POINT operator*(POINT p, const POINT& a)
|
|
{
|
|
return POINT( a.x * p.x, a.y * p.y );
|
|
}
|
|
|
|
POINT operator/(POINT p, const POINT& a)
|
|
{
|
|
return POINT( p.x / a.x, p.y / a.y );
|
|
}
|
|
|
|
POINT operator*(POINT p, const int& a)
|
|
{
|
|
return POINT( p.x * a, p.y * a );
|
|
}
|
|
|
|
POINT operator/(POINT p, const int& a)
|
|
{
|
|
return POINT( p.x / a, p.y / a );
|
|
}
|
|
|
|
POINT operator+=(POINT p, const POINT& a)
|
|
{
|
|
return POINT( p.x += a.x, p.y += a.y );
|
|
}
|
|
|
|
POINT operator-=(POINT p, const POINT& a)
|
|
{
|
|
return POINT( p.x -= a.x, p.y -= a.y );
|
|
}
|
|
|
|
POINT operator*=(POINT p, const POINT& a)
|
|
{
|
|
return POINT( p.x *= a.x, p.y *= a.y );
|
|
}
|
|
|
|
POINT operator/=(POINT p, const POINT& a)
|
|
{
|
|
return POINT( p.x /= a.x, p.y /= a.y );
|
|
}
|
|
|
|
POINT operator*=(POINT p, const int& a)
|
|
{
|
|
return POINT( p.x *= a, p.y *= a );
|
|
}
|
|
|
|
POINT operator/=(POINT p, const int& a)
|
|
{
|
|
return POINT( p.x /= a, p.y /= a );
|
|
}
|
|
|
|
bool operator!=(POINT a, const POINT& b)
|
|
{
|
|
return a.x != b.x || a.y != b.y;
|
|
}
|
|
|
|
bool operator==(POINT a, const POINT& b)
|
|
{
|
|
return a.x == b.x && a.y == b.y;
|
|
}
|
|
|
|
#endif |