1
0
mirror of https://github.com/jummy0/sb2-decomp synced 2025-03-15 04:24:48 +01:00
This commit is contained in:
jummy 2024-06-10 12:31:06 -05:00
parent 9acb6fca58
commit 6648415acd
11 changed files with 3175 additions and 1 deletions

View File

@ -1,4 +1,4 @@
# Speedy Eggbert 2 Source Code Decomp
WIP Source Tree for Speedy Eggbert (Blupi) 2
As of now (5/17/24), there hasn't been any source code found for SE2. So we are using the released (original) source code from Planet Blupi to compare code and help us with the proccess.
As of now (5/17/24), the source code of Speedy Eggbert 2 has not been published. We are using the released (original) source code from Planet Blupi to compare code and help us with the proccess.

489
blupi-d.rc Normal file
View File

@ -0,0 +1,489 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// French (Switzerland) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRS)
#ifdef _WIN32
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH_SWISS
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON DISCARDABLE "blupi.ico"
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,4,0,0
PRODUCTVERSION 0,4,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "100c04b0"
BEGIN
VALUE "CompanyName", "EPSITEC\0"
VALUE "FileDescription", "Blupi\0"
VALUE "FileVersion", "0, 4, 0, 0\0"
VALUE "InternalName", "Planet Blupi\0"
VALUE "LegalCopyright", "Copyright © 1997\0"
VALUE "OriginalFilename", "Blupi.exe\0"
VALUE "ProductName", "EPSITEC Planet Blupi\0"
VALUE "ProductVersion", "0, 4, 0, 0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x100c, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_POINTER CURSOR DISCARDABLE "cursor1.cur"
IDC_MAP CURSOR DISCARDABLE "map.cur"
IDC_ARROWU CURSOR DISCARDABLE "arrowup.cur"
IDC_ARROWD CURSOR DISCARDABLE "arrowdow.cur"
IDC_ARROWL CURSOR DISCARDABLE "arrowlef.cur"
IDC_ARROWR CURSOR DISCARDABLE "arrowrig.cur"
IDC_ARROWUL CURSOR DISCARDABLE "arrowul.cur"
IDC_ARROWUR CURSOR DISCARDABLE "arrowur.cur"
IDC_ARROWDR CURSOR DISCARDABLE "arrowdr.cur"
IDC_ARROWDL CURSOR DISCARDABLE "arrowdl.cur"
IDC_WAIT CURSOR DISCARDABLE "wait.cur"
IDC_EMPTY CURSOR DISCARDABLE "empty.cur"
IDC_FILL CURSOR DISCARDABLE "fill.cur"
IDC_ARROW CURSOR DISCARDABLE "arrow.cur"
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
TX_ACTION_GO "Gehen"
TX_ACTION_STOP "Halt"
TX_ACTION_MANGE "Essen"
TX_ACTION_CARRY "Nehmen"
TX_ACTION_DEPOSE "Hinlegen"
TX_ACTION_ABAT "Baum fällen"
TX_ACTION_ROC "Stein bearbeiten"
TX_ACTION_CULTIVE "Garten anlegen"
TX_ACTION_BUILD1 "Gartenhäuschen"
TX_ACTION_BUILD2 "Brutplatz"
TX_ACTION_BUILD3 "Labor"
TX_ACTION_BUILD4 "Bergwerk"
TX_ACTION_BUILD5 "Werkstatt"
TX_ACTION_BUILD6 "Beamgerät"
TX_ACTION_MUR "Mauer"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_ACTION_PALIS "Palisade"
TX_ACTION_ABATn "Bäume fällen"
TX_ACTION_ROCn "Steine bearbeiten"
TX_ACTION_PONT "Brücke"
TX_ACTION_TOUR "Wachturm"
TX_ACTION_BOIT "Trinken"
TX_ACTION_LABO "Verarbeiten"
TX_ACTION_FLEUR "Blumenstrauss machen"
TX_ACTION_FLEURn "Blumensträusse machen"
TX_ACTION_DYNAMITE "Zünden"
TX_ACTION_BATEAU "Boot"
TX_ACTION_DJEEP "Aussteigen"
TX_ACTION_DRAPEAU "Eisen suchen"
TX_ACTION_EXTRAIT "Eisen abbauen"
TX_ACTION_FABJEEP "Jeep bauen"
TX_ACTION_FABMINE "Zeitbombe bauen"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_ERROR_MISC "Hier nicht möglich"
TX_ERROR_GROUND "Untergrund nicht geeignet"
TX_ERROR_FREE "Untergrund schon besetzt"
TX_ERROR_PONTOP "Anderes Ufer nicht OK"
TX_ERROR_PONTTERM "Brücke schon fertig"
TX_ERROR_TOURISOL "(Alleinstehender Wachturm)"
TX_ERROR_TOUREAU "Zu nahe am Wasser"
TX_ERROR_TELE2 "Es gibt schon 2 Beammaschinen"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_IONAMEEX "Training %d, Zeit %d"
TX_IOFREE "frei"
TX_TERMMIN "Verloren sobald weniger als %d Blupis"
TX_TERMMAX "Gewinnen unmöglich wenn weniger als %d Blupis"
TX_BUTTON_JOUER "Missionen"
TX_BUTTON_APPRENDRE "Training"
TX_BUTTON_QUITTER "BLUPI beenden"
TX_BUTTON_PREVP "Vorhergehende Mission"
TX_BUTTON_NEXTP "Nächste Mission"
TX_BUTTON_PLAYP "Diese Mission spielen"
TX_BUTTON_BUILDP "Diese Mission konstruieren"
TX_BUTTON_TERM "Beenden"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_READP "Gespeicherte Mission öffnen"
TX_BUTTON_WRITEP "Mission speichern"
TX_BUTTON_CANCELP "Mission aufgeben"
TX_BUTTON_CONTP "Mission weiterspielen"
TX_BUTTON_REPEAT "Neu Anfangen"
TX_BUTTON_BUTTON "Zur Verfügung stehende Knöpfe"
TX_BUTTON_CTERM "Bedingungen für Ende der Mission"
TX_BUTTON_TERMC "Konstruktion beenden"
TX_BUTTON_TERMHBLUPI "Blupi auf gestreiften Quadraten"
TX_BUTTON_TERMHPLANCHE "Bretter auf gestreiften Quadraten"
TX_BUTTON_TERMFIRE "Feuer ausgegangen"
TX_BUTTON_TERMDEC "(-)"
TX_BUTTON_TERMINC "(+)"
TX_PAUSE "Pause"
TX_JAUGE1 "Blupis Energie"
TX_JAUGE2 "Arbeitsfortschritt"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_SETUP "Einstellungen"
TX_BUTTON_MUSIC "Auswahl der Musik"
TX_BUTTON_SETUP1 "Langsamer"
TX_BUTTON_SETUP2 "Schneller"
TX_BUTTON_SETUP3 "Leiser"
TX_BUTTON_SETUP4 "Lauter"
TX_BUTTON_MUSIC1 "Keine Musik"
TX_BUTTON_MUSIC2 "Musik Nummer 1"
TX_BUTTON_MUSIC3 "Musik Nummer 2"
TX_BUTTON_MUSIC4 "Musik Nummer 3"
TX_BUTTON_MUSIC5 "Musik Nummer 4"
TX_BUTTON_MUSIC6 "Musik Nummer 5"
TX_BUTTON_MUSIC7 "Musik Nummer 6"
TX_BUTTON_MUSIC8 "Musik Nummer 7"
TX_BUTTON_MUSIC9 "Musik Nummer 8"
TX_BUTTON_MUSIC10 "Musik Nummer 9"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_REGION "Auswahl der Umgebung"
TX_BUTTON_TERMMBLUPI "Blupi im Haus"
TX_BUTTON_TERMKILL "Keine Feinde mehr"
TX_TERM "Bedingungen für\ndas Ende der Mission"
TX_BUTTON "Zur Verfügung\nstehende Knöpfe"
TX_MUSIC "Auswahl der Musik"
TX_SCHOOL "Training Nummer"
TX_MISSION "Mission Nummer"
TX_IONAMEMI "Mission %d, Zeit %d"
TX_BUTTON_TERMHTOMATE "Tomaten auf gestreiften Quadraten"
TX_BUTTON_SETUP5 "Leiser"
TX_BUTTON_SETUP6 "Lauter"
TX_BUTTON_SETUP7 "Keine Videosequenzen"
TX_BUTTON_SETUP8 "Zeigt die Videosequenzen"
TX_OUI "Ja"
TX_NON "Nein"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_BLUPIm "Kranker Blupi"
TX_OBJ_BLUPIf "Erschöpfter Blupi"
TX_OBJ_BLUPI "Blupi"
TX_OBJ_BATEAU "Boot"
TX_OBJ_JEEP "Jeep"
TX_OBJ_PIEGE "Klebefalle"
TX_OBJ_POISON "Gift"
TX_OBJ_DYNAMITE "Dynamitstangen"
TX_OBJ_MINE "Zeitbombe"
TX_OBJ_TOMATE "Tomaten"
TX_OBJ_POTION "Medikament"
TX_OBJ_PLANCHE "Bretter"
TX_OBJ_PIERRE "Steine"
TX_OBJ_DRAPEAU "Wimpel"
TX_OBJ_FER "Eisenerz"
TX_OBJ_FLEUR1 "Blumen"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_FLEUR2 "Blumen"
TX_OBJ_FLEUR3 "Blumen"
TX_OBJ_CABANE "Gartenhäuschen"
TX_OBJ_LABO "Labor"
TX_OBJ_MINEFER "Bergwerk"
TX_OBJ_USINE "Werkstatt"
TX_OBJ_TOUR "Wachturm"
TX_OBJ_FEU "Feuer"
TX_OBJ_ROBOT "Roboterchef"
TX_OBJ_TRACKS "Planierraupe"
TX_OBJ_BOMBE "Springende Bombe"
TX_OBJ_ARAIGNEE "Spinne"
TX_OBJ_VIRUS "Virus"
TX_OBJ_ELECTRO "Elektrisiermaschine"
TX_OBJ_ARBRE "Bäume"
TX_OBJ_MUR "Mauer"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_ARBREb "Baumstämme"
TX_OBJ_ROC "Felsen"
TX_OBJ_OEUF "Eier"
TX_OBJ_PALISSADE "Palisade"
TX_OBJ_ENNEMIp "Verklebter Feind"
TX_OBJ_ENNEMI "Feindliche Einrichtung"
TX_OBJ_HERBE "Normaler Untergrund"
TX_OBJ_MOUSSE "Brennbarer Untergrund"
TX_OBJ_TERRE "Karger Untergrund"
TX_OBJ_EAU "Wasser"
TX_OBJ_RIVE "Ufer"
TX_OBJ_MIXTE "Gemischter Untergrund"
TX_OBJ_PONT "Brücke"
TX_OBJ_COUVEUSE "Brutplatz"
TX_OBJ_GLACE "Eis"
TX_OBJ_MAISON "Blupis Haus"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_HACHURE "Gestreifte Quadrate"
TX_OBJ_MOUSSEb "Verbrannter Untergrund"
TX_OBJ_BOUQUET1 "Blumenstrauss"
TX_OBJ_BOUQUET2 "Blumenstrauss"
TX_OBJ_BOUQUET3 "Blumenstrauss"
TX_OBJ_DALLE "Platten"
TX_OBJ_ENNEMIs "Feindesgrund"
TX_OBJ_DISCIPLE "Hilfsroboter"
TX_OBJ_METAL "Platinium"
TX_OBJ_FUSEE "Feindliche Rakete"
TX_OBJ_TELEPORTE "Beammaschine"
TX_OBJ_ARMURE "Rüstung"
TX_OBJ_DALLESPEC "Spezialplatten"
TX_OBJ_COUVTELE "Brutplatz oder Beammaschine"
TX_OBJ_BATIMENT "Gebäude"
TX_OBJ_BATENNEMIS "Feindliches Gebäude"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_WIN1 "Toll, Du hast es geschafft"
TX_WIN2 "Ja, super"
TX_WIN3 "Sehr gut"
TX_WIN4 "Ausgezeichnet"
TX_WIN5 "Auftrag erfüllt"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_LOST1 "Das war nichts, probier es noch einmal !"
TX_LOST2 "Nein, so geht das leider nicht !"
TX_LOST3 "Das war mal wieder nichts !"
TX_LOST4 "Das war leider nicht die richtige Lösung !"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_LOST5 "Aber nein, doch nicht so..."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_LASTWIN1 "Du kannst jetzt mit den Missionen beginnen."
TX_LASTWIN2 "Bravo, das Spiel ist beendet !"
TX_LASTWIN3 "Letzte konstruierte Mission beendet."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_SETUP9 "Langsamer"
TX_BUTTON_SETUP10 "Schneller"
TX_INFO_SETUP1 "Globale\nGeschwindigkeit\ndes Spiels"
TX_INFO_SETUP2 "Lautstärke der\nGeräuscheffekte"
TX_INFO_SETUP3 "Lautstärke\nder Musik"
TX_INFO_SETUP4 "Videosequenzen"
TX_INFO_SETUP5 "Geschwindigkeit\nder Bildschirm-\nverschiebungen\nmit der Maus"
TX_INFO_NOSCROLL "Keine"
TX_BUTTON_REGION1 "Wiese"
TX_BUTTON_REGION2 "Wüste"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_REGION3 "Verschneiter Wald"
TX_BUTTON_REGION4 "Wald"
TX_REGION "Auswahl\nder Umgebung"
TX_BUTTON_PLAY_STOP "Halt"
TX_BUTTON_PLAY_SETUP "Einstellungen"
TX_BUTTON_PLAY_WRITE "Speichern"
TX_INSERT "Füge die Planet Blupi CD-Rom in das Laufwerk ein und warte einige Sekunden ..."
TX_BUTTON_PREVH "Vorhergehende Seite"
TX_BUTTON_NEXTH "Nächste Seite"
TX_BUTTON_TERMHMETAL "Platinium auf gestreiften Quadraten"
TX_BUTTON_HELP "Hilfe"
TX_HELP "Hilfe Nummer"
TX_BUTTON_PRIVE "Konstruktion"
TX_PRIVATE "Konstruktion Nummer"
TX_IONAMEPR "Konstruktion %d, Zeit %d"
TX_PRIVATE_HACHBLUPI "1|Auf die gestreiften Quadrate gehen."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_ACTION_FABDISC "Roboter bauen"
TX_ACTION_REPEAT "Wiederholen"
TX_ACTION_QARMURE "Aussteigen"
TX_ACTION_FABARMURE "Rüstung bauen"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_PRIVATE_HACHPLANCHE "1|Bretter auf die\n1|gestreiften Quadrate legen."
TX_PRIVATE_HACHTOMATE "1|Tomaten auf die\n1|gestreiften Quadrate legen."
TX_PRIVATE_HACHMETAL "1|Platinium auf die\n1|gestreiften Quadrate legen."
TX_PRIVATE_STOPFIRE "1|Solange überleben bis\n1|das Feuer ausgegangen ist."
TX_PRIVATE_HOMEBLUPI "1|Jeder Blupi\n1|in seinem Haus."
TX_PRIVATE_KILLROBOTS "1|Alle Feinde\n1|zerstören !"
TX_BUTTON_UNDO "Letzten Befehl rückgängig machen"
TX_DEMO_END1 "Sie haben soeben mit der DEMO Version von Planet Blupi gespielt."
TX_DEMO_END2 "Hoffentlich hatten Sie genau soviel Spass beim Spielen wie wir beim herstellen des Spiels !"
TX_DEMO_END3 "Dieses Spiel wurde entwickelt von Epsitec SA, CH-1092 Belmont"
TX_DEMO_END4 "http://www.blupi.com blupi@epsitec.ch"
TX_FULL_END1 "Sie haben soeben mit PLANET BLUPI gespielt."
TX_FULL_END2 "Hoffentlich hatten Sie genau soviel Spass beim Spielen wie wir beim herstellen des Spiels !"
TX_FULL_END3 "Herausgegeben von WG Verlag & Lizenzen AG"
TX_FULL_END4 "Entwickelt von EPSITEC SA"
TX_PRIVATE_OBJECTIF "1|Ziel :"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_PRIVATE_NBBLUPI "1|Die Blupibevölkerung muss mindestens %d Blupi(s) betragen."
TX_BUTTON_SKILL "Schwierigkeitsgrad"
TX_SKILL1 "Leicht"
TX_SKILL2 "Schwer"
TX_BUTTON_DEMO "Demo"
TX_DEMOREC "REC"
TX_DEMOPLAY "Demo"
TX_BUTTON_TERMHROBOT "Roboter auf gestreiften Quadraten"
TX_PRIVATE_HACHROBOT "1|Der Roboter muss die\n1|gestreiften Quadrate erreichen."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_REPEAT_CULTIVE "1: Tomaten anbauen...\n2: Essen"
TX_REPEAT_FLEUR "1: Blumenstrauss binden\n2: Verarbeiten"
TX_REPEAT_FLEURQ "1: Nehmen\n2: Verarbeiten"
TX_REPEAT_FABMINE "1: Eisen abbauen\n2: Zeitbombe bauen"
TX_REPEAT_FABJEEP "1: Eisen abbauen\n2: Jeep bauen"
TX_REPEAT_PALIS "1: Baum fällen\n2: Palissade bauen"
TX_REPEAT_PALISQ "1: Nehmen\n2: Palissade bauen"
TX_REPEAT_PONT "1: Baum fällen\n2: Brücke bauen"
TX_REPEAT_PONTQ "1: Nehmen\n2: Brücke bauen"
TX_REPEAT_BATEAU "1: Baum fällen\n2: Boot bauen"
TX_REPEAT_BATEAUQ "1: Bretter nehmen\n2: Boot bauen"
TX_REPEAT_FABARMURE "1: Eisen abbauen\n2: Rüstung bauen"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_MURPAL "Mauer oder Palissade"
TX_OBJ_OBJET "Gegenstände"
TX_OBJ_ARME "Waffen"
TX_OBJ_VEHICULE "Transportmittel"
TX_OBJ_STARTFEU "Feuer"
TX_OBJ_DELOBJ "Gegenstand löschen"
TX_OBJ_DELPERSO "Figur löschen"
TX_OBJ_DELFEU "Feuer löschen"
TX_OBJ_PLANTE "Pflanzen"
TX_OBJ_BARENNEMIS "Feindlicher Zaun"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_DIRECT_N "N"
TX_DIRECT_S "S"
TX_DIRECT_E "O"
TX_DIRECT_O "W"
END
#endif // French (Switzerland) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

