Outils pour utilisateurs

Outils du site


agi-game:specifications-resources

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
agi-game:specifications-resources [2021/05/24 15:20] – [The <tt>said</tt> test command] frateragi-game:specifications-resources [2021/05/24 15:30] – [AGI Specifications Resources : Logic resources] frater
Ligne 1: Ligne 1:
-====== Logic resources ======+====== AGI Specifications Resources : Logic resources ======
  
-===== Introduction =====+==== Introduction ====
  
 At the heart of Sierra's Adventure Game Interpreter is the logic file. At the heart of Sierra's Adventure Game Interpreter is the logic file.
Ligne 636: Ligne 636:
 In the above examples, the values 0x011E, 0x0237, and 0x0073 are just random word numbers that could stand for the words given. In the above examples, the values 0x011E, 0x0237, and 0x0073 are just random word numbers that could stand for the words given.
  
-===Inner loops=== +==== Inner loops ==== 
-At first I almost totally discarded the existence of loops in the AGI +At first I almost totally discarded the existence of loops in the AGI code because it seemed to me that execution of the logic script continually looped. Loop code like "while", "do..while", and "for" statements wouldn't be needed because you could just use a variable to increment with each pass and an **if** statement to test the value of the variable and take action if it was withing the desired range.
-code because it seemed to me that execution of the logic script +
-continually looped. Loop code like "while", "do..while", and "for" +
-statements wouldn't be needed because you could just use a variable to +
-increment with each pass and an //if// statement to test the +
-value of the variable and take action if it was withing the desired range.+
  
 Example: Example:
  
-<code type="C++">+<code C>
 if (greatern(30, 45) && lessn(30, 55)) { if (greatern(30, 45) && lessn(30, 55)) {
     print("You're in the hot zone!");     print("You're in the hot zone!");
Ligne 653: Ligne 648:
 </code> </code>
  
-I have found evidence of this sort of thing taking place which means +I have found evidence of this sort of thing taking place which means that they must loop over continuously. I don't know whether this is something that the interpreter does itself or whether it is part of 
-that they must loop over continuously. I don't know whether this is +the AGI code, e.g. at the end of one logic script it calls another which then calls the first one again. With the existence of the conditional branching and unconditional branching nature of the **if** and 
-something that the interpreter does itself or whether it is part of +**else** statement, it is easy to see that some of the structures such as "do..while" can infact be coded into logic scripts.
-the AGI code, e.g. at the end of one logic script it calls another which +
-then calls the first one again. With the existence of the conditional +
-branching and unconditional branching nature of the //if// and +
-//else// statement, it is easy to see that some of the +
-structures such as "do..while" can infact be coded into logic scripts.+
  
 Example: Example:
  
-<code type="C++">+<code C>
 FF FD 0D FF 03 00 FE F7 FF FF FD 0D FF 03 00 FE F7 FF
  
Ligne 671: Ligne 661:
 </code> </code>
  
-The above translation is a simple one which is taken from SQ2. The +The above translation is a simple one which is taken from SQ2. The value 0xFFF7 is the twos complement notation for -9 which is the exact branching value to take the execution back to the start of the **if** 
-value 0xFFF7 is the twos complement notation for -9 which is the exact +statement. If the above example had AGI code between the 0x00 and the 0xFE, then there would be code within the brackets of the "do..while" structure. I don't know whether the original AGI coders used these 
-branching value to take the execution back to the start of the //if// +statements or used **goto** statements to achieve the same result.
-statement. If the above example had AGI code between the 0x00 and the +
-0xFE, then there would be code within the brackets of the "do..while" +
-structure. I don't know whether the original AGI coders used these +
-statements or used //goto// statements to achieve the same result.+
  
agi-game/specifications-resources.txt · Dernière modification : 2023/04/13 09:50 de frater