Handshake....
Verfasst: 15.09.2006 09:35
Code: Alles auswählen
;*********************************************************************************************
; Handshake LernSoftware <-> Game PB 4.0 Version 1.0 14.09.2006
;*********************************************************************************************
;Hab mich für einen Handshake ala MS API enschieden.....
;Mittels CreateGame wird das Spiel auf eurer Seite initialisiert.
;Procedure CreateGame(*Gc.GameControl,*TermArray,*PhraseArray)
;*Gc.GAMECONTROL Pointer auf eine übergebene GAMECONTROL Struktur. Auslesen wieviele
;Terme GcHowManyTerms und wieviele Sätze GcHowManyPhrases vorhanden sind. Eigenes Array
;DIM MyTerm.GAMETERM(GcHowManyTerms) und DIM MyPhrase.GAMEPHRASE(GcHowManyPhrases) erstellen.
;CopyMemory(*TermArray,*MyTerm,SizeOF(MyTerm)) und dasselbe mit
;CopyMemory(*PhraseArray,*MyPhrase,SizeOF(MyPhrase)). Somit wären dann alle Contentdaten
;bekannt.... Das Spiel kann beginnen...
;Rückgabewerte mittels Poke direkt an die entpsrechenden Offsets.
;-Declaration Constants
Enumeration ; Rückgabewerte für Structure GameControl -> GcReturnProgrammQuit
#ProgrammQuit ; Das Spiel wurde korrekt beendet (und gespielt)
#ProgrammUserAbort ; User hat das Spiel vorzeitig abgebrochen
#ProgrammError ; Ein Fehler ist im Spiel aufgetreten.
EndEnumeration
Enumeration ; Rückgabewerte für Structure GameTerm -> GtReturn
#SucceedAlways ; In allen Sätzen welche den Begriff beschreiben Term erkannt.
#SucceedPartial ; Den Term in einem oder mehr, aber nicht in allen Sätzen erkannt.
#Unrealised ; Den Term in keinem Satz erkannt.
EndEnumeration
;-Declaration Structures
Structure GAMEPHRASE
;Initialisation
GpTermId.l ; Offset 0 - TermId verbindet den Satz mit dem Term
GpContentSource.s{128} ; Offset 4 - Der Satz als Text in der Originalsprache
GpContentTarget.s{128} ; Offset 132 - Der Satz als Text in der Zielsprache (z.B. Thailändische Schrift)
GpContentPhonetic.s{128} ; Offset 260 - Der Satz als Text in Lautschrift in der Zielsprache (z.B. Thai in Deutscher Schrift)
GpHndSound.l ; Offset 388 - PB Handle auf das Audiofile (Sound) im Speicher
GpInitReserve.b[16] ; Offset 392 - Reserviert für späteren Gebrauch
;Return ; Wurde dieser Satz erkannt?
GpReturnFlag.b ; Offset 408 - Rückgabewert muss durch das Spiel gesetzt werden: #True or #False
GpReturnReserve.b[16] ; Offset 409 - Reserviert für späteren Gebrauch
EndStructure ; SizeOF GAMEPHRASE 425
Structure GAMETERM
;Initialisation
GtId.l ; Offset 0 - Eindeutige Id für den Term (Begriff) Verbindet den Term mit den Sätzen
GtContentSource.s{32} ; Offset 4 - Der Term als Fixed String
GtContentTarget.s{32} ; Offset 36 - Der Term als Text in der Zielsprache ;
GtContentPhonetic.s{32} ; Offset 68 - Der Term als Text in Lautschrift
GtHndPic.l ; Offset 100 - PB Handle des im Speicher vorliegenden Pics (Begriff)
GtHndSound.l ; Offset 104 - PB Handle des im Speicher vorliegenden Audiofiles (Begriff)
GtReserve.b[16] ; Offset 108 - Reserviert für späteren Gebrauch
;Return ; Wurde dieser Term erkannt? Immer? Manchmal? Nie?
GtReturn.b ; Offset 124 - Mögliche Werte: #SucceedAlways #SucceedPartial #Unrealised
GtReturnReserve.b[16] ; Offset 125 - Reserviert für späteren Gebrauch
EndStructure ; SizeOF GAMETERM 141 Bytes
Structure GAMECONTROL
;Initialisation
GcHowManyTerms.l ; Offset 0 - Wieviele Terme werden an das Spiel übergeben
GcHowManyPhrases.l ; Offset 4 - Wieviele Sätze werden an das Spiel übergeben
GcGameLevel.l ; Offset 8 - Schwierigkeitsgrad des Spieles
GcReserve.b[16] ; Offset 12 - Reserviert für späteren Gebrauch
;Return ;
GcReturnNumberQuestions.l ; Offset 28 - Wieviele Fragen wurden gestellt?
GcReturnNumberFailings.l ; Offset 32 - Wieviele Fragen wurden nicht oder falsch beantwortet ?
GcReturnProgrammQuit.l ; Offset 36 - Das Spiel wurde beendet. Mögliche Rückgabe #ProgrammQuit #ProgrammUserAbort #ProgrammError
GcReturnReserve.b[16] ; Offset 40 - Reserviert für späteren Gebrauch
EndStructure ; SizeOF GAMECONTROL 56 Bytes
Procedure CreateGame(*Gc.GAMECONTROL,*TermArray,*PhraseArray)
EndProcedure