489
blupi-e.rc Normal file
View File

@ -0,0 +1,489 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// French (Switzerland) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRS)
#ifdef _WIN32
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH_SWISS
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON DISCARDABLE "blupi.ico"
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,4,0,0
PRODUCTVERSION 0,4,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "100c04b0"
BEGIN
VALUE "CompanyName", "EPSITEC\0"
VALUE "FileDescription", "Blupi\0"
VALUE "FileVersion", "0, 4, 0, 0\0"
VALUE "InternalName", "Planet Blupi\0"
VALUE "LegalCopyright", "Copyright © 1997\0"
VALUE "OriginalFilename", "Blupi.exe\0"
VALUE "ProductName", "EPSITEC Planet Blupi\0"
VALUE "ProductVersion", "0, 4, 0, 0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x100c, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_POINTER CURSOR DISCARDABLE "cursor1.cur"
IDC_MAP CURSOR DISCARDABLE "map.cur"
IDC_ARROWU CURSOR DISCARDABLE "arrowup.cur"
IDC_ARROWD CURSOR DISCARDABLE "arrowdow.cur"
IDC_ARROWL CURSOR DISCARDABLE "arrowlef.cur"
IDC_ARROWR CURSOR DISCARDABLE "arrowrig.cur"
IDC_ARROWUL CURSOR DISCARDABLE "arrowul.cur"
IDC_ARROWUR CURSOR DISCARDABLE "arrowur.cur"
IDC_ARROWDR CURSOR DISCARDABLE "arrowdr.cur"
IDC_ARROWDL CURSOR DISCARDABLE "arrowdl.cur"
IDC_WAIT CURSOR DISCARDABLE "wait.cur"
IDC_EMPTY CURSOR DISCARDABLE "empty.cur"
IDC_FILL CURSOR DISCARDABLE "fill.cur"
IDC_ARROW CURSOR DISCARDABLE "arrow.cur"
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
TX_ACTION_GO "Go"
TX_ACTION_STOP "Stop"
TX_ACTION_MANGE "Eat"
TX_ACTION_CARRY "Take"
TX_ACTION_DEPOSE "Drop"
TX_ACTION_ABAT "Cut down a tree"
TX_ACTION_ROC "Carve a rock"
TX_ACTION_CULTIVE "Grow tomatoes"
TX_ACTION_BUILD1 "Garden shed"
TX_ACTION_BUILD2 "Incubator"
TX_ACTION_BUILD3 "Laboratory"
TX_ACTION_BUILD4 "Mine"
TX_ACTION_BUILD5 "Workshop"
TX_ACTION_BUILD6 "Teleporter"
TX_ACTION_MUR "Wall"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_ACTION_PALIS "Palisade"
TX_ACTION_ABATn "Cut down trees"
TX_ACTION_ROCn "Carve rocks"
TX_ACTION_PONT "Bridge"
TX_ACTION_TOUR "Protection tower"
TX_ACTION_BOIT "Drink"
TX_ACTION_LABO "Transform"
TX_ACTION_FLEUR "Make bunch of flowers"
TX_ACTION_FLEURn "Make bunches of flowers"
TX_ACTION_DYNAMITE "Blow up"
TX_ACTION_BATEAU "Boat"
TX_ACTION_DJEEP "Leave Jeep"
TX_ACTION_DRAPEAU "Prospect for iron"
TX_ACTION_EXTRAIT "Extract iron"
TX_ACTION_FABJEEP "Make a Jeep"
TX_ACTION_FABMINE "Make a time bomb"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_ERROR_MISC "Impossible"
TX_ERROR_GROUND "Inadequate ground"
TX_ERROR_FREE "Occupied ground"
TX_ERROR_PONTOP "Opposite bank no good"
TX_ERROR_PONTTERM "Bridge finished"
TX_ERROR_TOURISOL "(isolated tower)"
TX_ERROR_TOUREAU "Too close to water"
TX_ERROR_TELE2 "Already two teleporters"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_IONAMEEX "training %d, time %d"
TX_IOFREE "free slot"
TX_TERMMIN "Lost if less than %d Blupis"
TX_TERMMAX "Impossible to win if less than %d Blupis"
TX_BUTTON_JOUER "Missions"
TX_BUTTON_APPRENDRE "Training"
TX_BUTTON_QUITTER "Quit BLUPI"
TX_BUTTON_PREVP "Previous game"
TX_BUTTON_NEXTP "Next game"
TX_BUTTON_PLAYP "Play this game"
TX_BUTTON_BUILDP "Construct this game"
TX_BUTTON_TERM "Finish"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_READP "Open another game "
TX_BUTTON_WRITEP "Save this game"
TX_BUTTON_CANCELP "Quit this game"
TX_BUTTON_CONTP "Continue this game"
TX_BUTTON_REPEAT "Restart this game"
TX_BUTTON_BUTTON "Available buttons"
TX_BUTTON_CTERM "Ending conditions"
TX_BUTTON_TERMC "Quit construction"
TX_BUTTON_TERMHBLUPI "Blupi on striped paving stones"
TX_BUTTON_TERMHPLANCHE "Planks on striped paving stones"
TX_BUTTON_TERMFIRE "Fire out"
TX_BUTTON_TERMDEC "(-)"
TX_BUTTON_TERMINC "(+)"
TX_PAUSE "Game paused"
TX_JAUGE1 "Blupi's energy"
TX_JAUGE2 "Work done"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_SETUP "Settings"
TX_BUTTON_MUSIC "Music choice"
TX_BUTTON_SETUP1 "Slower"
TX_BUTTON_SETUP2 "Faster"
TX_BUTTON_SETUP3 "Reduce volume"
TX_BUTTON_SETUP4 "Increase volume"
TX_BUTTON_MUSIC1 "No music"
TX_BUTTON_MUSIC2 "Music number 1"
TX_BUTTON_MUSIC3 "Music number 2"
TX_BUTTON_MUSIC4 "Music number 3"
TX_BUTTON_MUSIC5 "Music number 4"
TX_BUTTON_MUSIC6 "Music number 5"
TX_BUTTON_MUSIC7 "Music number 6"
TX_BUTTON_MUSIC8 "Music number 7"
TX_BUTTON_MUSIC9 "Music number 8"
TX_BUTTON_MUSIC10 "Music number 9"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_REGION "Scenery choice"
TX_BUTTON_TERMMBLUPI "Blupi in house"
TX_BUTTON_TERMKILL "No more enemies"
TX_TERM "Ending conditions"
TX_BUTTON "Available buttons"
TX_MUSIC "Music choice"
TX_SCHOOL "Training number"
TX_MISSION "Mission number"
TX_IONAMEMI "mission %d, time %d"
TX_BUTTON_TERMHTOMATE "Tomatoes on striped paving stones"
TX_BUTTON_SETUP5 "Reduce volume"
TX_BUTTON_SETUP6 "Increase volume"
TX_BUTTON_SETUP7 "No video"
TX_BUTTON_SETUP8 "Show videos"
TX_OUI "Yes"
TX_NON "No"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_BLUPIm "Sick Blupi"
TX_OBJ_BLUPIf "Tired Blupi"
TX_OBJ_BLUPI "Blupi"
TX_OBJ_BATEAU "Boat"
TX_OBJ_JEEP "Jeep"
TX_OBJ_PIEGE "Sticky trap"
TX_OBJ_POISON "Poison"
TX_OBJ_DYNAMITE "Dynamite"
TX_OBJ_MINE "Time bomb"
TX_OBJ_TOMATE "Tomatoes"
TX_OBJ_POTION "Medical potion"
TX_OBJ_PLANCHE "Planks"
TX_OBJ_PIERRE "Stones"
TX_OBJ_DRAPEAU "Flag"
TX_OBJ_FER "Iron"
TX_OBJ_FLEUR1 "Flowers"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_FLEUR2 "Flowers"
TX_OBJ_FLEUR3 "Flowers"
TX_OBJ_CABANE "Garden shed"
TX_OBJ_LABO "Laboratory"
TX_OBJ_MINEFER "Mine"
TX_OBJ_USINE "Workshop"
TX_OBJ_TOUR "Protection tower"
TX_OBJ_FEU "Fire"
TX_OBJ_ROBOT "Master robot"
TX_OBJ_TRACKS "Bulldozer"
TX_OBJ_BOMBE "Bouncing bomb"
TX_OBJ_ARAIGNEE "Spider"
TX_OBJ_VIRUS "Virus"
TX_OBJ_ELECTRO "Electrocutor"
TX_OBJ_ARBRE "Tree"
TX_OBJ_MUR "Wall"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_ARBREb "Tree trunks"
TX_OBJ_ROC "Rocks"
TX_OBJ_OEUF "Eggs"
TX_OBJ_PALISSADE "Palisade"
TX_OBJ_ENNEMIp "Trapped enemy"
TX_OBJ_ENNEMI "Enemy construction"
TX_OBJ_HERBE "Normal ground"
TX_OBJ_MOUSSE "Inflammable ground"
TX_OBJ_TERRE "Sterile ground"
TX_OBJ_EAU "Water"
TX_OBJ_RIVE "Bank"
TX_OBJ_MIXTE "Miscellaneous ground"
TX_OBJ_PONT "Bridge"
TX_OBJ_COUVEUSE "Incubator"
TX_OBJ_GLACE "Ice"
TX_OBJ_MAISON "Blupi's house"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_HACHURE "Striped paving stones"
TX_OBJ_MOUSSEb "Burnt ground"
TX_OBJ_BOUQUET1 "Bunch of flowers"
TX_OBJ_BOUQUET2 "Bunch of flowers"
TX_OBJ_BOUQUET3 "Bunch of flowers"
TX_OBJ_DALLE "Paving stones"
TX_OBJ_ENNEMIs "Enemy ground "
TX_OBJ_DISCIPLE "Helper robot"
TX_OBJ_METAL "Platinium"
TX_OBJ_FUSEE "Enemy rocket"
TX_OBJ_TELEPORTE "Teleporter"
TX_OBJ_ARMURE "Armour"
TX_OBJ_DALLESPEC "Special pavings"
TX_OBJ_COUVTELE "Incubator or teleporter"
TX_OBJ_BATIMENT "Buildings"
TX_OBJ_BATENNEMIS "Enemy buildings"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_WIN1 "Well done !"
TX_WIN2 "Yes, great ..."
TX_WIN3 "Very good."
TX_WIN4 "Excellent..."
TX_WIN5 "Mission over..."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_LOST1 "You have failed, try again..."
TX_LOST2 "No, wrong way ..."
TX_LOST3 "Bang, failed again !"
TX_LOST4 "Another mistake..."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_LOST5 "No, not that way !"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_LASTWIN1 "Now go on mission."
TX_LASTWIN2 "Very good, success on all missions !"
TX_LASTWIN3 "Last construction resolved !"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_SETUP9 "Slower"
TX_BUTTON_SETUP10 "Faster"
TX_INFO_SETUP1 "Global game\nspeed"
TX_INFO_SETUP2 "Sound effect\nvolume"
TX_INFO_SETUP3 "Music\nvolume"
TX_INFO_SETUP4 "Video\nsequences"
TX_INFO_SETUP5 "Scroll speed\nwith mouse"
TX_INFO_NOSCROLL "None"
TX_BUTTON_REGION1 "Prairie"
TX_BUTTON_REGION2 "Desert"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_REGION3 "Forest under snow"
TX_BUTTON_REGION4 "Forest"
TX_REGION "Scenery choice"
TX_BUTTON_PLAY_STOP "Interrupt"
TX_BUTTON_PLAY_SETUP "Settings"
TX_BUTTON_PLAY_WRITE "Save"
TX_INSERT "Insert CD-Rom Planet Blupi and wait a few seconds..."
TX_BUTTON_PREVH "Previous page"
TX_BUTTON_NEXTH "Next page"
TX_BUTTON_TERMHMETAL "Platinium on striped paving stones"
TX_BUTTON_HELP "Help"
TX_HELP "Help number"
TX_BUTTON_PRIVE "Construction"
TX_PRIVATE "Construction number"
TX_IONAMEPR "Construction %d, time %d"
TX_PRIVATE_HACHBLUPI "1|Go on striped\n1| paving stones."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_ACTION_FABDISC "Make a helper robot"
TX_ACTION_REPEAT "Repeat"
TX_ACTION_QARMURE "Quit"
TX_ACTION_FABARMURE "Make armour"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_PRIVATE_HACHPLANCHE "1|Drop planks on striped \n1|paving stones."
TX_PRIVATE_HACHTOMATE "1|Drop tomatoes on striped \n1|paving stones."
TX_PRIVATE_HACHMETAL "1|Drop platinium on striped \n1|paving stones."
TX_PRIVATE_STOPFIRE "1|Resist until\n1|fire extinction ..."
TX_PRIVATE_HOMEBLUPI "1|Each Blupi in\n1|his house."
TX_PRIVATE_KILLROBOTS "1|Kill all\n1|enemies !"
TX_BUTTON_UNDO "Cancel last operation"
TX_DEMO_END1 "You have played the DEMO version of Planet Blupi."
TX_DEMO_END2 "We hope you have had as much fun playing the game as we had making it !"
TX_DEMO_END3 "This game is an original creation of EPSITEC SA, CH-1092 Belmont"
TX_DEMO_END4 "http://www.blupi.com blupi@epsitec.ch"
TX_FULL_END1 "You have played Planet Blupi."
TX_FULL_END2 "We hope you have had as much fun playing the game as we had making it !"
TX_FULL_END3 "This game is an original creation of EPSITEC SA, CH-1092 Belmont"
TX_FULL_END4 "http://www.blupi.com blupi@epsitec.ch"
TX_PRIVATE_OBJECTIF "1|Goal :"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_PRIVATE_NBBLUPI "1|The Blupi population must \n1|be of at least %d Blupis."
TX_BUTTON_SKILL "Skill level"
TX_SKILL1 "Easy"
TX_SKILL2 "Difficult"
TX_BUTTON_DEMO "Demo"
TX_DEMOREC "REC"
TX_DEMOPLAY "Demo"
TX_BUTTON_TERMHROBOT "Robot on striped paving stones"
TX_PRIVATE_HACHROBOT "1|The robot must reach\n1|the striped paving stones."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_REPEAT_CULTIVE "1: Grow tomatoes\n2: Eat"
TX_REPEAT_FLEUR "1: Make a bunch\n2: Transform"
TX_REPEAT_FLEURQ "1: Take\n2: Transform"
TX_REPEAT_FABMINE "1: Extract iron\n2: Make a bomb"
TX_REPEAT_FABJEEP "1: Extract iron\n2: Make a Jeep"
TX_REPEAT_PALIS "1: Cut down a tree \n2: Make a palisade"
TX_REPEAT_PALISQ "1: Take\n2: Build palisade"
TX_REPEAT_PONT "1: Cut down a tree \n2: Build a bridge"
TX_REPEAT_PONTQ "1: Take\n2: Build a bridge"
TX_REPEAT_BATEAU "1: Cut down a tree \n2: Make a boat"
TX_REPEAT_BATEAUQ "1: Take\n2: Make a boat"
TX_REPEAT_FABARMURE "1: Extract iron\n2: Make an armour"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_MURPAL "Wall or palisade"
TX_OBJ_OBJET "Items"
TX_OBJ_ARME "Weapons"
TX_OBJ_VEHICULE "Transport"
TX_OBJ_STARTFEU "Starting fire"
TX_OBJ_DELOBJ "Delete item"
TX_OBJ_DELPERSO "Delete figure"
TX_OBJ_DELFEU "Delete fire"
TX_OBJ_PLANTE "Decorative plants"
TX_OBJ_BARENNEMIS "Enemy barrier"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_DIRECT_N "N"
TX_DIRECT_S "S"
TX_DIRECT_E "E"
TX_DIRECT_O "W"
END
#endif // French (Switzerland) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

