; Fast isolated assembly pass; the full action suite tests the real engine. .386 .model flat IFDEF SCRATCH_MODULE_TEST EXTERN engineMode:DWORD,paused3D:DWORD,bankroll:DWORD,deltaTime3D:DWORD,animationClock3D:DWORD EXTERN viewWidth3D:DWORD,viewHeight3D:DWORD,viewLeft3D:DWORD,viewTop3D:DWORD EXTERN clpSymbolsPath3D:BYTE,coinExitText3D:BYTE,coinBankText3D:BYTE,hudNumBuffer:BYTE EXTERN screenBuffer:DWORD,rngSeed3D:DWORD,h3DWnd:DWORD EXTERN lastSoundPath3D:DWORD ENDIF option language:stdcall option casemap:none FP_1 equ 65536 FP_HALF equ 32768 SCREEN_SIZE equ 640*480 MODE_WALK equ 0 AnimPack3D STRUCT magic dd ? imageWidth dd ? height dd ? frames dd ? bytes dd ? pixels dd ? AnimPack3D ENDS CityProp3D STRUCT posX dd ? posY dd ? worldW dd ? worldH dd ? frame dd ? asset dd ? groundZ dd 0 CityProp3D ENDS LoadAnimPack3D PROTO :DWORD,:DWORD FreeAnimPack3D PROTO :DWORD ValidateCityPack3D PROTO :DWORD,:DWORD,:DWORD,:DWORD DrawAnimSprite3D PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD DrawBox PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD DrawBoxBorder PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD DrawString8x8 PROTO :DWORD,:DWORD,:DWORD,:DWORD DrawBuckshotText3D PROTO :DWORD,:DWORD,:DWORD,:DWORD FormatNumber PROTO :DWORD,:DWORD RandomRange3D PROTO :DWORD Pressed3D PROTO :DWORD ClearKeys3D PROTO SaveProgress3D PROTO IFNDEF SCRATCH_MODULE_TEST .data engineMode dd 0 paused3D dd 0 bankroll dd 10000 deltaTime3D dd 16 animationClock3D dd 0 viewWidth3D dd 640 viewHeight3D dd 480 viewLeft3D dd 0 viewTop3D dd 0 coinTablePath3D db 0 clpSymbolsPath3D db 0 coinExitText3D db 0 coinBankText3D db 0 hudNumBuffer db 64 dup(0) .data? screenBuffer dd SCREEN_SIZE dup(?) ENDIF .code include src_graphics/scratch_data.inc include src_graphics/scratch.inc IFDEF SCRATCH_TEST_SYNTAX WriteActionSnapshot3D PROTO :DWORD WindowEvents3D PROTO :DWORD,:DWORD,:DWORD,:DWORD IFNDEF SCRATCH_MODULE_TEST .data rngSeed3D dd 47 h3DWnd dd 0 ENDIF .code include tools/tests/scratch_test.inc ENDIF IFDEF SCRATCH_MODULE_TEST ExitProcess PROTO :DWORD CreateFileA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD ReadFile PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD GetFileSize PROTO :DWORD,:DWORD GetProcessHeap PROTO HeapAlloc PROTO :DWORD,:DWORD,:DWORD HeapFree PROTO :DWORD,:DWORD,:DWORD CloseHandle PROTO :DWORD InitPaths3D PROTO .code include build/scratch/module-loader.inc ScratchModuleStart PROC call InitPaths3D call RunScratchTest3D cmp eax,1 jne @F xor eax,eax @@: invoke ExitProcess,eax ScratchModuleStart ENDP ENDIF end