#include "PACEInterfaceLib.h" #include "native.h" // Linker still looks for ARMlet_Main as entry point, but the // "ARMlet" name is now officially discouraged. Compare an // contrast to "PilotMain" for 68K applications. #define PNO_Main ARMlet_Main // ------------------------ extern "C" unsigned long PNO_Main( const void *emulStateP, void *userData68KP, Call68KFuncType *call68KFuncP); unsigned long PNO_Main(const void *emulStateP, void *userData68KP, Call68KFuncType *call68KFuncP) { PnoProc *func[] = { #if defined(COMPILE_COMMON) OSystem_CopyRectToScreen, OSystem_updateScreen_widePortrait, OSystem_updateScreen_wideLandscape, // MemoryStream_ReadBuffer #elif defined(COMPILE_QUEEN) Display_blit #elif defined(COMPILE_SCUMM) Gdi_drawStripToScreen, CostumeRenderer_proc3 #elif defined(COMPILE_SWORD1) Screen_draw, Screen_drawSprite, Screen_fastShrink, Screen_renderParallax, Screen_decompressTony, Screen_decompressRLE7, Screen_decompressRLE0 #endif }; // needed before making any OS calls using the // PACEInterface library InitPACEInterface(emulStateP, call68KFuncP); unsigned long retVal = 0; PnoType *pno = (PnoType *)ByteSwap32(userData68KP); UInt32 funcID = ReadUnaligned32(&pno->funcID); void *dataP = (void *)ReadUnaligned32(&pno->dataP); /* char buf[100]; StrIToA(buf,funcID); WinDrawChars(buf,StrLen(buf),30,0); */ retVal = func[funcID](dataP); return (retVal); }