489
blupi-f.rc Normal file
View File

@ -0,0 +1,489 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// French (Switzerland) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRS)
#ifdef _WIN32
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH_SWISS
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON DISCARDABLE "blupi.ico"
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,4,0,0
PRODUCTVERSION 0,4,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "100c04b0"
BEGIN
VALUE "CompanyName", "EPSITEC\0"
VALUE "FileDescription", "Blupi\0"
VALUE "FileVersion", "0, 4, 0, 0\0"
VALUE "InternalName", "Planet Blupi\0"
VALUE "LegalCopyright", "Copyright © 1997\0"
VALUE "OriginalFilename", "Blupi.exe\0"
VALUE "ProductName", "EPSITEC Planet Blupi\0"
VALUE "ProductVersion", "0, 4, 0, 0\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x100c, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_POINTER CURSOR DISCARDABLE "cursor1.cur"
IDC_MAP CURSOR DISCARDABLE "map.cur"
IDC_ARROWU CURSOR DISCARDABLE "arrowup.cur"
IDC_ARROWD CURSOR DISCARDABLE "arrowdow.cur"
IDC_ARROWL CURSOR DISCARDABLE "arrowlef.cur"
IDC_ARROWR CURSOR DISCARDABLE "arrowrig.cur"
IDC_ARROWUL CURSOR DISCARDABLE "arrowul.cur"
IDC_ARROWUR CURSOR DISCARDABLE "arrowur.cur"
IDC_ARROWDR CURSOR DISCARDABLE "arrowdr.cur"
IDC_ARROWDL CURSOR DISCARDABLE "arrowdl.cur"
IDC_WAIT CURSOR DISCARDABLE "wait.cur"
IDC_EMPTY CURSOR DISCARDABLE "empty.cur"
IDC_FILL CURSOR DISCARDABLE "fill.cur"
IDC_ARROW CURSOR DISCARDABLE "arrow.cur"
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
TX_ACTION_GO "Va"
TX_ACTION_STOP "Stoppe"
TX_ACTION_MANGE "Mange"
TX_ACTION_CARRY "Prend"
TX_ACTION_DEPOSE "Dépose"
TX_ACTION_ABAT "Abat un arbre"
TX_ACTION_ROC "Taille un rocher"
TX_ACTION_CULTIVE "Cultive un jardin"
TX_ACTION_BUILD1 "Cabane de jardin"
TX_ACTION_BUILD2 "Couveuse"
TX_ACTION_BUILD3 "Laboratoire"
TX_ACTION_BUILD4 "Mine de fer"
TX_ACTION_BUILD5 "Usine"
TX_ACTION_BUILD6 "Téléporteur"
TX_ACTION_MUR "Mur anti-feu"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_ACTION_PALIS "Palissade"
TX_ACTION_ABATn "Abat des arbres"
TX_ACTION_ROCn "Taille des rochers"
TX_ACTION_PONT "Pont"
TX_ACTION_TOUR "Tour de protection"
TX_ACTION_BOIT "Boit"
TX_ACTION_LABO "Transforme"
TX_ACTION_FLEUR "Fait un bouquet"
TX_ACTION_FLEURn "Fait des bouquets"
TX_ACTION_DYNAMITE "Explose"
TX_ACTION_BATEAU "Bateau"
TX_ACTION_DJEEP "Descend"
TX_ACTION_DRAPEAU "Cherche du fer"
TX_ACTION_EXTRAIT "Extrait du fer"
TX_ACTION_FABJEEP "Farbique une jeep"
TX_ACTION_FABMINE "Fabrique une bombe"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_ERROR_MISC "Impossible ici"
TX_ERROR_GROUND "Terrain pas adapté"
TX_ERROR_FREE "Terrain occupé"
TX_ERROR_PONTOP "Autre rive pas ok"
TX_ERROR_PONTTERM "Pont terminé"
TX_ERROR_TOURISOL "(tour isolée)"
TX_ERROR_TOUREAU "Trop près de l'eau"
TX_ERROR_TELE2 "Déjà 2 téléporteurs"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_IONAMEEX "entraînement %d, temps %d"
TX_IOFREE "libre"
TX_TERMMIN "Perdu si moins de %d blupi"
TX_TERMMAX "Impossible de gagner si moins de %d blupi"
TX_BUTTON_JOUER "Missions"
TX_BUTTON_APPRENDRE "Entraînement"
TX_BUTTON_QUITTER "Quitter BLUPI"
TX_BUTTON_PREVP "Partie précédente"
TX_BUTTON_NEXTP "Partie suivante"
TX_BUTTON_PLAYP "Jouer cette partie"
TX_BUTTON_BUILDP "Construire cette partie"
TX_BUTTON_TERM "Terminer"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_READP "Ouvrir une autre partie"
TX_BUTTON_WRITEP "Enregistrer la partie en cours"
TX_BUTTON_CANCELP "Abandonner la partie"
TX_BUTTON_CONTP "Continuer la partie"
TX_BUTTON_REPEAT "Recommencer"
TX_BUTTON_BUTTON "Boutons disponibles"
TX_BUTTON_CTERM "Conditions de fin"
TX_BUTTON_TERMC "Terminer la construction"
TX_BUTTON_TERMHBLUPI "Blupi sur dalles hachurées"
TX_BUTTON_TERMHPLANCHE "Planches sur dalles hachurées"
TX_BUTTON_TERMFIRE "Feu stoppé"
TX_BUTTON_TERMDEC "(-)"
TX_BUTTON_TERMINC "(+)"
TX_PAUSE "Partie interrompue"
TX_JAUGE1 "Energie de Blupi"
TX_JAUGE2 "Travail en cours"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_SETUP "Réglages"
TX_BUTTON_MUSIC "Choix de la musique"
TX_BUTTON_SETUP1 "Diminue la vitesse"
TX_BUTTON_SETUP2 "Augmente la vitesse"
TX_BUTTON_SETUP3 "Diminue le volume"
TX_BUTTON_SETUP4 "Augmente le volume"
TX_BUTTON_MUSIC1 "Pas de musique"
TX_BUTTON_MUSIC2 "Musique numéro 1"
TX_BUTTON_MUSIC3 "Musique numéro 2"
TX_BUTTON_MUSIC4 "Musique numéro 3"
TX_BUTTON_MUSIC5 "Musique numéro 4"
TX_BUTTON_MUSIC6 "Musique numéro 5"
TX_BUTTON_MUSIC7 "Musique numéro 6"
TX_BUTTON_MUSIC8 "Musique numéro 7"
TX_BUTTON_MUSIC9 "Musique numéro 8"
TX_BUTTON_MUSIC10 "Musique numéro 9"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_REGION "Choix des décors"
TX_BUTTON_TERMMBLUPI "Blupi dans sa maison"
TX_BUTTON_TERMKILL "Plus d'ennemis"
TX_TERM "Conditions de fin"
TX_BUTTON "Boutons disponibles"
TX_MUSIC "Choix des musiques"
TX_SCHOOL "Entraînement numéro"
TX_MISSION "Mission numéro"
TX_IONAMEMI "mission %d, temps %d"
TX_BUTTON_TERMHTOMATE "Tomates sur dalles hachurées"
TX_BUTTON_SETUP5 "Diminue le volume"
TX_BUTTON_SETUP6 "Augmente le volume"
TX_BUTTON_SETUP7 "Pas de vidéo"
TX_BUTTON_SETUP8 "Montre les vidéos"
TX_OUI "Oui"
TX_NON "Non"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_BLUPIm "Blupi malade"
TX_OBJ_BLUPIf "Blupi fatigué"
TX_OBJ_BLUPI "Blupi"
TX_OBJ_BATEAU "Bateau"
TX_OBJ_JEEP "Jeep"
TX_OBJ_PIEGE "Piège à glu"
TX_OBJ_POISON "Poison"
TX_OBJ_DYNAMITE "Dynamite"
TX_OBJ_MINE "Bombe à retardement"
TX_OBJ_TOMATE "Tomates"
TX_OBJ_POTION "Potion"
TX_OBJ_PLANCHE "Planches"
TX_OBJ_PIERRE "Pierres"
TX_OBJ_DRAPEAU "Drapeau"
TX_OBJ_FER "Minerai de fer"
TX_OBJ_FLEUR1 "Fleurs"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_FLEUR2 "Fleurs"
TX_OBJ_FLEUR3 "Fleurs"
TX_OBJ_CABANE "Cabane de jardin"
TX_OBJ_LABO "Laboratoire"
TX_OBJ_MINEFER "Mine de fer"
TX_OBJ_USINE "Usine"
TX_OBJ_TOUR "Tour de protection"
TX_OBJ_FEU "Feu"
TX_OBJ_ROBOT "Robot-maître"
TX_OBJ_TRACKS "Bulldozer"
TX_OBJ_BOMBE "Bombe sauteuse"
TX_OBJ_ARAIGNEE "Araignée"
TX_OBJ_VIRUS "Virus"
TX_OBJ_ELECTRO "Electrocuteur"
TX_OBJ_ARBRE "Arbres"
TX_OBJ_MUR "Mur anti-feu"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_ARBREb "Troncs"
TX_OBJ_ROC "Rochers"
TX_OBJ_OEUF "Oeufs"
TX_OBJ_PALISSADE "Palissade"
TX_OBJ_ENNEMIp "Ennemi piégé"
TX_OBJ_ENNEMI "Construction ennemie"
TX_OBJ_HERBE "Sol normal"
TX_OBJ_MOUSSE "Sol inflammable"
TX_OBJ_TERRE "Sol improductif"
TX_OBJ_EAU "Eau"
TX_OBJ_RIVE "Rive"
TX_OBJ_MIXTE "Sol mixte"
TX_OBJ_PONT "Pont"
TX_OBJ_COUVEUSE "Couveuse"
TX_OBJ_GLACE "Glace"
TX_OBJ_MAISON "Maison de blupi"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_HACHURE "Dalles hachurées"
TX_OBJ_MOUSSEb "Mousse brûlée"
TX_OBJ_BOUQUET1 "Bouquet de fleurs"
TX_OBJ_BOUQUET2 "Bouquet de fleurs"
TX_OBJ_BOUQUET3 "Bouquet de fleurs"
TX_OBJ_DALLE "Dalles"
TX_OBJ_ENNEMIs "Sol ennemi"
TX_OBJ_DISCIPLE "Robot-aide"
TX_OBJ_METAL "Platinium"
TX_OBJ_FUSEE "Fusée ennemie"
TX_OBJ_TELEPORTE "Téléporteur"
TX_OBJ_ARMURE "Armure"
TX_OBJ_DALLESPEC "Dalles spéciales"
TX_OBJ_COUVTELE "Couveuse ou téléporteur"
TX_OBJ_BATIMENT "Bâtiments"
TX_OBJ_BATENNEMIS "Bâtiments ennemis"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_WIN1 "Bravo, c'est réussi !"
TX_WIN2 "Oui, super ..."
TX_WIN3 "Très bien."
TX_WIN4 "Magnifique, excellent ..."
TX_WIN5 "Mission accomplie."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_LOST1 "C'est raté, essaie encore une fois"
TX_LOST2 "Et non, ce n'est pas ça ..."
TX_LOST3 "Paf, c'est raté !"
TX_LOST4 "Caramba, encore raté ..."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_LOST5 "Mais non, pas comme ça !"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_LASTWIN1 "Passe maintenant aux missions."
TX_LASTWIN2 "Magnifique, le jeu est terminé !"
TX_LASTWIN3 "Dernière construction résolue !"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_SETUP9 "Diminue la vitesse"
TX_BUTTON_SETUP10 "Augmente la vitesse"
TX_INFO_SETUP1 "Vitesse globale\ndu jeu"
TX_INFO_SETUP2 "Volume\ndes bruitages"
TX_INFO_SETUP3 "Volume\ndes musiques"
TX_INFO_SETUP4 "Séquences\nvidéo"
TX_INFO_SETUP5 "Vitesse\ndes décalages\navec la souris"
TX_INFO_NOSCROLL "Aucun"
TX_BUTTON_REGION1 "Prairie"
TX_BUTTON_REGION2 "Désert"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_BUTTON_REGION3 "Forêt enneigée"
TX_BUTTON_REGION4 "Forêt"
TX_REGION "Choix de la région"
TX_BUTTON_PLAY_STOP "Interrompre"
TX_BUTTON_PLAY_SETUP "Réglages"
TX_BUTTON_PLAY_WRITE "Enregistrer"
TX_INSERT "Veuillez insérer le CD-Rom Planète Blupi, puis attendre quelques secondes ..."
TX_BUTTON_PREVH "Page précédente"
TX_BUTTON_NEXTH "Page suivante"
TX_BUTTON_TERMHMETAL "Platinium sur dalles hachurées"
TX_BUTTON_HELP "Aide"
TX_HELP "Aide numéro"
TX_BUTTON_PRIVE "Construction"
TX_PRIVATE "Construction numéro"
TX_IONAMEPR "construction %d, temps %d"
TX_PRIVATE_HACHBLUPI "1|Aller sur les dalles\n1|hachurées."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_ACTION_FABDISC "Fabrique un robot"
TX_ACTION_REPEAT "Répète"
TX_ACTION_QARMURE "Quitte"
TX_ACTION_FABARMURE "Fabrique une armure"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_PRIVATE_HACHPLANCHE "1|Déposer des planches\n1|sur les dalles hachurées."
TX_PRIVATE_HACHTOMATE "1|Déposer des tomates\n1|sur les dalles hachurées."
TX_PRIVATE_HACHMETAL "1|Déposer du platinium\n1|sur les dalles hachurées."
TX_PRIVATE_STOPFIRE "1|Résister jusqu'à\n1|l'extinction du feu ..."
TX_PRIVATE_HOMEBLUPI "1|Chaque Blupi dans\n1|sa maison."
TX_PRIVATE_KILLROBOTS "1|Supprimer tous les\n1|ennemis !"
TX_BUTTON_UNDO "Annuler la dernière opération"
TX_DEMO_END1 "Vous avez joué à la version DEMO de Planète Blupi."
TX_DEMO_END2 "Nous espérons que vous avez eu autant de plaisir à y jouer que nous à le réaliser !"
TX_DEMO_END3 "Ce jeu est une création originale d'EPSITEC SA, CH-1092 Belmont"
TX_DEMO_END4 "http://www.blupi.com blupi@epsitec.ch"
TX_FULL_END1 "Vous avez joué à Planète Blupi."
TX_FULL_END2 "Nous espérons que vous avez eu autant de plaisir à y jouer que nous à le réaliser !"
TX_FULL_END3 "Ce jeu est une création originale d'EPSITEC SA, CH-1092 Belmont"
TX_FULL_END4 "http://www.blupi.com blupi@epsitec.ch"
TX_PRIVATE_OBJECTIF "1|Objectif :"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_PRIVATE_NBBLUPI "1|La population doit être\n1|d'au moins %d Blupi."
TX_BUTTON_SKILL "Niveau de difficulté"
TX_SKILL1 "Facile"
TX_SKILL2 "Difficile"
TX_BUTTON_DEMO "Démo"
TX_DEMOREC "REC"
TX_DEMOPLAY "Démo"
TX_BUTTON_TERMHROBOT "Robot sur dalles hachurées"
TX_PRIVATE_HACHROBOT "1|Le robot doit atteindre\n1|les dalles hachurées."
END
STRINGTABLE DISCARDABLE
BEGIN
TX_REPEAT_CULTIVE "1: Cultive ...\n2: Mange"
TX_REPEAT_FLEUR "1: Fait un bouquet\n2: Transforme"
TX_REPEAT_FLEURQ "1: Prend\n2: Transforme"
TX_REPEAT_FABMINE "1: Extrait du fer\n2: Fabrique bombe"
TX_REPEAT_FABJEEP "1: Extrait du fer\n2: Fabrique jeep"
TX_REPEAT_PALIS "1: Abat un arbre\n2: Construit palissade"
TX_REPEAT_PALISQ "1: Prend\n2: Construit palissade"
TX_REPEAT_PONT "1: Abat un arbre\n2: Construit pont"
TX_REPEAT_PONTQ "1: Prend\n2: Construit pont"
TX_REPEAT_BATEAU "1: Abat un arbre\n2: Construit bateau"
TX_REPEAT_BATEAUQ "1: Prend\n2: Construit bateau"
TX_REPEAT_FABARMURE "1: Extrait du fer\n2: Fabrique armure"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_OBJ_MURPAL "Mur ou palissade"
TX_OBJ_OBJET "Objets"
TX_OBJ_ARME "Armes"
TX_OBJ_VEHICULE "Moyens de transport"
TX_OBJ_STARTFEU "Début d'incendie"
TX_OBJ_DELOBJ "Supprime objet"
TX_OBJ_DELPERSO "Supprime personnage"
TX_OBJ_DELFEU "Supprime feu"
TX_OBJ_PLANTE "Plantes ornementales"
TX_OBJ_BARENNEMIS "Barrière ennemie"
END
STRINGTABLE DISCARDABLE
BEGIN
TX_DIRECT_N "N"
TX_DIRECT_S "S"
TX_DIRECT_E "E"
TX_DIRECT_O "O"
END
#endif // French (Switzerland) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

