From 05a14b1afd25be9673c6c87954043adbb77e60d6 Mon Sep 17 00:00:00 2001 From: Stephen Sweeney Date: Mon, 8 Mar 2010 08:31:49 +0000 Subject: [PATCH] 1.17 Medal Support --- gfx/main/award_star_silver_3.png | Bin 0 -> 765 bytes gfx/main/medal_bronze_1.png | Bin 0 -> 671 bytes gfx/main/ruby.png | Bin 0 -> 601 bytes gfx/main/shield.png | Bin 0 -> 717 bytes locale/fr.mo | Bin 0 -> 23400 bytes locale/fr.po | 1069 ++++++++++++++++++++++++++++++ src/CMedalServer.cpp | 169 +++++ src/CMedalServer.h | 51 ++ 8 files changed, 1289 insertions(+) create mode 100644 gfx/main/award_star_silver_3.png create mode 100644 gfx/main/medal_bronze_1.png create mode 100644 gfx/main/ruby.png create mode 100644 gfx/main/shield.png create mode 100644 locale/fr.mo create mode 100644 locale/fr.po create mode 100644 src/CMedalServer.cpp create mode 100644 src/CMedalServer.h diff --git a/gfx/main/award_star_silver_3.png b/gfx/main/award_star_silver_3.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ab1f9a931e77c73bb6da13b70c28a32c882e8b GIT binary patch literal 765 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igJ( z5h5dUJ=pjF00MnUL_t(I%YBpYOH*MK$3MH<+|A{W>n;WNt{l@rA|?n4LA~;Yuk2la zK!1rr|3g9e$_xZCB4Lh{euxmErp>prkwws$gWQ_e`~2#~G#r@+4iD$y`F_rM&U2m! zU^ubKNAG!XZ;%gPYiMauN~4rUD~*(zI|C^mKmWwmll!LAJtaW@qrLWK~j1-uBLrQ&x};B_SspVfeEY)d&kf!#KILHd<-dSLBEi7G0Ius2Kl;JZ?;~yxU#H){N*IP%Xx+9?7O{~}JtgfzN+cqO3BN$^4 zLSRg5P&+$2Sy)(LZf=fZv3UM720_5i&JG6$2SlS$EXyJqjS`7OFviemG$@zL|DOYZ z;o)Ii*TuGNlF1}N5a2it$z+mDCWGs`ZRgwmLOdQPo6V9=r`g!ppin5Vx3|aC)D)wm zqhvA}`uqE-R;%X&a=9G7?^7rgn4g~~pU)$Npja$2F)_j9prD$&>1*LHPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igJ( z5h5-OjHE>X00JLLL_t(I%XO1KXcR#d#(%qedwb^@i6Ke?!9WZMqM$|8#L6yUX=77n~07*0S;s@@oEdL+yvwsye@`dE|6;$yE)`ob=2qYzLEF(TrrZ40%`^XiAPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igJ; z4JI=w1gE|L00G%aL_t(I%hi*;Yg17ihM${r(>5QqQ=x-YtOa8liGl^8Qw=4evm!dW zsJkvM-Ce}3_zyTZ+CZV8h%F(|Aryt!)Emr)wnLgUxw&8Gp5qWKf_2K|1Ml|ZS>E?& z0GbhqFd`!hOo038OT1dSfiQ+XtrUbII*@27(K1B)!7x%1xIRyJ%e?u~!n~8Z$lA>n zlKEROc?J>*h{quaP=^N`HCu=<#8isV^XWSSXdm&?b~tuj%xBjZNiJLlKY(Tv(rK`5 z*x!d@5vSKfNXdlOgr3J?w@YGa332TzFFGB}hlLGZhl<5a2IK5GNG4%+7P?)qEQI4A zv_=3O*Cn3IF;@LXuwCMLy@oij2di%@U&%zrm>(aGE7k-;Ph}f881X|1IblE00000NkvXXu0mjf)|&-J literal 0 HcmV?d00001 diff --git a/gfx/main/shield.png b/gfx/main/shield.png new file mode 100644 index 0000000000000000000000000000000000000000..de6e2d98efa2a0eb6fa99a50ad34ae7c502223a4 GIT binary patch literal 717 zcmV;;0y6!HP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igJ( z5h6Ee=M04a00K=(L_t(I%cYXdOO#O<#eesmS7$W8N|KU5!6K+AgP?>Ui*y%Mi;Vt& zTGpmbM2lz>w5VkfWV@)u76sKJ5GkTe(u_U~O^MV&M@Oxh_v7BvVyLvtO%I&K!@cLn z;o%rS{Kt69J$7H;&cvgpWdS}wrn?zAvHwIb^=nh?-BHES)*4c^2av?reaoZg8J_fH z>3Kg-=YnO7Qn+@{@I zRtS&}FrTxy=o`opO?Ds~fhmUaonV9u#)+rLB0@G_P#l0PUQq=#RX(%d!vz5AKmr#c8(};PlHAV2|2P!S#1y{8+V_00000NkvXXu0mjf*%CiH literal 0 HcmV?d00001 diff --git a/locale/fr.mo b/locale/fr.mo new file mode 100644 index 0000000000000000000000000000000000000000..8028b9d3f31798625aedf7f43b272284cebb275c GIT binary patch literal 23400 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 literal 0 HcmV?d00001 diff --git a/locale/fr.po b/locale/fr.po new file mode 100644 index 0000000..e91077a --- /dev/null +++ b/locale/fr.po @@ -0,0 +1,1069 @@ +# Auto Generated for Blob Wars : Metal Blob Solid +# Copyright (C) 2010 Free Software Foundation, Inc. +# Parallel Realities, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: Blob Wars : Metal Blob Solid\n" +"POT-Creation-Date: 2009-10-01 13:33+0100\n" +"PO-Revision-Date: 2010-02-28 15:25+0100\n" +"Last-Translator: jb\n" +"Language-Team: none\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "data/cheatWidgets" +msgstr "data/cheatWidgets" + +msgid "data/credits" +msgstr "data/credits" + +msgid "data/ending" +msgstr "data/ending" + +msgid "data/gameOverWidgets" +msgstr "data/gameOverWidgets" + +msgid "data/inGameWidgets" +msgstr "data/inGameWidgets" + +msgid "data/introText" +msgstr "data/introText" + +msgid "data/joystickWidgets" +msgstr "data/joystickWidgets" + +msgid "data/keyboardWidgets" +msgstr "data/keyboardWidgets" + +msgid "data/levelBrief" +msgstr "data/levelBrief" + +msgid "data/optionWidgets" +msgstr "data/optionWidgets" + +msgid "data/titleWidgets" +msgstr "data/titleWidgets" + +msgid "Ancient Tomb #1" +msgstr "Ancienne Tombe #1" + +msgid "Ancient Tomb #2" +msgstr "Ancienne Tombe #2" + +msgid "Ancient Tomb #3" +msgstr "Ancienne Tombe #3" + +msgid "Ancient Tomb #4" +msgstr "Ancienne Tombe #4" + +msgid "Arctic Wastes" +msgstr "Déchets de l'Arctique" + +msgid "BioMech Assimilator" +msgstr "Assimilateur Biomech" + +msgid "BioMech Communications" +msgstr "Biomech Communications" + +msgid "BioMech HQ" +msgstr "QG Biomech" + +msgid "BioMech Supply Depot" +msgstr "Entrepôt Biomech" + +msgid "Flooded Tunnel" +msgstr "Tunnel inondé" + +msgid "Flooded Tunnel #2" +msgstr "Tunnel inondé #2" + +msgid "Flooded Tunnel #3" +msgstr "Tunnel inondé #3" + +msgid "Flooded Tunnel #4" +msgstr "Tunnel inondé # 4" + +msgid "Forgotten Caves" +msgstr "Grottes Oubliées" + +msgid "Grasslands" +msgstr "Prairies" + +msgid "Grasslands #2" +msgstr "Prairies #2" + +msgid "Grasslands #3" +msgstr "Prairies #3" + +msgid "Ice Cave #1" +msgstr "Grotte de glace #1" + +msgid "Ice Cave #2" +msgstr "Grotte de glace # 2" + +msgid "Inner Cave Network, Part 1" +msgstr "Inner Cave Network, partie 1" + +msgid "Inner Cave Network, Part 2" +msgstr "Inner Cave Network, partie 2" + +msgid "Space Station" +msgstr "Station spatiale" + +msgid "Training Mission" +msgstr "Mission de formation" + +msgid "Uncharted Cavern" +msgstr "Uncharted Cavern" + +msgid "4 Hit Combo with Grenades" +msgstr "Combo x4 à la grenade" + +msgid "6 Hit Combo with Spread Gun" +msgstr "Combo x6 avec Spread Gun" + +msgid "8 Hit Combo with Grenades" +msgstr "Combo x8 à la grenade" + +msgid "10 Hit Combo with Machine Gun" +msgstr "Combo x10 à la mitraillette" + +msgid "12 Hit Combo with Spread Gun" +msgstr "Combo x12 avec Spread Gun" + +msgid "20 Hit Combo with Machine Gun" +msgstr "Combo x20 avec Machine Gun" + +msgid "Access Eastern Passage" +msgstr "Accès au passage de l'Est ouvert" + +msgid "Access Fourth Floor" +msgstr "Accès au 4éme étage ouvert" + +msgid "Access Northern Passage" +msgstr "Access au passage du Nord ouvert" + +msgid "Access Second Floor" +msgstr "Accès au 2ème étage ouvert" + +msgid "Access Third Floor" +msgstr "Accès au 2ème étage ouvert" + +msgid "Access Western Passage" +msgstr "Access au passage de l'Ouest ouvert" + +msgid "Access Upper Cave System" +msgstr "Accès aux cavernes suppérieures ouvert" + +msgid "Access Upper Floor" +msgstr "Accès à l'étage suppérieur ouvert" + +msgid "Activate 2 Security Points" +msgstr "Activer 2 Points de Sécurité" + +msgid "Activate 4 Security Points" +msgstr "Activer 4 Points de Sécurité" + +msgid "Battle Galdov" +msgstr "Combattre Galdov" + +msgid "Collect 10 Cherry Plants" +msgstr "Collectez 10 plants de cerise" + +msgid "Collect 20 Cherry Plants" +msgstr "Collectez 20 plants de cerise" + +msgid "Collect 25 Boxes of Orichalcum Beads" +msgstr "Collectez 25 caisses de perles Orichalcum" + +msgid "Collect the Blueprints" +msgstr "Recueillir les plans" + +msgid "Collect three keys" +msgstr "Ramasser trois clefs" + +msgid "Deactivate Security Systems" +msgstr "Désactiver le système de sécurité" + +msgid "Defeat 10 Hard Hide Blobs" +msgstr "Tuez 10 Hard Hide Blobs" + +msgid "Defeat 15 Machine Gun Droids" +msgstr "Détruisez 15 Machine Gun Droids" + +msgid "Defeat 25 Machine Gun Droids" +msgstr "Détruisez 15 Machine Gun Droids" + +msgid "Defeat 30 enemies" +msgstr "Battez 30 ennemis" + +msgid "Defeat 50 Enemies" +msgstr "Battez 50 ennemis" + +msgid "Defeat 100 Enemies" +msgstr "Battez 100 ennemis" + +msgid "Defeat 200 Enemies" +msgstr "Battez 200 ennemis" + +msgid "Defeat BioMech Jetpack Blob" +msgstr "Battez Biomech Jetpack Blob" + +msgid "Defeat Galdov" +msgstr "Battez Galdov" + +msgid "Destroy 5 Power Generators" +msgstr "Détruisez 5 générateurs" + +msgid "Destroy 5 Satellite Dishes" +msgstr "Détruisez 5 antennes satellites" + +msgid "Destroy 6 Power Generators" +msgstr "Détruisez 6 générateurs" + +msgid "Destroy 10 Sentry Guns" +msgstr "Détruisez 10 Sentry Guns" + +msgid "Destroy 10 Spider Blobs" +msgstr "Eliminez 10 Spider Blobs" + +msgid "Destroy BioMech Aqua Blob" +msgstr "Tuez Biomech Aqua Blob" + +msgid "Destroy BioMech Tank V1.1" +msgstr "Détruisez Biomech Tank V1.1" + +msgid "Destroy BioMech Tank V2.6" +msgstr "Détruisez Biomech Tank V2.6" + +msgid "Destroy the Ice Blobs" +msgstr "Tuez les Ice Blobs" + +msgid "Disable Booby Traps" +msgstr "Désactiver les pièges" + +msgid "Disable the Auto Cannon" +msgstr "Désactiver le cannon automatique" + +msgid "Enter Ancient Tomb" +msgstr "Entrez dans l'ancienne tombe" + +msgid "Exit the Ice Caves" +msgstr "Quittez les grottes de glace" + +msgid "Exit the Tunnel System" +msgstr "Sortez du tunnel" + +msgid "Explore the Flooded Area" +msgstr "Explorez la zone inondée" + +msgid "Fight Galdov" +msgstr "Battez Galdov" + +msgid "Find 1st Cypher Piece" +msgstr "Trouvez 1ére Cypher Piece" + +msgid "Find 2 Sticks of Dynamite" +msgstr "Trouvez 2 bâtons de dynamite" + +msgid "Find 2nd Cypher Piece" +msgstr "Trouver 2e Cypher Piece" + +msgid "Find 3 Ancient Cogs" +msgstr "Trouver 3 engrenages anciens" + +msgid "Find 3 Ancient Keys" +msgstr "Trouver 3 clefs anciennes" + +msgid "Find 4 Ancient Keys" +msgstr "Trouver 3 clefs anciennes" + +msgid "Find 5 Earth Crystal Shards" +msgstr "Trouvez 5 Earth Crystal Shards" + +msgid "Find 10 Diamonds" +msgstr "Trouvez 10 diamants" + +msgid "Find Galdov" +msgstr "Trouvez Galdov" + +msgid "Find L.R.T.S. Part" +msgstr "Trouver un composant du LRTS" + +msgid "???? ???????? ????" +msgstr "???? ???????? ????" + +msgid "Find the 4 Map Pieces" +msgstr "Trouvez les 4 morceaux de la carte" + +msgid "Find the 5 Crystal Shards" +msgstr "Trouvez les 5 Crystal Shards" + +msgid "Find the Dynamite" +msgstr "Trouvez le bâton de dynamite" + +msgid "Find the Transmitter" +msgstr "Trouver l'émetteur" + +msgid "Find Two Ancient Keys" +msgstr "Trouver 2 anciennes clefs" + +msgid "Find Water Orb Shards" +msgstr "Trouvez Water Orb Shards" + +msgid "Get the Ancient Fire Crystal" +msgstr "Prenez le crystal de Feu" + +msgid "Get the Ancient Reality Crystal" +msgstr "Prenez le crystal de la Réalité" + +msgid "Get the Ancient Space Crystal" +msgstr "Prenez le crystal de l'Espace" + +msgid "Get the Ancient Time Crystal" +msgstr "Prenez le crystal du Temps" + +msgid "Get the Aqua Lung" +msgstr "Prenez le tuba" + +msgid "Get the Jetpack" +msgstr "Obtenez le Jetpack" + +msgid "Get the Reality Crystal" +msgstr "Prenez le crystal de la Réalité" + +msgid "Get to the Exit" +msgstr "Sortez" + +msgid "Get to the exit" +msgstr "Sortez" + +msgid "Get to the Forest" +msgstr "Entrer dans la forêt" + +msgid "Get to the Main Pump Room" +msgstr "Arrivez à la salle des pompes principales" + +msgid "Get to the Maintenance Room" +msgstr "Arrivez à la salle de maintenance" + +msgid "Get to the Tomb Entrance" +msgstr "Arriver à l'entrée de la tombe" + +msgid "Locate 10 Sticks of Dynamite" +msgstr "Localisez 10 bâtons de dynamite" + +msgid "Locate Tomb Entrance" +msgstr "Localiser l'entrée de la tombe" + +msgid "Open Exit Door" +msgstr "Ouvrez la porte de la sortie" + +msgid "Plant 10 Sticks of Dynamite" +msgstr "Plantez 10 bâtons de dynamite" + +msgid "Raise Water Level" +msgstr "Augmenter le niveau de l'eau" + +msgid "Rescue %d MIAs" +msgstr "Sauvez %d MIAs" + +msgid "Stop the Cave in" +msgstr "Stoppez l'effondrement" + +msgid "Picked up an Ancient Cog" +msgstr "Rouage ancient ramassé" + +msgid "Picked up an Ancient Key" +msgstr "Clef ancienne ramassée" + +msgid "Picked up a Blue Keycard" +msgstr "Carte d'accès bleue ramassée" + +msgid "Picked up a Bronze Key" +msgstr "Clef de bronze ramassée" + +msgid "Picked up a bunch of Cherries" +msgstr "Grappe de cerises ramassée" + +msgid "Picked up a Cherry" +msgstr "Cerise ramassée" + +msgid "Picked up a Crystal Shard" +msgstr "Eclat de Cristal ramassé" + +msgid "Picked up a Cyan Keycard" +msgstr "Carte d'accès cyan ramassée" + +msgid "Picked up a Gold Key" +msgstr "Clef d'or ramassée" + +msgid "Picked up a Green Keycard" +msgstr "Carte d'accès verte ramassée" + +msgid "Picked up a Grenades" +msgstr "Grenades ramassées" + +msgid "Picked up a Keycard" +msgstr "Carte d'accès ramassée" + +msgid "Picked up a Laser Gun" +msgstr "Canon laser ramassé" + +msgid "Picked up a Machine Gun" +msgstr "Mitrailleuse ramassée" + +msgid "Picked up a pair of Cherries" +msgstr "Paire de cerises ramassée" + +msgid "Picked up a Pistol" +msgstr "Pistolet ramassé" + +msgid "Picked up a Purple Keycard" +msgstr "Carte d'accès violette ramassée" + +msgid "Picked up a Red Keycard" +msgstr "Carte d'accès rouge ramassée" + +msgid "Picked up a set of Grenades" +msgstr "Sacoche de grenades ramassée" + +msgid "Picked up a Silver Key" +msgstr "Clef d'argent ramassée" + +msgid "Picked up a Three Way Spread" +msgstr "Three Way Spread ramassé" + +msgid "Ancient Cog required" +msgstr "Besoin d'un ancient engrenage" + +msgid "Ancient Key required" +msgstr "Clef ancienne requise" + +msgid "Blue Keycard required" +msgstr "Carte d'accès bleue requise" + +msgid "Bronze Key Required" +msgstr "Clef de bronze requise" + +msgid "Cyan Keycard required" +msgstr "Carte d'accès cyan requise" + +msgid "Cypher Piece #1 required" +msgstr "Cypher Piece # 1 requis" + +msgid "Cypher Piece #2 required" +msgstr "Cypher Piece # 2 requis" + +msgid "Dynamite required" +msgstr "Besoin de bâtons de dynamite" + +msgid "Gold Key Required" +msgstr "Clef en or requise" + +msgid "Green Keycard required" +msgstr "Carte d'accès verte requise" + +msgid "Keycard required" +msgstr "Carte d'accès requise" + +msgid "Pack of Dynamite required" +msgstr "Pack de dynamite requis" + +msgid "Purple Keycard required" +msgstr "Carte d'accès violette requise" + +msgid "Red Keycard required" +msgstr "Carte d'accès rouge requise" + +msgid "Silver Key Required" +msgstr "Clef d'argent requis" + +msgid "help me..." +msgstr "Aidez-moi..." + +msgid "i don't like it here..." +msgstr "Je n'aime pas être ici..." + +msgid "i don't wanna die..." +msgstr "Je ne veux pas mourir..." + +msgid "i... i'm scared..." +msgstr "Je... J'ai peur..." + +msgid "i wanna go home..." +msgstr "Je veux rentrer chez moi..." + +msgid "please... someone help..." +msgstr "S'il vous plaît... au secours..." + +msgid "what was that?!" +msgstr "Qu'était-ce?!" + +msgid "Galdov: And this is the best the Blob Army can offer?" +msgstr "Galdov: Et c'est le meilleur que l'Armée des Blobs peut offrir?" + +msgid "Galdov: Stupid creature!! Give up and join us!" +msgstr "Galdov: Créature stupide!! Rends-toi et rejoins-nous" + +msgid "Galdov: We WILL have the crystals! NOTHING will stop us!!" +msgstr "Galdov: Nous aurons les cristaux! Rien ne pourra nous arrêter!" + +msgid "Galdov: Why do you persist in fighting us?!" +msgstr "Galdov: Pourquoi persistez-vous à combattre?!" + +msgid "Galdov: You're mine now!!!" +msgstr "Galdov: Tu es à moi maintenant!" + +msgid "Access Confirmed" +msgstr "L'accès est confirmée" + +msgid "Access Granted" +msgstr "Accès autorisé" + +msgid "Accuracy" +msgstr "Précision" + +msgid "All Required Objectives Met - Mission Complete" +msgstr "Tous les objectifs requis sont accomplis - Mission terminée" + +msgid "Ammo Used" +msgstr "Balles tirées" + +msgid "An SDL Game" +msgstr "Un jeu SDL" + +msgid "Automap is not available!" +msgstr "L'Automap n'est pas disponible!" + +msgid "Average Continue Usage:" +msgstr "Moyenne d'utilisation des continues:" + +msgid "Best Combo" +msgstr "Meilleur Combo" + +msgid "Best Combo:" +msgstr "Meilleur Combo:" + +msgid "BioMech Aqua Blob" +msgstr "Biomech Aqua Blob" + +msgid "BioMech Jetpack Blob" +msgstr "Biomech Jetpack Blob" + +msgid "BioMech Tank V1.1" +msgstr "Biomech Tank V1.1" + +msgid "BioMech Tank V2.6" +msgstr "Biomech Tank V2.6" + +msgid "Blob Wars : Episode I" +msgstr "Blob Wars : Episode I" + +msgid "Bonuses Picked Up:" +msgstr "Bonus ramassés:" + +msgid "Bridge Activated" +msgstr "Pont déployé" + +msgid "Bridge Deployed" +msgstr "Pont déployé" + +msgid "Can't Exit Yet - Objectives Not Met" +msgstr "Impossible de sortir - Objectifs non accomplis" + +msgid "Cave In!! Looks like it might be controlled by that switch..." +msgstr "Effondrement! On dirait qu'il pourrait être contrôlé par ce switch..." + +msgid "Cell Door #1 Opened" +msgstr "Cellule #1 ouverte" + +msgid "Cell Door #2 Opened" +msgstr "Cellule #2 ouverte" + +msgid "Checkpoint Reached" +msgstr "Checkpoint atteint" + +msgid "Cogs Released" +msgstr "Rouages libérés" + +msgid "Completed" +msgstr "Terminé" + +msgid "Continues Used:" +msgstr "Continues utilisés:" + +msgid "Copyright (C) 2004, 2005 Parallel Realities" +msgstr "Copyright (C) 2004, 2005 Parallel Realities" + +msgid "Corrupt" +msgstr "Corrupt" + +msgid "Corrupt Save Data" +msgstr "Sauvegarde corrompue" + +msgid "Crystal Defence System Activated" +msgstr "système de défense du crystal activé" + +msgid "Crystal Room is now accessible" +msgstr "La salle du crystal est désormais accessible" + +msgid "Crystal Room Open" +msgstr "Salle du crystal ouverte" + +msgid "Detonation Started..." +msgstr "Detonation amorçée..." + +msgid "Don't have jetpack!" +msgstr "Vous n'avez pas le jetpack!" + +msgid "Door is locked" +msgstr "La porte est verrouillée" + +msgid "Door Opened" +msgstr "Porte ouverte" + +msgid "Door opened" +msgstr "Porte ouverte" + +msgid "Doors Opened" +msgstr "Portes ouverte" + +msgid "Eastern passage is now accessible" +msgstr "Le passage de l'Est est maintenant accessible" + +msgid "Easy" +msgstr "Facile" + +msgid "Empty" +msgstr "Vide" + +msgid "Enemies" +msgstr "Ennemies" + +msgid "Enemies Defeated" +msgstr "Ennemis vaincus" + +msgid "Enemies Defeated:" +msgstr "Ennemis vaincus:" + +msgid "Escapes Used:" +msgstr "Nombre de retraites:" + +msgid "Extreme" +msgstr "Extrème" + +msgid "First Crystal Door Opened" +msgstr "Première porte du crystal ouverte" + +msgid "Found" +msgstr "Trouvé" + +msgid "Fourth floor is now accessible" +msgstr "Le quatrième étage est maintenant accessible" + +msgid "Galdov has dropped the crystal! Quick! Get it!!" +msgstr "Galdov a laissé tomber le cristal! Vite! Prends-le!" + +msgid "Got the Aqua Lung! You can now swim forever!" +msgstr "Tuba ramassé! Vous pouvez rester immergé indéfiniment!" + +msgid "Got the Jetpack! Press SPACE to Activate!" +msgstr "Jetpack ramassé! Appuyez sur Espace pour l'activer!" + +msgid "Grenades" +msgstr "Grenades" + +msgid "Hard" +msgstr "Dur" + +msgid "Health" +msgstr "Santé" + +msgid "%d Hit Combo!" +msgstr "Combo x%d!" + +msgid "%d Hits" +msgstr "%d hits" + +msgid "Incomplete" +msgstr "Incomplet" + +msgid "Information for %s" +msgstr "Information pour %s" + +msgid "++ Inventory ++" +msgstr "++ Inventaire ++" + +msgid "Items" +msgstr "Objets" + +msgid "Items Collected" +msgstr "Objets ramassés" + +msgid "Items Collected:" +msgstr "Objets ramassés:" + +msgid "Jetpack" +msgstr "Jetpack" + +msgid "Jetpack cannot be used underwater" +msgstr "Le jetpack ne peut être utilisé sous l'eau" + +msgid "Jetpack is recharging..." +msgstr "Le jetpack se recharge..." + +msgid "Key Released" +msgstr "Clef libérée" + +msgid "Keycard Released" +msgstr "Carte d'accès libérée" + +msgid "Laser Cannon" +msgstr "Canon laser" + +msgid "Lift Activated" +msgstr "Ascenseur activé" + +msgid "Lift activated" +msgstr "Ascenseur activé" + +msgid "Lift is not currently active" +msgstr "L'ascenseur n'est pas actuellement en service" + +msgid "Lifts Activated" +msgstr "Ascenseurs activés" + +msgid "Loading..." +msgstr "Chargement..." + +msgid "Location" +msgstr "Emplacement" + +msgid "Locks Released" +msgstr "Serrures libérées" + +msgid "Machine Gun" +msgstr "Mitraillete" + +msgid "Main Lift Activated" +msgstr "Ascenseur principal activé" + +msgid "Maintenance Room is now accessible" +msgstr "La salle d'entretien est désormais accessible" + +msgid "Metal Blob Solid : Statistics" +msgstr "Metal Blob Solid : Statistiques" + +msgid "MIA Statistics" +msgstr "Statistiques des soldats disparus en action" + +msgid "MIAs" +msgstr "MIAs" + +msgid "MIAs in Area" +msgstr "MIAs dans la zone" + +msgid "MIAs Rescued" +msgstr "MIAs sauvé" + +msgid "MIAs Saved:" +msgstr "MIAs sauvés:" + +msgid "Mines Disabled" +msgstr "Mines déactivées" + +msgid "Missing" +msgstr "Manquant" + +msgid "Mission Failed! Time Up!" +msgstr "Echec de la mission! Soyez plus rapide!" + +msgid "Mission Time" +msgstr "Durée de la mission" + +msgid "Missions Started:" +msgstr "Missions commencées:" + +msgid "%s - %d more to go..." +msgstr "%s - %d restants..." + +msgid "Most Used Weapon" +msgstr "Arme favorite" + +msgid "Name" +msgstr "Nom" + +msgid "%s - need %d more" +msgstr "%s - Encore %d restants" + +msgid "Normal" +msgstr "Normal" + +msgid "Northern passage is now accessible" +msgstr "Le passage du Nord est désormais accessible" + +msgid "Not carrying anything" +msgstr "Ne porte rien" + +msgid "%s - Objective Completed" +msgstr "%s - Objectif Terminé" + +msgid "%s - Objective Completed - Check Point Reached!" +msgstr "%s - Objectif Terminé - Check Point atteint!" + +msgid "Objectives Completed:" +msgstr "Objectifs Terminé:" + +msgid "Obstacles Reset" +msgstr "Remise en place des obstacles" + +msgid "%s - %d of %d" +msgstr "%s - %d sur %d" + +msgid "(optional)" +msgstr "(optionnel)" + +msgid "Oxygen" +msgstr "Oxygène" + +msgid "*** PAUSED ***" +msgstr "*** En pause ***" + +msgid "Percentage Complete:" +msgstr "Pourcentage effectué:" + +msgid "Pistol" +msgstr "Pistolet" + +msgid "Position = %d:%d" +msgstr "Position = %d:%d" + +msgid "Presents" +msgstr "Présente" + +msgid "Press Button to Continue..." +msgstr "Appuyer sur un bouton pour continuer..." + +msgid "Press Fire to Continue" +msgstr "Tirez pour continuer" + +msgid "Press Space to Continue..." +msgstr "Appuyez sur espace pour continuer..." + +msgid "Rescue %d MIAs - Objective Complete - Checkpoint Reached!" +msgstr "Sauvé %d MIAs - Objectif accomplit - Checkpoint atteind!" + +msgid "Rescued %s!" +msgstr "Sauvé %s!" + +msgid "Rescued %s - Checkpoint Reached!" +msgstr "Sauvé %s - Checkpoint atteint!" + +msgid "Save Complete" +msgstr "Sauvegarde terminée" + +msgid "Saving Game to Save Slot #%d. Please Wait..." +msgstr "Sauvegarde sur le slot #%d en cours..." + +msgid "Score:" +msgstr "Score:" + +msgid "Second Crystal Door Opened" +msgstr "Deuxième porte du crystal ouverte" + +msgid "Second floor is now accessible" +msgstr "Le deuxième étage est maintenant accessible" + +msgid "Selected Destination" +msgstr "Destination sélectionnée" + +msgid "Skill Level:" +msgstr "Niveau de difficulté:" + +msgid "Skipping Mission..." +msgstr "Skipping Mission..." + +msgid "Spike Balls Disabled" +msgstr "Boulets déactivés" + +msgid "Spikes Disabled" +msgstr "Pieux déactivés" + +msgid "Spread Gun" +msgstr "Spread Gun" + +msgid "Status" +msgstr "État" + +msgid "Teleporter Activated" +msgstr "Téléporteur activé" + +msgid "That Auto Cannon is guarding the entrance to the forest..." +msgstr "Ce cannon automatique garde l'entrée de la forêt..." + +msgid "Third Crystal Door Opened" +msgstr "Troisième porte du crystal ouverte" + +msgid "Three bronze keys are needed to open these doors..." +msgstr "Trois clefs de bronze sont nécessaires pour ouvrir ces portes..." + +msgid "Throw a grenade on the switch and recieve a present..." +msgstr "Lancez une grenade sur l'interrupteur et recevez un cadeau..." + +msgid "Throw a grenade onto that switch to trigger it" +msgstr "Lancez une grenade sur cet interrupteur pour le déclencher" + +msgid "Time Limit - %d:%.2d Minutes" +msgstr "Limite de temps - %d:%.2d minutes" + +msgid "Time Remaining: %.2d:%.2d" +msgstr "Temps restant: %.2d:%.2d" + +msgid "Time your movement through Energy Barriers like these..." +msgstr "Faites attention en passant à travers les barrières énergétiques..." + +msgid "Tomb Door Opened" +msgstr "Porte de la tombe ouverte" + +msgid "Total" +msgstr "Total" + +msgid "Total Game Time" +msgstr "Temps de jeu total" + +msgid "Trap Activated" +msgstr "Piège activé" + +msgid "Trap deactivated" +msgstr "Piège déactivé" + +msgid "Traps Deactivated" +msgstr "Pièges désactivés" + +msgid "Used Bronze Key" +msgstr "Clef de bronze utilisée" + +msgid "Used Gold Key" +msgstr "Clef en or utilisée" + +msgid "Used Silver Key" +msgstr "Clef d'argent utilisée" + +msgid "Version %s" +msgstr "Version %s" + +msgid "WARNING: ACTIVE BOOBY TRAP AHEAD!! DEACTIVATE WITH SWITCH EASTWARD !!" +msgstr "ATTENTION: PIEGES MORTELS EN VUE! DESACTIVEZ-LES AVEC L'INTERRUPTEUR VERS L'EST!" + +msgid "WARNING: ACTIVE BOOBY TRAP AHEAD!! DO NOT PROCEED UNTIL DEACTIVATED!!" +msgstr "ATTENTION!! PIEGES MORTELS ACTIFS! SORTEZ D'ICI ET DESACTIVEZ-LES D'ABORD!!" + +msgid "WARNING: ACTIVE BOOBY TRAP AHEAD!! MINES *WILL* KILL YOU IF TRIPPED!!" +msgstr "ATTENTION!! PIEGES MORTELS ACTIFS! LES MINES VOUS TUERONT INSTANTANEMENT SI ELLES EXPLOSENT!!" + +msgid "Water Door Opened" +msgstr "Porte sous l'eau ouverte" + +msgid "Water level is rising" +msgstr "Le niveau d'eau monte" + +msgid "Weapon" +msgstr "Arme" + +msgid "Weapon:" +msgstr "Arme:" + +msgid "Western passage is now accessible" +msgstr "Le passage à l'Ouest est désormais accessible" + +msgid "You got the Aqua Lung!" +msgstr "Vous avez obtenu le tuba!" + +msgid "You got the Jet Pack!" +msgstr "Vous avez obtenu le Jet Pack!" + +msgid "You'll need to 'Kill Two Birds with One Stone' here..." +msgstr "Vous aurez besoin de 'faire d'une pierre deux coups' ici..." + +msgid "backspace" +msgstr "retour arrière" + +msgid "caps lock" +msgstr "verroullaige maj." + +msgid "delete" +msgstr "supprimer" + +msgid "down" +msgstr "bas" + +msgid "end" +msgstr "fin" + +msgid "enter" +msgstr "entrée" + +msgid "home" +msgstr "origine" + +msgid "insert" +msgstr "insertion" + +msgid "left" +msgstr "gauche" + +msgid "left alt" +msgstr "alt gauche" + +msgid "left ctrl" +msgstr "ctrl gauche" + +msgid "left shift" +msgstr "maj. gauche" + +msgid "left super" +msgstr "super gauche" + +msgid "menu" +msgstr "menu" + +msgid "numlock" +msgstr "numlock" + +msgid "page down" +msgstr "page suivante" + +msgid "page up" +msgstr "page précédente" + +msgid "pause" +msgstr "pause" + +msgid "print screen" +msgstr "impression système" + +msgid "return" +msgstr "retour" + +msgid "right" +msgstr "droit" + +msgid "right ctrl" +msgstr "ctrl droit" + +msgid "right shift" +msgstr "maj. droite" + +msgid "scroll lock" +msgstr "pause" + +msgid "space" +msgstr "espace" + +msgid "up" +msgstr "haut" + diff --git a/src/CMedalServer.cpp b/src/CMedalServer.cpp new file mode 100644 index 0000000..0cd6272 --- /dev/null +++ b/src/CMedalServer.cpp @@ -0,0 +1,169 @@ +/* +Copyright (C) 2010 Parallel Realities + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "headers.h" +#include "SDL_mutex.h" + +MedalServer::MedalServer() +{ + lock = SDL_CreateMutex(); + + connected = false; + gotRuby = false; + + strcpy(message, ""); + strcpy(rubyMessage, ""); +} + +MedalServer::~MedalServer() +{ + if (connected) + { + close(); + } +} + +bool MedalServer::connect(const char *privateKey) +{ + if (SDLNet_ResolveHost(&ip, MEDAL_SERVER_HOST, MEDAL_SERVER_PORT) == -1) + { + printf("ERROR: SDLNet_ResolveHost: %s\n", SDLNet_GetError()); + return false; + } + + debug(("Connected %s to %s:%d\n", privateKey, MEDAL_SERVER_HOST, MEDAL_SERVER_PORT)); + + strcpy(this->privateKey, privateKey); + connected = true; + + return true; +} + +#if !UNIX +extern char *strtok_r(char *s1, const char *s2, char **lasts); +#endif + +int MedalServer::postMedal(const char *str) +{ + if (!connected) + { + return 0; + } + + char *store; + + char medal[128]; + strcpy(medal, str); + + for (unsigned int i = 0 ; i < strlen(medal) ; i++) + { + if (medal[i] == ' ' || medal[i] == '#' || medal[i] == ',') + { + medal[i] = '_'; + } + } + + debug(("Attempting to post medal 'MBS_%s'\n", medal)); + + TCPsocket socket = SDLNet_TCP_Open(&ip); + + if (!socket) + { + printf("ERROR: SDLNet_TCP_Open: %s\n", SDLNet_GetError()); + return 0; + } + + char *in = new char[1024]; + char out[1024]; + + sprintf(out, "GET /addMedal/%s/MBS_%s HTTP/1.1\nHost: %s\nUser-Agent:BWMBS%.2f-%d\n\n", privateKey, medal, MEDAL_SERVER_HOST, VERSION, RELEASE); + + //printf("%s\n", out); + + int len = strlen(out) + 1; + + if (SDLNet_TCP_Send(socket, (void*)out, len) < len) + { + printf("SDLNet_TCP_Send: %s\n", SDLNet_GetError()); + printf("Disconnected\n"); + SDLNet_TCP_Close(socket); + close(); + return 0; + } + + SDLNet_TCP_Recv(socket, in, 512); + + //printf("%s\n", in); + + int response = 0; + char *token = strtok_r(in, "\n", &store); + + while (token != NULL) + { + if (strstr(token, "MEDAL_RESPONSE")) + { + sscanf(token, "%*s %d %[^\n\r]", &response, message); + + if (response == 4) + { + strcpy(rubyMessage, message); + gotRuby = true; + } + else + { + break; + } + } + + token = strtok_r(NULL, "\n", &store); + } + + debug(("MedalServer Response: %d '%s'\n", response, message)) + + delete in; + + SDLNet_TCP_Close(socket); + + return response; +} + +const char *MedalServer::getMessage() +{ + return message; +} + +bool MedalServer::hasRuby() +{ + return gotRuby; +} + +const char *MedalServer::getRubyMessage() +{ + gotRuby = false; + + return rubyMessage; +} + +void MedalServer::close() +{ + connected = false; + + SDL_DestroyMutex(lock); +} diff --git a/src/CMedalServer.h b/src/CMedalServer.h new file mode 100644 index 0000000..d859da0 --- /dev/null +++ b/src/CMedalServer.h @@ -0,0 +1,51 @@ +/* +Copyright (C) 2010 Parallel Realities + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +class MedalServer { + + private: + + char privateKey[20]; + char message[128]; + char rubyMessage[128]; + + bool connected; + bool gotRuby; + + IPaddress ip; + + public: + + MedalServer(); + ~MedalServer(); + + SDL_mutex *lock; + + bool connect(const char *privateKey); + + int postMedal(const char *medal); + bool hasRuby(); + + const char *getMessage(); + const char *getRubyMessage(); + + void close(); + +}; -- 2.39.5