MODE_FORTUNE equ 25 BeginFortuneDialog3D PROTO HandleFortuneDialog3D PROTO RenderFortuneDialog3D PROTO FortuneChar3D PROTO :DWORD StopFortuneWorker3D PROTO PollFortuneWorker3D PROTO SubmitFortuneQuestion3D PROTO FortuneWrap3D PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD InitFortuneMindState3D PROTO GenerateTarotReadingMind3D PROTO GenerateStudentGradeMind3D PROTO DetectTopic3D PROTO :DWORD FortuneStrLen PROTO :DWORD FortuneStrCat PROTO :DWORD,:DWORD SubmitStudentGrade3D PROTO DrawFortuneCardBox3D PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD CreatePipe PROTO :DWORD,:DWORD,:DWORD,:DWORD SetHandleInformation PROTO :DWORD,:DWORD,:DWORD CreateProcessA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD PeekNamedPipe PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD TerminateProcess PROTO :DWORD,:DWORD GetExitCodeProcess PROTO :DWORD,:DWORD include src_graphics\fortune_mind_data.inc .data fortuneWorkerPath3D db "ai\fortune-engine.exe",0 fortuneWorkerCommand3D db "ai\fortune-engine.exe",0 fortuneNullName3D db "NUL",0 fortunePipeSecurity3D dd 12,0,1 fortuneStartup3D dd 17 dup(0) fortuneProcess3D dd 4 dup(0) fortuneRead3D dd 0 fortuneWrite3D dd 0 fortuneChildRead3D dd 0 fortuneChildWrite3D dd 0 fortuneNull3D dd 0 fortuneWorkerState3D dd 0 ; 0=off, 1=loading, 2=ready, 3=generating, 4=error fortuneWorkerTick3D dd 0 fortuneReceiveLength3D dd -1 fortuneReceiveHeader3D dd 3 dup(0) fortuneRequest3D dd 31514346h,0,0,0,0 fortuneIo3D dd 0 fortuneAvailable3D dd 0 fortuneQuestionLength3D dd 0 fortuneQuestion3D db 241 dup(0) fortuneAnswer3D db 8193 dup(0) fortuneBackground3D dd SCREEN_SIZE dup(0) fortunePage3D dd 0 fortuneMore3D dd 0 fortuneShort3D dd 0 fortuneLine3D db 73 dup(0) fortuneCaretX3D dd 24 fortuneCaretY3D dd 366 fortuneCaret3D db "_",0 fortuneTitle3D db 195,192,196,192,203,202,192,0 fortuneLoading3D db 207,240,238,225,243,230,228,224,254,32,234,224,240,242,251,46,46,46,0 fortuneThinking3D db 202,224,240,242,251,32,238,242,226,229,247,224,254,242,46,46,46,0 fortuneReady3D db 202,224,234,238,233,32,226,238,239,240,238,241,32,242,229,225,255,32,239,240,232,226,184,235,63,0 fortuneError3D db 205,229,32,243,228,224,235,238,241,252,32,231,224,239,243,241,242,232,242,252,32,237,229,233,240,238,241,229,242,252,46,32 db 207,240,238,226,229,240,252,32,234,238,236,239,235,229,234,242,32,232,227,240,251,46,0 fortuneAsk3D db 209,207,208,206,209,200,210,220,0 fortuneExit3D db 194,219,201,210,200,0 fortuneDisclaimer3D db 208,224,241,234,235,224,228,32,228,235,255,32,240,224,231,236,251,248,235,229,237,232,255,44,32 db 237,229,32,228,238,241,242,238,226,229,240,237,238,229,32,239,240,229,228,241,234,224,231,224,237,232,229,46,0 fortunePartial3D db 206,242,226,229,242,32,241,238,234,240,224,249,184,237,0 fortuneLeft3D db "<",0 fortuneRight3D db ">",0