dhewm3/neo/d3xp/script
Daniel Gibson 3ad384a0da Fix script interpreter on 64bit Big Endian platforms
idInterpreter::Push() is used only for int and (reinterpreted) float
values, not pointers (as far as I can tell), so 32bit values on all
relevant platforms.
It stored its value as intptr_t at `&localstack[ localstackUsed ]` - on
64bit platforms intptr_t is 64bit.
Unfortunately, all code reading from the stack just get got a pointer
to `&localstack[ localstackUsed ]` in the type they want to read
(like `int*` or `float*`) and read that. On Little Endian that happens
to work, on 64bit Big Endian it reads the wrong 4 bytes of the intptr_t,
so it doesn't work.

fixes #625, #472
2024-10-31 03:18:33 +01:00
..
Script_Compiler.cpp
Script_Compiler.h
Script_Interpreter.cpp
Script_Interpreter.h Fix script interpreter on 64bit Big Endian platforms 2024-10-31 03:18:33 +01:00
Script_Program.cpp
Script_Program.h
Script_Thread.cpp
Script_Thread.h