461
def.h Normal file
View File

@ -0,0 +1,461 @@
// Def.h
//
#pragma once
#include <Windows.h>
#define _DEMO FALSE // TRUE=demo, FALSE=complet
#define _INTRO FALSE // TRUE si images d'introduction
#define _EGAMES FALSE // TRUE version pour eGames
#define _SE FALSE // TRUE eGames Special Edition
#define LXIMAGE 640 // dimensions de la fenêtre de jeu
#define LYIMAGE 480
#define MAXCELX 100 // nb max de cellules d'un monde
#define MAXCELY 100
//#define DIMCELX 60 // dimensions d'une cellule (décor)
//#define DIMCELY 30
//#define DIMOBJX 120 // dimensions d'un objet
//#define DIMOBJY 120
//#define DIMBLUPIX 60 // dimensions de blupi
//#define DIMBLUPIY 60
//#define SHIFTBLUPIY 5 // petit décalage vers le haut
#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 CHBACK 0
#define CHOBJECT 1
#define CHBLUPI 2
#define CHDECOR 3
#define CHHILI 5
#define CHFOG 6
#define CHMASK1 7
#define CHMAP 8
#define CHEXPLO 9
#define CHELEMENT 10
#define CHBLUPI001 11
#define CHBLUPI002 12
#define CHBLUPI003 13
#define CHTEMP 14
// Directions :
#define DIRECT_LEFT 1
#define DIRECT_RIGHT 2
// Actions :
#define ACTION_STOP 0 // arrêt
#define ACTION_STOPf 1 // arrêt fatigué
#define ACTION_MARCHE 2 // marche
#define ACTION_MARCHEf 3 // marche fatigué
#define ACTION_BUILD 4 // construit
#define ACTION_PIOCHE 5 // pioche
#define ACTION_ENERGY 6 // prend de l'énergie
#define ACTION_TAKE 8 // fait sauter un objet sur la tête (est)
#define ACTION_DEPOSE 9 // repose l'objet sur la tête (est)
#define ACTION_SCIE 10 // scie du bois
#define ACTION_BRULE 11 // blupi crame !
#define ACTION_TCHAO 12 // blupi disparait !
#define ACTION_MANGE 13 // blupi mange
#define ACTION_NAISSANCE 14 // naissance
#define ACTION_SAUTE2 15 // saute par-dessus un obstacle
#define ACTION_SAUTE3 16 // saute par-dessus un obstacle
#define ACTION_SAUTE4 17 // saute par-dessus un obstacle
#define ACTION_SAUTE5 18 // saute par-dessus un obstacle
#define ACTION_PONT 19 // pousse un pont
#define ACTION_MISC1 20 // divers 1 (hausse les épaules)
#define ACTION_MISC2 21 // divers 2 (grat-grat)
#define ACTION_MISC3 22 // divers 3 (yoyo)
#define ACTION_MISC1f 23 // divers 1 fatigué (bof-bof)
#define ACTION_GLISSE 24 // glisse en marchant
#define ACTION_BOIT 25 // blupi boit
#define ACTION_LABO 26 // blupi travaille dans son laboratoire
#define ACTION_DYNAMITE 27 // blupi fait péter la dynamite
#define ACTION_DELAY 28 // blupi attend un frame
#define ACTION_CUEILLE1 29 // blupi cueille des fleurs
#define ACTION_CUEILLE2 30 // blupi cueille des fleurs
#define ACTION_MECHE 31 // blupi se bouche les oreilles
#define ACTION_STOPb 32 // arrêt en bateau
#define ACTION_MARCHEb 33 // avance en bateau
#define ACTION_STOPj 34 // arrêt en jeep
#define ACTION_MARCHEj 35 // avance en jeep
#define ACTION_ELECTRO 36 // blupi électrocuté
#define ACTION_GRILLE1 37 // blupi grille (phase 1)
#define ACTION_GRILLE2 38 // blupi grille (phase 2)
#define ACTION_GRILLE3 39 // blupi grille (phase 3)
#define ACTION_MISC4 40 // divers 4 (ferme les yeux)
#define ACTION_CONTENT 41 // blupi est content
#define ACTION_ARROSE 42 // blupi arrose
#define ACTION_BECHE 43 // blupi bèche
#define ACTION_CUEILLE3 44 // blupi cueille des fleurs
#define ACTION_BUILDBREF 45 // construit
#define ACTION_BUILDSEC 46 // construit
#define ACTION_BUILDSOURD 47 // construit
#define ACTION_BUILDPIERRE 48 // construit
#define ACTION_PIOCHEPIERRE 49 // pioche
#define ACTION_PIOCHESOURD 50 // pioche
#define ACTION_MISC5 51 // divers 5 (ohé)
#define ACTION_TELEPORTE1 52 // téléporte
#define ACTION_TELEPORTE2 53 // téléporte
#define ACTION_TELEPORTE3 54 // téléporte
#define ACTION_STOPa 55 // arrêt armure
#define ACTION_MARCHEa 56 // marche armure
#define ACTION_ARMUREOPEN 57 // ouvre armure
#define ACTION_ARMURECLOSE 58 // ferme armure
#define ACTION_SAUTE1 59 // saute dans la jeep
#define ACTION_MISC6 60 // divers 6 (diabolo)
#define ACTION_A_STOP 100 // araignée: arrêt
#define ACTION_A_MARCHE 101 // araignée: marche
#define ACTION_A_SAUT 102 // araignée: saute
#define ACTION_A_GRILLE 103 // araignée: grille dans rayon
#define ACTION_A_POISON 105 // araignée: empoisonée
#define ACTION_A_MORT1 106 // araignée: meurt
#define ACTION_A_MORT2 107 // araignée: meurt
#define ACTION_A_MORT3 108 // araignée: meurt
#define ACTION_V_STOP 200 // virus: arrêt
#define ACTION_V_MARCHE 201 // virus: marche
#define ACTION_V_GRILLE 202 // virus: grille dans rayon
#define ACTION_T_STOP 300 // tracks: arrêt
#define ACTION_T_MARCHE 301 // tracks: marche
#define ACTION_T_ECRASE 302 // tracks: écrase un objet
#define ACTION_R_STOP 400 // robot: arrêt
#define ACTION_R_MARCHE 401 // robot: marche
#define ACTION_R_APLAT 402 // robot: applatit
#define ACTION_R_BUILD 403 // robot: construit
#define ACTION_R_DELAY 404 // robot: construit
#define ACTION_R_CHARGE 405 // robot: recharge
#define ACTION_R_ECRASE 406 // robot: écrase un objet
#define ACTION_B_STOP 500 // bombe: arrêt
#define ACTION_B_MARCHE 501 // bombe: marche
#define ACTION_D_DELAY 600 // détonnateur: attend
#define ACTION_E_STOP 700 // électro: arrêt
#define ACTION_E_MARCHE 701 // électro: marche
#define ACTION_E_DEBUT 702 // électro: débute
#define ACTION_E_RAYON 703 // électro: rayonne
#define ACTION_D_STOP 800 // disciple: arrêt
#define ACTION_D_MARCHE 801 // disciple: marche
#define ACTION_D_BUILD 802 // disciple: construit
#define ACTION_D_PIOCHE 803 // disciple: pioche
#define ACTION_D_SCIE 804 // disciple: scie du bois
#define ACTION_D_TCHAO 805 // disciple: disparait !
#define ACTION_D_CUEILLE1 806 // disciple: cueille des fleurs
#define ACTION_D_CUEILLE2 807 // disciple: cueille des fleurs
#define ACTION_D_MECHE 808 // disciple: se bouche les oreilles
#define ACTION_D_ARROSE 809 // disciple: arrose
#define ACTION_D_BECHE 810 // disciple: bèche
// Sons :
#define SOUND_CLICK 0
#define SOUND_JUMP_MEDIUM 1
#define SOUND_JUMP_HIGH 2
#define SOUND_STEP 3
#define SOUND_BONK 4
#define SOUND_TURN 5
#define SOUND_WHOOPS 6
#define SOUND_CROUCH 7
#define SOUND_WAH 8
#define SOUND_RESPAWN 9
#define SOUND_EXPLODE 10
#define SOUND_CHEST 11
#define SOUND_EGG 12
#define SOUND_NOT_ENOUGH 13
#define SOUND_WIN 14
#define SOUND_HELI_START 15
#define SOUND_HELI_MOVE 16
#define SOUND_HELI_STOP 17
#define SOUND_HELI_IDLE 18
#define SOUND_CHEST_LAST 19
#define SOUND_CROUCH_END 20
#define SOUND_LOOK_UP 21
#define SOUND_JUMP_LOW 22
#define SOUND_SPLASH_BIG 23
#define SOUND_BUBBLES 24
#define SOUND_GASP 25
#define SOUND_DROWN 26
#define SOUND_CANT_USE 27
#define SOUND_JEEP_START 28
#define SOUND_JEEP_MOVE 29
#define SOUND_JEEP_STOP 30
#define SOUND_JEEP_IDLE 31
#define SOUND_LEVEL_START 32
#define SOUND_DOOR_OPEN 33
#define SOUND_BAR_GRAB 34
#define SOUND_BAR_PULLUP 35
#define SOUND_MONKEY 36
#define SOUND_FOOT_TAP 37
#define SOUND_CASE_PUSH 38
#define SOUND_CASE_PULL 39
#define SOUND_HURT_HEAD 40
#define SOUND_DOINK 41
#define SOUND_SHIELD_START 42
#define SOUND_SHIELD_END 43
#define SOUND_LOLLY_START 44
#define SOUND_LOLLY_END 45
#define SOUND_PHEW 46
#define SOUND_EXHILARATED 47
#define SOUND_EFFORT 48
#define SOUND_FRIGHTEN 49
#define SOUND_LOLLY_EAT 50
#define SOUND_GLUE_HIT 51
#define SOUND_GLUE_FIRE 52
#define SOUND_NO_ITEMS 53
#define SOUND_GLUE_GET 54
#define SOUND_POWER_START 55
#define SOUND_POWER_END 56
#define SOUND_DRINK 57
#define SOUND_POWER_GET 58
#define SOUND_POWER_HIT 59
#define SOUND_BOMB_GET 60
#define SOUND_BOMB_USE 61
#define SOUND_INVIS_START 62
#define SOUND_INVIS_END 63
#define SOUND_SPLASH_SMALL 64
#define SOUND_TAUNT 65
// Speedy Blupi 2
#define SOUND_INVERT_START 66
#define SOUND_INVERT_END 67
#define SOUND_SPRING 68 // where is this used ?
#define SOUND_LIGHTNING 69
#define SOUND_CRUSH_START 70
#define SOUND_TELEPORT 71
#define SOUND_BRIDGE_BREAK 72
#define SOUND_BRIDGE_APPEAR 73
#define SOUND_DIE 74
#define SOUND_SAW_HIT 75
#define SOUND_SAW_STOP 76
#define SOUND_SAW_START 77
#define SOUND_STEP_WOOD 78
#define SOUND_BONK_WOOD 79
#define SOUND_STEP_METAL 80
#define SOUND_BONK_METAL 81
#define SOUND_STEP_CAVE 82
#define SOUND_BONK_CAVE 83
#define SOUND_STEP_SLIME 84
#define SOUND_BONK_SLIME 85
#define SOUND_STEP_PLASTIC 86
#define SOUND_BONK_PLASTIC 87
#define SOUND_STEP_CHEESE 88
#define SOUND_BONK_CHEESE 89
#define SOUND_STEP_GRASS 90
#define SOUND_BONK_GRASS 91
#define SOUND_HOMING_BOMB 92
#define SOUND_MOVIE 99
// Boutons (play) :
#define MAXBUTTON 40
/* ?
#define BUTTON_GO 0
#define BUTTON_STOP 1
#define BUTTON_MANGE 2
#define BUTTON_CARRY 3
#define BUTTON_DEPOSE 4
#define BUTTON_ABAT 5
#define BUTTON_ROC 6
#define BUTTON_CULTIVE 7
#define BUTTON_BUILD1 8
#define BUTTON_BUILD2 9
#define BUTTON_BUILD3 10
#define BUTTON_BUILD4 11
#define BUTTON_BUILD5 12
#define BUTTON_BUILD6 13
#define BUTTON_MUR 14
#define BUTTON_PALIS 15
#define BUTTON_ABATn 16
#define BUTTON_ROCn 17
#define BUTTON_PONT 18
#define BUTTON_TOUR 19
#define BUTTON_BOIT 20
#define BUTTON_LABO 21
#define BUTTON_FLEUR 22
#define BUTTON_FLEURn 23
#define BUTTON_DYNAMITE 24
#define BUTTON_BATEAU 25
#define BUTTON_DJEEP 26
#define BUTTON_DRAPEAU 27
#define BUTTON_EXTRAIT 28
#define BUTTON_FABJEEP 29
#define BUTTON_FABMINE 30
#define BUTTON_FABDISC 31
#define BUTTON_REPEAT 32
#define BUTTON_DARMURE 33
#define BUTTON_FABARMURE 34
*/
// Lutins pour la souris
#define SPRITE_ARROW 1
#define SPRITE_POINTER 2
#define SPRITE_MAP 3
#define SPRITE_ARROWU 4
#define SPRITE_ARROWD 5
#define SPRITE_ARROWL 6
#define SPRITE_ARROWR 7
#define SPRITE_ARROWUL 8
#define SPRITE_ARROWUR 9
#define SPRITE_ARROWDL 10
#define SPRITE_ARROWDR 11
#define SPRITE_WAIT 12
#define SPRITE_EMPTY 13
#define SPRITE_FILL 14
// User define message
#define WM_UPDATE (WM_USER+1)
#define WM_DECOR1 (WM_USER+20)
#define WM_DECOR2 (WM_USER+21)
#define WM_DECOR3 (WM_USER+22)
#define WM_DECOR4 (WM_USER+23)
#define WM_DECOR5 (WM_USER+24)
#define WM_BUTTON0 (WM_USER+200)
#define WM_BUTTON1 (WM_USER+201)
#define WM_BUTTON2 (WM_USER+202)
#define WM_BUTTON3 (WM_USER+203)
#define WM_BUTTON4 (WM_USER+204)
#define WM_BUTTON5 (WM_USER+205)
#define WM_BUTTON6 (WM_USER+206)
#define WM_BUTTON7 (WM_USER+207)
#define WM_BUTTON8 (WM_USER+208)
#define WM_BUTTON9 (WM_USER+209)
#define WM_BUTTON10 (WM_USER+210)
#define WM_BUTTON11 (WM_USER+211)
#define WM_BUTTON12 (WM_USER+212)
#define WM_BUTTON13 (WM_USER+213)
#define WM_BUTTON14 (WM_USER+214)
#define WM_BUTTON15 (WM_USER+215)
#define WM_BUTTON16 (WM_USER+216)
#define WM_BUTTON17 (WM_USER+217)
#define WM_BUTTON18 (WM_USER+218)
#define WM_BUTTON19 (WM_USER+219)
#define WM_BUTTON20 (WM_USER+220)
#define WM_BUTTON21 (WM_USER+221)
#define WM_BUTTON22 (WM_USER+222)
#define WM_BUTTON23 (WM_USER+223)
#define WM_BUTTON24 (WM_USER+224)
#define WM_BUTTON25 (WM_USER+225)
#define WM_BUTTON26 (WM_USER+226)
#define WM_BUTTON27 (WM_USER+227)
#define WM_BUTTON28 (WM_USER+228)
#define WM_BUTTON29 (WM_USER+229)
#define WM_BUTTON30 (WM_USER+230)
#define WM_BUTTON31 (WM_USER+231)
#define WM_BUTTON32 (WM_USER+232)
#define WM_BUTTON33 (WM_USER+233)
#define WM_BUTTON34 (WM_USER+234)
#define WM_BUTTON35 (WM_USER+235)
#define WM_BUTTON36 (WM_USER+236)
#define WM_BUTTON37 (WM_USER+237)
#define WM_BUTTON38 (WM_USER+238)
#define WM_BUTTON39 (WM_USER+239)
#define WM_READ0 (WM_USER+300)
#define WM_READ1 (WM_USER+301)
#define WM_READ2 (WM_USER+302)
#define WM_READ3 (WM_USER+303)
#define WM_READ4 (WM_USER+304)
#define WM_READ5 (WM_USER+305)
#define WM_READ6 (WM_USER+306)
#define WM_READ7 (WM_USER+307)
#define WM_READ8 (WM_USER+308)
#define WM_READ9 (WM_USER+309)
#define WM_WRITE0 (WM_USER+310)
#define WM_WRITE1 (WM_USER+311)
#define WM_WRITE2 (WM_USER+312)
#define WM_WRITE3 (WM_USER+313)
#define WM_WRITE4 (WM_USER+314)
#define WM_WRITE5 (WM_USER+315)
#define WM_WRITE6 (WM_USER+316)
#define WM_WRITE7 (WM_USER+317)
#define WM_WRITE8 (WM_USER+318)
#define WM_WRITE9 (WM_USER+319)
#define WM_PHASE_INIT (WM_USER+500) //0x5F4
#define WM_PHASE_PLAY (WM_USER+501)
#define WM_PHASE_BUILD (WM_USER+502)
//#define WM_PHASE_READ (WM_USER+503)
//#define WM_PHASE_WRITE (WM_USER+504)
//#define WM_PHASE_INFO (WM_USER+505)
//#define WM_PHASE_BUTTON (WM_USER+506)
//#define WM_PHASE_TERM (WM_USER+507)
//#define WM_PHASE_WIN (WM_USER+508)
//#define WM_PHASE_LOST (WM_USER+509)
//#define WM_PHASE_STOP (WM_USER+510)
//#define WM_PHASE_SETUP (WM_USER+511)
//#define WM_PHASE_MUSIC (WM_USER+512) // 0x600
//#define WM_PHASE_PLAYMOVIE (WM_USER+513)
//#define WM_PHASE_WINMOVIE (WM_USER+514)
//#define WM_PHASE_SCHOOL (WM_USER+515)
//#define WM_PHASE_MISSION (WM_USER+516)
//#define WM_PHASE_LASTWIN (WM_USER+517)
//#define WM_PHASE_WRITEp (WM_USER+518)
//#define WM_PHASE_SETUPp (WM_USER+519)
//#define WM_PHASE_REGION (WM_USER+520)
//#define WM_PHASE_INSERT (WM_USER+521)
//#define WM_PHASE_HISTORY0 (WM_USER+522)
//#define WM_PHASE_HISTORY1 (WM_USER+523)
//#define WM_PHASE_HELP (WM_USER+524)
//#define WM_PHASE_H0MOVIE (WM_USER+525)
//#define WM_PHASE_H1MOVIE (WM_USER+526)
//#define WM_PHASE_H2MOVIE (WM_USER+527)
#define WM_PHASE_TESTCD (WM_USER+528) // 0x610
#define WM_PHASE_MANUEL (WM_USER+529)
//#define WM_PHASE_PRIVATE (WM_USER+530)
//#define WM_PHASE_UNDO (WM_USER+531)
#define WM_PHASE_BYE (WM_USER+532)
//#define WM_PHASE_SKILL1 (WM_USER+533)
//#define WM_PHASE_SKILL2 (WM_USER+534)
#define WM_PHASE_DEMO (WM_USER+535)
#define WM_PHASE_INTRO1 (WM_USER+536)
#define WM_PHASE_INTRO2 (WM_USER+537)
#define WM_PREV (WM_USER+600)
#define WM_NEXT (WM_USER+601)
#define WM_MOVIE (WM_USER+602)
// Types de gestion de la souris.
#define MOUSETYPEGRA 1
#define MOUSETYPEWIN 2
#define MOUSETYPEWINPOS 3
*/

