_Ombre_ (_Shade_) Édition spéciale code source Copyright 2000-2002 Andrew Plotkin http://www.eblong.com/zarf/if.html Ceci est le code source de ma participation à l'IFComp 2000. Ce code source est fourni uniquement pour un usage personnel et pédagogique. L'histoire et le texte de _Ombre_ m'appartiennent ; vous n'avez pas le droit de l'utiliser ou créer des oeuvres dérivées qui les contiennent. Cependant, vous avez la permission d'utiliser les techniques de programmation de ce jeu dans vos propres oeuvres, et vous avez le droit d'utiliser le code source sauf le texte du jeu. Si vous voulez *jouer* à _Ombre_, vous êtes au mauvais endroit. Allez sur ma page personnelle, ou sur l'IF Archive, et téléchargez le fichier de jeu compilé. * Avertissement évident Ce code contient des spoilers ! Si vous n'avez pas joué à _Ombre_ et que vous lisez ce code, vous allez très certainement vous gâcher le jeu. Jouez-y d'abord. Je publie ce code pour les programmeurs Inform qui connaissent _Ombre_ et veulent savoir comment je l'ai fait. * A propos du code source Ce code source est la traduction du code source qui a été utilisé pour compiler la release 3 de _Shade_, la version originale. Les commentaires n'ont pas été traduits, et il n'y en a pas beaucoup de toute façon ; c'est au joueur de porter cette croix. shade.inf: Fichier source principal ; inclut tous les autres. Compilez celui-ci. Contient des routines générales, des nouvelles routines de grammaire et de verbes, DrawStatusLine(), LibraryMessages(), ChooseObjects(), l'objet joueur, etc. shade-zone.inf: Le code qui fait marcher le système de zones. Une classe de base pour les sous-pièces. Une nouvelle routine ObjectIsUntouchable(). shade-sand.inf: Objets et classes de sable. (J'avais tellement de sable qu'il valait mieux en faire un fichier séparé.) shade-goal.inf: Le système d'objectifs -- suit les objectifs accomplis par le joueur et lance le code approprié quand un objectif est atteint. Lance aussi le code approprié quand un objectif devient *possible*. shade-room.inf: La pièce principale et les sous-pièces mineures (canapé, bureau), et leur contenu. shade-nook.inf: La cuisine, salle de bains et douche, et leurs contenus. Et l'eau. shade-fake.inf: Le faux (le reflet de l') appartement qui apparaît vers la fin du jeu. shade-dese.inf: La dernière zone du jeu, le désert. library.patch: Diff des changements faits à la bibliothèque 6/10. Voir ci-dessous. * La bibliothèqueThe Library Le jeu a été compilé avec une version un peu modifiée de la bibliothèque Inform (version 6/10). La bibliothèque 6/10 modifiée n'est pas incluse dans cette archive (pour des raisons d'espace et de copyright), mais le fichier "library_fr.patch" contient les différences. Il y a en fait 2 différences: - Si AMERICAN_COMMAS est définie (comme dans _Ombre_), le "et" dans les listes d'objet est précédé par une virgule. Ca évite les phrases étranges comme "mes parents, Ayn Rand et Dieu". - Si USE_PARTINVENT est défini (comme dans _Ombre_), la routine qui écrit les listes peut prendre en compte une propriété "partinvent". Ca fonctionne plus ou moins comme "invent", sauf que ça marche pour les listes où PARTINV_BIT est à 1 (au lieu de FULLINV_BIT). Ceci me permet d'ajuster les objets dans les descriptions de pièces comme "invent" me permet de les ajuster dans la liste des objets de l'inventaire. Le jeu original utilisait aussi SKIP_MAGIC_ARTICLES, qui supprimait le bout de code qui inférait le bon article pour les objets ; cependant, ce bout de code est nécessaire en français, notamment pour les contractions ("le ordinateur", "le eau"), alors les traducteurs n'ont pas effectué cette modification. Sorry, Zarf.