_Ombre_ (_Shade_)
dition spciale code source
Copyright 2000-2002 Andrew Plotkin <erkyrath@eblong.com>
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
pdagogique. L'histoire et le texte de _Ombre_ m'appartiennent ; vous
n'avez pas le droit de l'utiliser ou crer des oeuvres drives 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 tlchargez 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 trs certainement vous gcher 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 faon ; c'est au joueur de porter cette croix.

shade.inf: Fichier source principal ; inclut tous les autres. Compilez
  celui-ci. Contient des routines gnrales, des nouvelles routines de
  grammaire et de verbes,  DrawStatusLine(), LibraryMessages(),
  ChooseObjects(), l'objet joueur,  etc.
shade-zone.inf: Le code qui fait marcher le systme de zones. Une classe
  de base pour les sous-pices. 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 spar.)
shade-goal.inf: Le systme 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 pice principale et les sous-pices 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 apparat vers
  la fin du jeu.
shade-dese.inf: La dernire zone du jeu, le dsert.
library.patch: Diff des changements faits  la bibliothque 6/10. Voir
  ci-dessous.


* La bibliothqueThe Library

Le jeu a t compil avec une version un peu modifie de la bibliothque
Inform (version 6/10).

La bibliothque 6/10 modifie n'est pas incluse dans cette archive (pour
des raisons d'espace et de copyright), mais le fichier "library_fr.patch"
contient les diffrences.

Il y a en fait 2 diffrences:

  - Si AMERICAN_COMMAS est dfinie (comme dans _Ombre_), le "et" dans
  les listes d'objet est prcd par une virgule. Ca vite les phrases
  tranges comme "mes parents, Ayn Rand et Dieu".

  - Si USE_PARTINVENT est dfini (comme dans _Ombre_), la routine qui
  crit les listes peut prendre en compte une proprit "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 pices 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 infrait le bon article pour les objets ; cependant,
ce bout de code est ncessaire en franais, notamment pour les contractions
("le ordinateur", "le eau"), alors les traducteurs n'ont pas effectu
cette modification. Sorry, Zarf.