66
event.cpp Normal file
View File

@ -0,0 +1,66 @@
// Event.cpp
//
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <ddraw.h>
#include "def.h"
#include "resource.h"
#include "pixmap.h"
#include "sound.h"
#include "decor.h"
#include "movie.h"
#include "button.h"
#include "menu.h"
#include "jauge.h"
#include "event.h"
#include "action.h"
#include "text.h"
#include "misc.h"
/////////////////////////////////////////////////////////////////////////////
static Phase table[] =
{
{
WM_PHASE_TESTCD,
"init.blp",
FALSE,
{
{
0
}
}
},
{
WM_PHASE_INIT,
"init.blp",
FALSE,
{
{
WM_PHASE_GAMER,
0, {1, 0x30},
86, 410,
{1, TX_BUTTON_PLAY}
},
{
WM_PHASE_DEMO,
0, {1, 0x54},
128, 410,
{1, TX_BUTTON_DEMO}
},
{
#if _EGAMES
WM_CLOSE,
#else
WM_PHASE_BYE,
#endif
0, {1, 6},
520, 410,
{1, TX_BUTTON_QUIT}
},
},
}
}

439
menu.cpp Normal file
View File

@ -0,0 +1,439 @@
// Menu.cpp
//
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <ddraw.h>
#include "def.h"
#include "resource.h"
#include "pixmap.h"
#include "sound.h"
#include "decor.h"
#include "button.h"
#include "menu.h"
#include "text.h"
#include "misc.h"
/////////////////////////////////////////////////////////////////////////////
#define MARGMENU 0
static short table_button_icon[] =
{
24, // go
40, // stop
32, // mange
30, // carry
31, // depose
22, // abat
27, // roc
28, // cultive
19, // build1 (cabane)
25, // build2 (couveuse)
35, // build3 (laboratoire)
61, // build4 (mine)
59, // build5 (usine)
101, // build6 (téléporteur)
20, // mur
26, // palis
42, // abat n
43, // roc n
23, // pont
33, // tour
34, // boit
39, // labo
54, // fleur
55, // fleur n
41, // dynamite
58, // bateau
60, // djeep
64, // drapeau
62, // extrait du fer
65, // fabrique jeep
63, // fabrique mine
83, // fabrique disciple
100, // repeat
107, // qarmure
106, // fabarmure
};
void GetText(int rank, char *pBuffer, int lgBuffer)
{
LoadString(TX_ACTION_GO+rank, pBuffer, lgBuffer);
}
void GetErr(int rank, char *pBuffer, int lgBuffer)
{
LoadString(TX_ERROR_MISC+rank, pBuffer, lgBuffer);
}
/////////////////////////////////////////////////////////////////////////////
// Constructeur.
CMenu::CMenu()
{
m_nbButtons = 0;
m_selRank = -1;
}
// Destructeur.
CMenu::~CMenu()
{
}
// Crée un nouveau bouton.
BOOL CMenu::Create(HWND hWnd, CPixmap *pPixmap, CSound *pSound,
POINT pos, int nb, int *pButtons, int *pErrors,
int perso)
{
pos.x -= DIMBUTTONX/2;
pos.y -= DIMBUTTONY/2;
m_hWnd = hWnd;
m_pPixmap = pPixmap;
m_pSound = pSound;
m_nbButtons = nb;
m_pos = pos;
m_perso = perso;
Update(nb, pButtons, pErrors);
if ( m_pos.x < POSDRAWX ) m_pos.x = POSDRAWX;
if ( m_pos.y < POSDRAWY ) m_pos.y = POSDRAWY;
if ( m_pos.x > POSDRAWX+DIMDRAWX-2-m_dim.x ) m_pos.x = POSDRAWX+DIMDRAWX-2-m_dim.x;
if ( m_pos.y > POSDRAWY+DIMDRAWY-2-m_dim.y ) m_pos.y = POSDRAWY+DIMDRAWY-2-m_dim.y;
if ( m_pos.x != pos.x || m_pos.y != pos.y )
{
pos = m_pos;
pos.x += DIMBUTTONX/2;
pos.y += DIMBUTTONY/2;
ClientToScreen(m_hWnd, &pos);
SetCursorPos(pos.x, pos.y);
}
m_selRank = Detect(pos);
return TRUE;
}
// Met à jour le menu.
void CMenu::Update(int nb, int *pButtons, int *pErrors)
{
int i;
m_nbButtons = nb;
if ( nb < 5 ) m_nbCel.x = 1;
else m_nbCel.x = 2;
m_nbCel.y = (nb+m_nbCel.x-1)/m_nbCel.x;
m_dim.x = (DIMBUTTONX+MARGMENU)*m_nbCel.x;
m_dim.y = (DIMBUTTONY+MARGMENU)*m_nbCel.y;
for ( i=0 ; i<nb ; i++ )
{
m_buttons[i] = pButtons[i];
m_errors[i] = pErrors[i];
}
}
// Détruit le menu.
void CMenu::Delete()
{
m_nbButtons = 0;
m_selRank = -1;
}
// Dessine un bouton dans son état.
void CMenu::Draw()
{
int i, state, icon;
POINT pos;
RECT oldClip, clipRect;
BOOL bLeft = TRUE;
BOOL bRight = TRUE;
char text[50];
char* pText;
if ( m_nbButtons == 0 ) return;
oldClip = m_pPixmap->GetClipping();
clipRect.left = POSDRAWX;
clipRect.top = POSDRAWY;
clipRect.right = POSDRAWX+DIMDRAWX;
clipRect.bottom = POSDRAWY+DIMDRAWY;
m_pPixmap->SetClipping(clipRect);
if ( m_pos.x-150 < POSDRAWX ) bLeft = FALSE;
if ( m_pos.x+m_dim.x+150 > POSDRAWX+DIMDRAWX ) bRight = FALSE;
for ( i=0 ; i<m_nbButtons ; i++ )
{
pos.x = m_pos.x+((i/m_nbCel.y)*(DIMBUTTONX+MARGMENU));
pos.y = m_pos.y+((i%m_nbCel.y)*(DIMBUTTONY+MARGMENU));
if ( i == m_selRank ) state = 2; // hilite
else state = 0; // release
if ( m_errors[i] != 0 &&
m_errors[i] != ERROR_TOURISOL &&
m_errors[i] < 100 )
{
state = 4; // disable
}
m_pPixmap->DrawIcon(-1, CHBUTTON, state, pos);
icon = table_button_icon[m_buttons[i]];
if ( m_perso == 8 ) // disciple ?
{
if ( icon == 30 ) icon = 88; // prend
if ( icon == 31 ) icon = 89; // dépose
}
m_pPixmap->DrawIcon(-1, CHBUTTON, icon+6, pos);
}
// Affiche le texte d'aide.
if ( m_selRank != -1 )
{
i = m_selRank;
pos.y = m_pos.y+((i%m_nbCel.y)*(DIMBUTTONY+MARGMENU));
if ( m_errors[i] == 0 )
{
pos.y += (DIMBUTTONY-DIMTEXTY)/2;
}
else
{
pos.y += (DIMBUTTONY-DIMTEXTY*2)/2;
}
if ( m_errors[i] >= 100 ) // no ressource au lieu erreur ?
{
LoadString(m_errors[i], text, 50);
pText = strchr(text, '\n');
if ( pText != NULL ) *pText = 0;
}
else
{
GetText(m_buttons[i], text, 50);
}
if ( m_nbCel.x > 1 && i < m_nbCel.y )
{
// if ( bLeft )
// {
pos.x = m_pos.x-4-GetTextWidth(text); // texte à gauche
// }
// else
// {
// pos.x = m_pos.x+((i/m_nbCel.y)+1)+(DIMBUTTONX+MARGMENU)+4;
// }
}
else
{
// if ( bRight )
// {
pos.x = m_pos.x+m_dim.x+4; // texte à droite
// }
// else
// {
// pos.x = m_pos.x+(i/m_nbCel.y)*(DIMBUTTONX+MARGMENU)-4-GetTextWidth(text);
// }
}
DrawText(m_pPixmap, pos, text, FONTWHITE);
if ( m_errors[i] != 0 )
{
if ( m_errors[i] >= 100 ) // no ressource au lieu erreur ?
{
LoadString(m_errors[i], text, 50);
pText = strchr(text, '\n');
if ( pText != NULL ) strcpy(text, pText+1);
}
else
{
GetErr(m_errors[i]-1, text, 50); // impossible ici
}
if ( m_nbCel.x > 1 && i < m_nbCel.y )
{
// if ( bLeft )
// {
pos.x = m_pos.x-4-GetTextWidth(text); // texte à gauche
// }
// else
// {
// pos.x = m_pos.x+((i/m_nbCel.y)+1)+(DIMBUTTONX+MARGMENU)+4;
// }
}
else
{
// if ( bRight )
// {
pos.x = m_pos.x+m_dim.x+4; // texte à droite
// }
// else
// {
// pos.x = m_pos.x+(i/m_nbCel.y)*(DIMBUTTONX+MARGMENU)-4-GetTextWidth(text);
// }
}
pos.y += DIMTEXTY;
if ( m_errors[i] >= 100 ) // no ressource au lieu erreur ?
{
DrawText(m_pPixmap, pos, text, FONTWHITE);
}
else
{
DrawText(m_pPixmap, pos, text, FONTRED);
}
}
}
m_pPixmap->SetClipping(oldClip);
}
// Retourne le bouton sélectionné.
int CMenu::GetSel()
{
if ( m_selRank == -1 ) return -1;
return m_buttons[m_selRank];
}
// Retourne le rang sélectionné.
int CMenu::GetRank()
{
return m_selRank;
}
// Retourne TRUE si le bouton sélectionné a une erreur.
BOOL CMenu::IsError()
{
if ( m_selRank == -1 ) return TRUE;
if ( m_errors[m_selRank] != 0 &&
m_errors[m_selRank] < 100 ) return TRUE;
return FALSE;
}
// Indique si le menu existe.
BOOL CMenu::IsExist()
{
return ( m_nbButtons == 0 ) ? FALSE:TRUE;
}
// Traitement d'un événement.
BOOL CMenu::TreatEvent(UINT message, WPARAM wParam, LPARAM lParam)
{
POINT pos;
if ( m_nbButtons == 0 ) return FALSE;
pos = ConvLongToPos(lParam);
switch( message )
{
case WM_LBUTTONDOWN:
case WM_RBUTTONDOWN:
if ( MouseDown(pos) ) return TRUE;
break;
case WM_MOUSEMOVE:
if ( MouseMove(pos) ) return TRUE;
break;
case WM_LBUTTONUP:
case WM_RBUTTONUP:
if ( MouseUp(pos) ) return TRUE;
break;
}
return FALSE;
}
// Détecte dans quel bouton est la souris.
int CMenu::Detect(POINT pos)
{
int rank;
if ( pos.x < m_pos.x || pos.x > m_pos.x+m_dim.x ||
pos.y < m_pos.y || pos.y > m_pos.y+m_dim.y ) return -1;
rank = (pos.y-m_pos.y)/(DIMBUTTONY+MARGMENU);
rank += ((pos.x-m_pos.x)/(DIMBUTTONX+MARGMENU))*m_nbCel.y;
if ( rank >= m_nbButtons ) return -1;
return rank;
}
// Bouton de la souris pressé.
BOOL CMenu::MouseDown(POINT pos)
{
return FALSE;
}
// Souris déplacés.
BOOL CMenu::MouseMove(POINT pos)
{
m_mousePos = pos;
m_selRank = Detect(pos);
if ( pos.x < m_pos.x-(DIMBUTTONX+MARGMENU) ||
pos.x > m_pos.x+m_dim.x+(DIMBUTTONX+MARGMENU) ||
pos.y < m_pos.y-(DIMBUTTONY+MARGMENU) ||
pos.y > m_pos.y+m_dim.y+(DIMBUTTONY+MARGMENU) )
{
Delete(); // enlève le menu si souris trop loin !
}
return FALSE;
}
// Bouton de la souris relâché.
BOOL CMenu::MouseUp(POINT pos)
{
m_mousePos = pos;
m_selRank = Detect(pos);
return FALSE;
}
// Envoie le message.
void CMenu::Message()
{
if ( m_selRank != -1 )
{
PostMessage(m_hWnd, WM_BUTTON0+m_selRank, 0, 0);
}
}

