KAZIK/src_graphics/fortune_dialog_data.inc
Artvasil09 ce06659ab2 feat: implement offline neural fortune teller and native tarot divination
- Offline neural worker based on llama.cpp (fortune-engine.exe) with local Qwen3-4B model support

- Native assembly Tarot 3-card spread divination and teacher grade divination mode

- Text input dialog in MODE_FORTUNE communicating over anonymous pipes

- Clean process lifecycle management, WM_CHAR dispatch and fallback handling

- Test suites and packaging tools for offline release
2026-10-21 13:53:06 +03:00

67 lines
2.7 KiB
PHP

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