398
misc.cpp Normal file
View File

@ -0,0 +1,398 @@
// misc.cpp
//
#include <dsound.h>
#include <ddraw.h>
#include <stdio.h>
#include <stdlib.h>
#include "def.h"
// Variables globales
HINSTANCE g_hInstance;
int g_lastSprite = 0;
extern BOOL g_bFullScreen; // FALSE si mode de test
extern int g_mouseType;
extern char g_CDPath[MAX_PATH];
// Initialise HInstance.
void InitHInstance(HINSTANCE hInstance)
{
g_hInstance = hInstance;
}
// Affiche un message de debug.
void OutputDebug(char *pMessage)
{
#ifdef _DEBUG
OutputDebugString(pMessage);
#endif
}
// Charge un texte dans une ressource.
void LoadString(UINT nID, char *pBuffer, int lgBuffer)
{
LoadString(g_hInstance, nID, pBuffer, lgBuffer);
}
// Change le lutin de la souris.
void ChangeSprite(int sprite)
{
HCURSOR hCursor = nullptr;
if ( g_mouseType == MOUSETYPEGRA ) return;
if ( g_lastSprite == sprite ) return;
if ( sprite == SPRITE_ARROW ) hCursor = LoadCursor(g_hInstance, "IDC_ARROW");
if ( sprite == SPRITE_POINTER ) hCursor = LoadCursor(g_hInstance, "IDC_POINTER");
if ( sprite == SPRITE_MAP ) hCursor = LoadCursor(g_hInstance, "IDC_MAP");
if ( sprite == SPRITE_ARROWU ) hCursor = LoadCursor(g_hInstance, "IDC_ARROWU");
if ( sprite == SPRITE_ARROWD ) hCursor = LoadCursor(g_hInstance, "IDC_ARROWD");
if ( sprite == SPRITE_ARROWL ) hCursor = LoadCursor(g_hInstance, "IDC_ARROWL");
if ( sprite == SPRITE_ARROWR ) hCursor = LoadCursor(g_hInstance, "IDC_ARROWR");
if ( sprite == SPRITE_ARROWUL ) hCursor = LoadCursor(g_hInstance, "IDC_ARROWUL");
if ( sprite == SPRITE_ARROWUR ) hCursor = LoadCursor(g_hInstance, "IDC_ARROWUR");
if ( sprite == SPRITE_ARROWDL ) hCursor = LoadCursor(g_hInstance, "IDC_ARROWDL");
if ( sprite == SPRITE_ARROWDR ) hCursor = LoadCursor(g_hInstance, "IDC_ARROWDR");
if ( sprite == SPRITE_WAIT ) hCursor = LoadCursor(g_hInstance, "IDC_WAIT");
if ( sprite == SPRITE_EMPTY ) hCursor = LoadCursor(g_hInstance, "IDC_EMPTY");
if ( sprite == SPRITE_FILL ) hCursor = LoadCursor(g_hInstance, "IDC_FILL");
SetCursor(hCursor);
g_lastSprite = sprite;
}
// Conversion de la position de la souris.
POINT ConvLongToPos(LPARAM lParam)
{
POINT pos;
pos.x = LOWORD(lParam); // horizontal position of cursor
pos.y = HIWORD(lParam); // vertical position of cursor
// if ( !g_bFullScreen )
// {
// pos.y -= GetSystemMetrics(SM_CYCAPTION);
// }
return pos;
}
// Réinitialise le générateur aléatoire.
void InitRandom()
{
srand(1);
}
// Retourne un nombre aléatoire compris entre
// deux bornes (inclues).
int Random(int min, int max)
{
long n;
n = rand();
n = min+(n%(max-min+1));
return (int)n;
}
// Retourne le nom de dossier en cours.
void GetCurrentDir(char *pName, int lg)
{
int i;
strncpy(pName, _pgmptr, lg-1);
pName[lg-1] = 0;
lg = strlen(pName);
if ( lg == 0 ) return;
for ( i=0 ; i<lg ; i++ )
{
pName[i] = tolower(pName[i]);
}
while ( lg > 0 )
{
lg --;
if ( pName[lg] == '\\' )
{
pName[lg+1] = 0;
break;
}
}
if ( lg > 6 && strcmp(pName+lg-6, "\\debug\\") == 0 )
{
pName[lg-5] = 0; // ignore le dossier \debug !
}
}
// Ajoute le chemin permettant de lire un fichier
// sur le CD-Rom.
void AddCDPath(char *pFilename)
{
char temp[MAX_PATH];
int lg;
BOOL bDaniel = FALSE;
if ( g_CDPath[0] == 0 ) return;
lg = strlen(g_CDPath);
if ( lg > 14 && strstr(g_CDPath+lg-14, "\\daniel\\blupi\\") )
{
bDaniel = TRUE;
}
#if _DEMO
strcpy(temp, g_CDPath);
strcat(temp, pFilename);
#else
if ( !bDaniel &&
(strstr(pFilename, "image\\") == pFilename ||
strstr(pFilename, "movie\\") == pFilename) )
{
strcpy(temp, g_CDPath);
strcat(temp, "..\\");
strcat(temp, pFilename);
}
else
{
strcpy(temp, g_CDPath);
strcat(temp, pFilename);
}
#endif
strcpy(pFilename, temp);
}
// Ajoute le chemin permettant de lire un fichier
// utilisateur.
void AddUserPath(char *pFilename)
{
char temp[MAX_PATH];
char* pText;
int pos;
char last;
SECURITY_ATTRIBUTES att;
if ( g_CDPath[0] != 0 ) return;
#if _EGAMES
strcpy(temp, "c:\\Planet Blupi Full\\");
#if _DEMO
strcpy(temp, "c:\\Planet Blupi Demo\\");
#endif
#if _SE
strcpy(temp, "c:\\Planet Blupi SE\\");
#endif
#else
strcpy(temp, "c:\\Planète Blupi\\");
#endif
att.nLength = sizeof(SECURITY_ATTRIBUTES);
att.lpSecurityDescriptor = NULL;
att.bInheritHandle = FALSE;
CreateDirectory(temp, &att);
pText = strstr(pFilename, "\\");
if ( pText != NULL )
{
pos = strlen(temp)+(pText-pFilename)+1;
strcat(temp, pFilename);
last = temp[pos];
temp[pos] = 0;
CreateDirectory(temp, &att);
temp[pos] = last;
}
else
{
strcat(temp, pFilename);
}
strcpy(pFilename, temp);
}
//----------------------------------------------------------------------
//
// Function : TraceErrorDD()
//
// Purpose : Traces an error (DirectDraw)
//
//----------------------------------------------------------------------
void TraceErrorDD(HRESULT hErr, char *sFile, int nLine)
{
char dderr[256];
char err[1024];
switch (hErr)
{
case DD_OK : sprintf(dderr, "DD_OK"); break;
case DDERR_ALREADYINITIALIZED : sprintf(dderr, "DDERR_ALREADYINITIALIZED"); break;
case DDERR_CANNOTATTACHSURFACE : sprintf(dderr, "DDERR_CANNOTATTACHSURFACE"); break;
case DDERR_CANNOTDETACHSURFACE : sprintf(dderr, "DDERR_CANNOTDETACHSURFACE"); break;
case DDERR_CURRENTLYNOTAVAIL : sprintf(dderr, "DDERR_CURRENTLYNOTAVAIL"); break;
case DDERR_EXCEPTION : sprintf(dderr, "DDERR_EXCEPTION"); break;
case DDERR_GENERIC : sprintf(dderr, "DDERR_GENERIC"); break;
case DDERR_HEIGHTALIGN : sprintf(dderr, "DDERR_HEIGHTALIGN"); break;
case DDERR_INCOMPATIBLEPRIMARY : sprintf(dderr, "DDERR_INCOMPATIBLEPRIMARY"); break;
case DDERR_INVALIDCAPS : sprintf(dderr, "DDERR_INVALIDCAPS"); break;
case DDERR_INVALIDCLIPLIST : sprintf(dderr, "DDERR_INVALIDCLIPLIST"); break;
case DDERR_INVALIDMODE : sprintf(dderr, "DDERR_INVALIDMODE"); break;
case DDERR_INVALIDOBJECT : sprintf(dderr, "DDERR_INVALIDOBJECT"); break;
case DDERR_INVALIDPARAMS : sprintf(dderr, "DDERR_INVALIDPARAMS"); break;
case DDERR_INVALIDPIXELFORMAT : sprintf(dderr, "DDERR_INVALIDPIXELFORMAT"); break;
case DDERR_INVALIDRECT : sprintf(dderr, "DDERR_INVALIDRECT"); break;
case DDERR_LOCKEDSURFACES : sprintf(dderr, "DDERR_LOCKEDSURFACES"); break;
case DDERR_NO3D : sprintf(dderr, "DDERR_NO3D"); break;
case DDERR_NOALPHAHW : sprintf(dderr, "DDERR_NOALPHAHW"); break;
case DDERR_NOCLIPLIST : sprintf(dderr, "DDERR_NOCLIPLIST"); break;
case DDERR_NOCOLORCONVHW : sprintf(dderr, "DDERR_NOCOLORCONVHW"); break;
case DDERR_NOCOOPERATIVELEVELSET : sprintf(dderr, "DDERR_NOCOOPERATIVELEVELSET"); break;
case DDERR_NOCOLORKEY : sprintf(dderr, "DDERR_NOCOLORKEY"); break;
case DDERR_NOCOLORKEYHW : sprintf(dderr, "DDERR_NOCOLORKEYHW"); break;
case DDERR_NODIRECTDRAWSUPPORT : sprintf(dderr, "DDERR_NODIRECTDRAWSUPPORT"); break;
case DDERR_NOEXCLUSIVEMODE : sprintf(dderr, "DDERR_NOEXCLUSIVEMODE"); break;
case DDERR_NOFLIPHW : sprintf(dderr, "DDERR_NOFLIPHW"); break;
case DDERR_NOGDI : sprintf(dderr, "DDERR_NOGDI"); break;
case DDERR_NOMIRRORHW : sprintf(dderr, "DDERR_NOMIRRORHW"); break;
case DDERR_NOTFOUND : sprintf(dderr, "DDERR_NOTFOUND"); break;
case DDERR_NOOVERLAYHW : sprintf(dderr, "DDERR_NOOVERLAYHW"); break;
case DDERR_NORASTEROPHW : sprintf(dderr, "DDERR_NORASTEROPHW"); break;
case DDERR_NOROTATIONHW : sprintf(dderr, "DDERR_NOROTATIONHW"); break;
case DDERR_NOSTRETCHHW : sprintf(dderr, "DDERR_NOSTRETCHHW"); break;
case DDERR_NOT4BITCOLOR : sprintf(dderr, "DDERR_NOT4BITCOLOR"); break;
case DDERR_NOT4BITCOLORINDEX : sprintf(dderr, "DDERR_NOT4BITCOLORINDEX"); break;
case DDERR_NOT8BITCOLOR : sprintf(dderr, "DDERR_NOT8BITCOLOR"); break;
case DDERR_NOTEXTUREHW : sprintf(dderr, "DDERR_NOTEXTUREHW"); break;
case DDERR_NOVSYNCHW : sprintf(dderr, "DDERR_NOVSYNCHW"); break;
case DDERR_NOZBUFFERHW : sprintf(dderr, "DDERR_NOZBUFFERHW"); break;
case DDERR_NOZOVERLAYHW : sprintf(dderr, "DDERR_NOZOVERLAYHW"); break;
case DDERR_OUTOFCAPS : sprintf(dderr, "DDERR_OUTOFCAPS"); break;
case DDERR_OUTOFMEMORY : sprintf(dderr, "DDERR_OUTOFMEMORY"); break;
case DDERR_OUTOFVIDEOMEMORY : sprintf(dderr, "DDERR_OUTOFVIDEOMEMORY"); break;
case DDERR_OVERLAYCANTCLIP : sprintf(dderr, "DDERR_OVERLAYCANTCLIP"); break;
case DDERR_OVERLAYCOLORKEYONLYONEACTIVE : sprintf(dderr, "DDERR_OVERLAYCOLORKEYONLYONEACTIVE"); break;
case DDERR_PALETTEBUSY : sprintf(dderr, "DDERR_PALETTEBUSY"); break;
case DDERR_COLORKEYNOTSET : sprintf(dderr, "DDERR_COLORKEYNOTSET"); break;
case DDERR_SURFACEALREADYATTACHED : sprintf(dderr, "DDERR_SURFACEALREADYATTACHED"); break;
case DDERR_SURFACEALREADYDEPENDENT : sprintf(dderr, "DDERR_SURFACEALREADYDEPENDENT"); break;
case DDERR_SURFACEBUSY : sprintf(dderr, "DDERR_SURFACEBUSY"); break;
case DDERR_CANTLOCKSURFACE : sprintf(dderr, "DDERR_CANTLOCKSURFACE"); break;
case DDERR_SURFACEISOBSCURED : sprintf(dderr, "DDERR_SURFACEISOBSCURED"); break;
case DDERR_SURFACELOST : sprintf(dderr, "DDERR_SURFACELOST"); break;
case DDERR_SURFACENOTATTACHED : sprintf(dderr, "DDERR_SURFACENOTATTACHED"); break;
case DDERR_TOOBIGHEIGHT : sprintf(dderr, "DDERR_TOOBIGHEIGHT"); break;
case DDERR_TOOBIGSIZE : sprintf(dderr, "DDERR_TOOBIGSIZE"); break;
case DDERR_TOOBIGWIDTH : sprintf(dderr, "DDERR_TOOBIGWIDTH"); break;
case DDERR_UNSUPPORTED : sprintf(dderr, "DDERR_UNSUPPORTED"); break;
case DDERR_UNSUPPORTEDFORMAT : sprintf(dderr, "DDERR_UNSUPPORTEDFORMAT"); break;
case DDERR_UNSUPPORTEDMASK : sprintf(dderr, "DDERR_UNSUPPORTEDMASK"); break;
case DDERR_VERTICALBLANKINPROGRESS : sprintf(dderr, "DDERR_VERTICALBLANKINPROGRESS"); break;
case DDERR_WASSTILLDRAWING : sprintf(dderr, "DDERR_WASSTILLDRAWING"); break;
case DDERR_XALIGN : sprintf(dderr, "DDERR_XALIGN"); break;
case DDERR_INVALIDDIRECTDRAWGUID : sprintf(dderr, "DDERR_INVALIDDIRECTDRAWGUID"); break;
case DDERR_DIRECTDRAWALREADYCREATED : sprintf(dderr, "DDERR_DIRECTDRAWALREADYCREATED"); break;
case DDERR_NODIRECTDRAWHW : sprintf(dderr, "DDERR_NODIRECTDRAWHW"); break;
case DDERR_PRIMARYSURFACEALREADYEXISTS : sprintf(dderr, "DDERR_PRIMARYSURFACEALREADYEXISTS"); break;
case DDERR_NOEMULATION : sprintf(dderr, "DDERR_NOEMULATION"); break;
case DDERR_REGIONTOOSMALL : sprintf(dderr, "DDERR_REGIONTOOSMALL"); break;
case DDERR_CLIPPERISUSINGHWND : sprintf(dderr, "DDERR_CLIPPERISUSINGHWND"); break;
case DDERR_NOCLIPPERATTACHED : sprintf(dderr, "DDERR_NOCLIPPERATTACHED"); break;
case DDERR_NOHWND : sprintf(dderr, "DDERR_NOHWND"); break;
case DDERR_HWNDSUBCLASSED : sprintf(dderr, "DDERR_HWNDSUBCLASSED"); break;
case DDERR_HWNDALREADYSET : sprintf(dderr, "DDERR_HWNDALREADYSET"); break;
case DDERR_NOPALETTEATTACHED : sprintf(dderr, "DDERR_NOPALETTEATTACHED"); break;
case DDERR_NOPALETTEHW : sprintf(dderr, "DDERR_NOPALETTEHW"); break;
case DDERR_BLTFASTCANTCLIP : sprintf(dderr, "DDERR_BLTFASTCANTCLIP"); break;
case DDERR_NOBLTHW : sprintf(dderr, "DDERR_NOBLTHW"); break;
case DDERR_NODDROPSHW : sprintf(dderr, "DDERR_NODDROPSHW"); break;
case DDERR_OVERLAYNOTVISIBLE : sprintf(dderr, "DDERR_OVERLAYNOTVISIBLE"); break;
case DDERR_NOOVERLAYDEST : sprintf(dderr, "DDERR_NOOVERLAYDEST"); break;
case DDERR_INVALIDPOSITION : sprintf(dderr, "DDERR_INVALIDPOSITION"); break;
case DDERR_NOTAOVERLAYSURFACE : sprintf(dderr, "DDERR_NOTAOVERLAYSURFACE"); break;
case DDERR_EXCLUSIVEMODEALREADYSET : sprintf(dderr, "DDERR_EXCLUSIVEMODEALREADYSET"); break;
case DDERR_NOTFLIPPABLE : sprintf(dderr, "DDERR_NOTFLIPPABLE"); break;
case DDERR_CANTDUPLICATE : sprintf(dderr, "DDERR_CANTDUPLICATE"); break;
case DDERR_NOTLOCKED : sprintf(dderr, "DDERR_NOTLOCKED"); break;
case DDERR_CANTCREATEDC : sprintf(dderr, "DDERR_CANTCREATEDC"); break;
case DDERR_NODC : sprintf(dderr, "DDERR_NODC"); break;
case DDERR_WRONGMODE : sprintf(dderr, "DDERR_WRONGMODE"); break;
case DDERR_IMPLICITLYCREATED : sprintf(dderr, "DDERR_IMPLICITLYCREATED"); break;
case DDERR_NOTPALETTIZED : sprintf(dderr, "DDERR_NOTPALETTIZED"); break;
case DDERR_UNSUPPORTEDMODE : sprintf(dderr, "DDERR_UNSUPPORTEDMODE"); break;
case DDERR_NOMIPMAPHW : sprintf(dderr, "DDERR_NOMIPMAPHW"); break;
case DDERR_INVALIDSURFACETYPE : sprintf(dderr, "DDERR_INVALIDSURFACETYPE"); break;
case DDERR_DCALREADYCREATED : sprintf(dderr, "DDERR_DCALREADYCREATED"); break;
case DDERR_CANTPAGELOCK : sprintf(dderr, "DDERR_CANTPAGELOCK"); break;
case DDERR_CANTPAGEUNLOCK : sprintf(dderr, "DDERR_CANTPAGEUNLOCK"); break;
case DDERR_NOTPAGELOCKED : sprintf(dderr, "DDERR_NOTPAGELOCKED"); break;
case DDERR_NOTINITIALIZED : sprintf(dderr, "DDERR_NOTINITIALIZED"); break;
default : sprintf(dderr, "Unknown Error"); break;
}
sprintf(err, "DirectDraw Error %s in file %s at line %d\n", dderr, sFile, nLine);
OutputDebug(err);
}
//----------------------------------------------------------------------
//
// Function : TraceErrorDS()
//
// Purpose : Traces an error (DirectSound)
//
//----------------------------------------------------------------------
void TraceErrorDS(HRESULT hErr, char *sFile, int nLine)
{
char dserr[256];
char err[1024];
switch (hErr)
{
case DS_OK : sprintf(dserr, "DD_OK"); break;
case DSERR_ALLOCATED : sprintf(dserr, "DSERR_ALLOCATED"); break;
case DSERR_CONTROLUNAVAIL : sprintf(dserr, "DSERR_CONTROLUNAVAIL"); break;
case DSERR_INVALIDPARAM : sprintf(dserr, "DSERR_INVALIDPARAM"); break;
case DSERR_INVALIDCALL : sprintf(dserr, "DSERR_INVALIDCALL"); break;
case DSERR_GENERIC : sprintf(dserr, "DSERR_GENERIC"); break;
case DSERR_PRIOLEVELNEEDED : sprintf(dserr, "DSERR_PRIOLEVELNEEDED"); break;
case DSERR_OUTOFMEMORY : sprintf(dserr, "DSERR_OUTOFMEMORY"); break;
case DSERR_BADFORMAT : sprintf(dserr, "DSERR_BADFORMAT"); break;
case DSERR_UNSUPPORTED : sprintf(dserr, "DSERR_UNSUPPORTED"); break;
case DSERR_NODRIVER : sprintf(dserr, "DSERR_NODRIVER"); break;
case DSERR_ALREADYINITIALIZED : sprintf(dserr, "DSERR_ALREADYINITIALIZED"); break;
case DSERR_NOAGGREGATION : sprintf(dserr, "DSERR_NOAGGREGATION"); break;
case DSERR_BUFFERLOST : sprintf(dserr, "DSERR_BUFFERLOST"); break;
case DSERR_OTHERAPPHASPRIO : sprintf(dserr, "DSERR_OTHERAPPHASPRIO"); break;
case DSERR_UNINITIALIZED : sprintf(dserr, "DSERR_UNINITIALIZED"); break;
default : sprintf(dserr, "Unknown Error"); break;
}
sprintf(err, "DirectSound Error %s in file %s at line %d\n", dserr, sFile, nLine);
OutputDebug(err);
}

0
network.cpp Normal file
View File

0
network.h Normal file
View File

343
resource.h Normal file
View File

@ -0,0 +1,343 @@
#define TX_IONAMEEX 100
#define TX_IOFREE 101
#define IDR_MENU 102 // ?
#define TX_OWNLEVEL 102
#define TX_BUTTON_TESTTHISLEVEL 103
#define TX_BUTTON_LEVELS 104
#define TX_BUTTON_TRAINING 105
#define TX_BUTTON_QUITBLUPI 106
#define TX_BUTTON_PREVIOUSLEVEL 107
#define TX_BUTTON_NEXTLEVEL 108
#define TX_BUTTON_PLAY 109 //init, info
#define TX_BUTTON_DESIGNLEVEL 110
#define TX_BUTTON_FINISH 111
#define TX_BUTTON_OPENLEVEL 112
#define TX_BUTTON_SAVELEVEL 113
#define TX_BUTTON_QUITLEVEL 114
#define TX_BUTTON_CONTINUELEVEL 115
#define TX_BUTTON_RESTARTLEVEL 116
#define TX_BUTTON_CHOOSEPLAYER 117
#define TX_BUTTON_PLAYERNAME 118
#define TX_BUTTON_QUITDESIGN 119
#define TX_BUTTON_CHOOSESIZE 120
#define TX_BUTTON_SCROLL_BOTH 121
#define TX_BUTTON_SCROLL_HORIZONTAL 122
#define TX_BUTTON_SCROLL_VERTICAL 123
#define TX_BUTTON_TESTTHELEVEL 124
#define TX_PAUSE 125
#define TX_BUTTON_SCROLL_TINY 126
#define TX_BUTTON_CLEARPLAYER 127
#define TX_BUTTON_SETTINGS 128
#define TX_BUTTON_CHOOSEMUSIC 129
#define TX_BUTTON_SOUNDVOLUMEDOWN 130
#define TX_BUTTON_SOUNDVOLUMEUP 131
#define TX_BUTTON_MUSICVOLUMEDOWN 132
#define TX_BUTTON_MUSICVOLUMEUP 133
#define TX_BUTTON_NOMUSIC 134
#define TX_BUTTON_MUSIC1 135
#define TX_BUTTON_MUSIC2 136
#define TX_BUTTON_MUSIC3 137
#define TX_BUTTON_MUSIC4 138
#define TX_BUTTON_MUSIC5 139
#define TX_BUTTON_MUSIC6 140
#define TX_BUTTON_MUSIC7 141
#define TX_BUTTON_MUSIC8 142
#define TX_BUTTON_MUSIC9 143
#define TX_BUTTON_CHOOSEBACKGROUND 144
#define TX_DISCARDGAME 145
#define TX_BLUPI 146
#define TX_DESIGNLEVELS 147
#define TX_INFO_CHOOSEPLAYER 148
#define TX_CHOOSEMUSIC 149
#define TX_TRAININGNUMBER 150
#define TX_LEVELNUMBER 151
#define TX_IONAMEMI 152
#define TX_CHOOSESIZE 153
#define TX_BUTTON_256COLOR_BACKGROUND 154
#define TX_BUTTON_65000COLOR_BACKGROUND 155
#define TX_BUTTON_KEYBOARD 156
#define TX_BUTTON_JOYSTICK 157
#define TX_YES 158
#define TX_NO 159
#define TX_SETTINGS 160
#define TX_INFO_WRITELEVEL 161
#define TX_INFO_SOUNDVOLUME 162
#define TX_INFO_MUSICVOLUME 163
#define TX_INFO_COLORDEPTH 164
#define TX_INFO_INPUTDEVICE 165
#define TX_INFO_READLEVEL 166
#define TX_INFO_PLAYERNUMBER 167
#define TX_INFO_PLAYERFREE 168
#define TX_INFO_DOOROPEN 169
#define TX_INFO_DOORSOPEN 170
#define TX_INFO_MUSIC10 171
#define TX_INFO_PLAYERNAME 172
#define TX_INFO_NOSCROLL 173
#define TX_BUTTON_OKAY 174
#define TX_BUTTON_CANCEL 175
#define TX_BUTTON_YES 176
#define TX_BUTTON_NO 177
#define TX_CHOOSEBACKGROUND 178
#define TX_BUTTON_PLAY_SUSPEND 179
#define TX_BUTTON_PLAY_SETTINGS 180
#define TX_BUTTON_PLAY_SAVE 181
#define TX_INSERT 182
#define TX_BUTTON_DELETELEVEL 183
#define TX_DELETELEVEL 184
#define TX_BUTTON_NAMELEVEL 185
#define TX_NAMELEVEL 186
#define TX_NONAME 187
#define TX_BUTTON_DESIGN 188
#define TX_DESIGNNUMBER 189
#define TX_IONAMEPR 190
#define TX_FILENAME_WRITELEVEL 191
#define TX_NEXTFILES 192
#define TX_PREVIOUSFILES 193
#define TX_FOLDERCONTENT 194
#define TX_BUTTON_SINGLEPLAYER 195
#define TX_BUTTON_MULTIPLAYER 196
#define TX_GAMEPAUSED 197 //stop
#define TX_BUTTON_UNDO 198
#define TX_DEMO_END1 199
#define TX_DEMO_END2 200
#define TX_DEMO_END3 201
#define TX_DEMO_END4 202
#define TX_FULL_END1 203
#define TX_FULL_END2 204
#define TX_FULL_END3 205
#define TX_FULL_END4 206
#define TX_BUTTON_CHOOSECOLOR 207
#define TX_BUTTON_READY 208
#define TX_BUTTON_SKILL 209
#define TX_SKILL1 210
#define TX_SKILL2 211
#define TX_BUTTON_DEMO 212
#define TX_DEMOREC 213
#define TX_DEMOPLAY 214
#define TX_BACK_TECHNICAL 215
#define TX_BACK_REDLAVA 216
#define TX_BACK_STONES 217
#define TX_BACK_WOOD 218
#define TX_BACK_SLIME2 219
#define TX_BACK_CIRCUIT 220
#define TX_BACK_SOIL 221
#define TX_BACK_STARRYSKY 222
#define TX_BACK_GREENERY 223
#define TX_BACK_CHEESE 224
#define TX_BACK_HEX 225
#define TX_BACK_DARKSKY 226
#define TX_BACK_COLORSPOTS 227
#define TX_BACK_PINKMECH 228
#define TX_BACK_BLUEMECH 229
#define TX_BACK_GREYSKY 230
#define TX_BACK_HEAVYCLOUD 231
#define TX_BACK_LIGHTCLOUD 232
#define TX_BACK_BLUEBARK 233
#define TX_BACK_BROWNMARBLE 234
#define TX_BACK_REDMARBLE 235
#define TX_BACK_VOLCANO 236
#define TX_BACK_STRIPESPOTS 237
#define TX_BACK_MOSAIC2 238
#define TX_MULTIPLAYER 239 //service
#define TX_CONNECTIONTYPE 240
#define TX_MULTIPLAYER2 243 //session
#define TX_AVAILABLEGAMES 244
#define TX_BUTTON_NEWGAME 248
#define TX_BUTTON_UPDATELIST 249
#define TX_NEWMULTIPLAYERGAME 250
#define TX_GAMENAME 251
#define TX_SETTINGSWITHPLAYERS 253
#define TX_LEVELNUMBER_MULTIPLAYER 255
#define TX_CHATZONE
#define TX_BUTTON_SAVECURRENTGAME 263
#define TX_BUTTON_OPENGAME 264
#define TX_BUTTON_CONTINUEGAME 265
#define TX_BUTTON_QUITGAME 266
#define TX_BUTTON_HELP 267
#define TX_AVAILABLECOMMANDS 268 //help
#define TX_OPENGAME 269
#define TX_SAVECURRENTGAME 270
#define TX_LISTOFSAVEDGAMES 271
#define TX_SAVE_FREE 272
#define TX_READY 286
#define TX_BUTTON_256COLOR_SCENERY 305
#define TX_BUTTON_65000COLOR_SCENERY 306
#define TX_REPEAT_CULTIVE 500
#define TX_REPEAT_FLEUR 501
#define TX_REPEAT_FLEURQ 502
#define TX_REPEAT_FABMINE 503
#define TX_REPEAT_FABJEEP 504
#define TX_REPEAT_PALIS 505
#define TX_REPEAT_PALISQ 506
#define TX_REPEAT_PONT 507
#define TX_REPEAT_PONTQ 508
#define TX_REPEAT_BATEAU 509
#define TX_REPEAT_BATEAUQ 510
#define TX_REPEAT_FABARMURE 511
#define TX_DIRECT_N 512
#define TX_DIRECT_S 513
#define TX_DIRECT_E 514
#define TX_DIRECT_O 515
#define TX_HELP_WALKk 600 // keyboard key
#define TX_HELP_WALKj 601 // joystick button
#define TX_HELP_WALK 602 // description
#define TX_HELP_JUMPk 603
#define TX_HELP_JUMPj 604
#define TX_HELP_JUMP 605
#define TX_HELP_JUMPHIGHk 606
#define TX_HELP_JUMPHIGHj 607
#define TX_HELP_JUMPHIGH 608
#define TX_HELP_JUMPLOWk 609
#define TX_HELP_JUMPLOWj 610
#define TX_HELP_JUMPLOW 611
#define TX_HELP_LOOKUPk 612
#define TX_HELP_LOOKUPj 613
#define TX_HELP_LOOKUP 614
#define TX_HELP_LOOKDOWNk 615
#define TX_HELP_LOOKDOWNj 616
#define TX_HELP_LOOKDOWN 617
#define TX_HELP_FIREk 618
#define TX_HELP_FIREj 619
#define TX_HELP_FIRE 620
#define TX_HELP_RESERVEk 621
#define TX_HELP_RESERVEj 622
#define TX_HELP_RESERVE 623
#define IDR_WAVE_BOING 1000
#define TX_ERROR_MISC 1000
#define IDR_WAVE_BLOW 1001
#define TX_ERROR_GROUND 1001
#define TX_ERROR_FREE 1002
#define TX_ERROR_PONTOP 1003
#define TX_ERROR_PONTTERM 1004
#define TX_ERROR_TOURISOL 1005
#define TX_ERROR_TOUREAU 1006
#define TX_ERROR_TELE2 1007
#define TX_OBJ_BLUPIm 2000
#define TX_OBJ_BLUPIf 2001
#define TX_OBJ_BLUPI 2002
#define TX_OBJ_BATEAU 2003
#define TX_OBJ_JEEP 2004
#define TX_OBJ_PIEGE 2005
#define TX_OBJ_POISON 2006
#define TX_OBJ_DYNAMITE 2007
#define TX_OBJ_MINE 2008
#define TX_OBJ_TOMATE 2009
#define TX_OBJ_POTION 2010
#define TX_OBJ_PLANCHE 2011
#define TX_OBJ_PIERRE 2012
#define TX_OBJ_DRAPEAU 2013
#define TX_OBJ_FER 2014
#define TX_OBJ_FLEUR1 2015
#define TX_OBJ_FLEUR2 2016
#define TX_OBJ_FLEUR3 2017
#define TX_OBJ_CABANE 2018
#define TX_OBJ_LABO 2019
#define TX_OBJ_MINEFER 2020
#define TX_OBJ_USINE 2021
#define TX_OBJ_TOUR 2022
#define TX_OBJ_FEU 2023
#define TX_OBJ_ROBOT 2024
#define TX_OBJ_TRACKS 2025
#define TX_OBJ_BOMBE 2026
#define TX_OBJ_ARAIGNEE 2027
#define TX_OBJ_VIRUS 2028
#define TX_OBJ_ELECTRO 2029
#define TX_OBJ_ARBRE 2030
#define TX_OBJ_MUR 2031
#define TX_OBJ_ARBREb 2032
#define TX_OBJ_ROC 2033
#define TX_OBJ_OEUF 2034
#define TX_OBJ_PALISSADE 2035
#define TX_OBJ_ENNEMIp 2036
#define TX_OBJ_ENNEMI 2037
#define TX_OBJ_HERBE 2038
#define TX_OBJ_MOUSSE 2039
#define TX_OBJ_TERRE 2040
#define TX_OBJ_EAU 2041
#define TX_OBJ_RIVE 2042
#define TX_OBJ_MIXTE 2043
#define TX_OBJ_PONT 2044
#define TX_OBJ_COUVEUSE 2045
#define TX_OBJ_GLACE 2046
#define TX_OBJ_MAISON 2047
#define TX_OBJ_HACHURE 2048
#define TX_OBJ_MOUSSEb 2049
#define TX_OBJ_BOUQUET1 2050
#define TX_OBJ_BOUQUET2 2051
#define TX_OBJ_BOUQUET3 2052
#define TX_OBJ_DALLE 2053
#define TX_OBJ_ENNEMIs 2054
#define TX_OBJ_DISCIPLE 2055
#define TX_OBJ_METAL 2056
#define TX_OBJ_FUSEE 2057
#define TX_OBJ_TELEPORTE 2058
#define TX_OBJ_ARMURE 2059
#define TX_OBJ_DALLESPEC 2060
#define TX_OBJ_COUVTELE 2061
#define TX_OBJ_BATIMENT 2062
#define TX_OBJ_BATENNEMIS 2063
#define TX_OBJ_MURPAL 2064
#define TX_OBJ_OBJET 2065
#define TX_OBJ_ARME 2066
#define TX_OBJ_VEHICULE 2067
#define TX_OBJ_STARTFEU 2068
#define TX_OBJ_DELOBJ 2069
#define TX_OBJ_DELPERSO 2070
#define TX_OBJ_DELFEU 2071
#define TX_OBJ_PLANTE 2072
#define TX_OBJ_BARENNEMIS 2073
#define TX_WIN1 3000
#define TX_WIN2 3001
#define TX_WIN3 3002
#define TX_WIN4 3003
#define TX_WIN5 3004
#define TX_LOST1 3100
#define TX_LOST2 3101
#define TX_LOST3 3102
#define TX_LOST4 3103
#define TX_LOST5 3104
#define TX_LASTWIN1 3200
#define TX_LASTWIN2 3201
#define TX_LASTWIN3 3202
#define IDM_EXIT 40001
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 109
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif