#include "common.h" void afficheSprite(int left, int top, int index, char* gfxData) { char* outPtr; char* inPtr; int width; int height; int offset; int i; int j; if(g_gameId >= AITD3) return; outPtr = logicalScreen + top*320 + left; inPtr = gfxData + READ_LE_U16(index * 2 + gfxData); // alignement unsafe inPtr +=4; width = READ_LE_U16(inPtr); // alignement unsafe inPtr+=2; height = READ_LE_U16(inPtr); // alignement unsafe inPtr+=2; offset = 320 - width; // Prevent overflow if(height + top > 200) { height = top - 200; } for(i=0;i= AITD3) return; outPtr = logicalScreen + top*320 + left; inPtr = gfxData + READ_LE_U16(index * 2 + gfxData); // alignement unsafe inPtr +=4; width = READ_LE_U16(inPtr); // alignement unsafe inPtr+=2; height = READ_LE_U16(inPtr); // alignement unsafe inPtr+=2; offset = 320 - width; for(i=0;i currentTopPosition) { afficheSprite(currentLeftPosition,currentTopPosition,7,PtrCadre); currentTopPosition += 20; } currentLeftPosition = left; afficheSprite(currentLeftPosition,currentTopPosition,2,PtrCadre); // draw bottom left corner while(1) // draw bottom bar { currentLeftPosition += 20; if(right-20 <= currentLeftPosition) break; afficheSprite(currentLeftPosition,currentTopPosition+12,5,PtrCadre); } afficheSprite(currentLeftPosition,currentTopPosition,3,PtrCadre); // draw bottom right corner afficheSprite(x-20,currentTopPosition+12,8,PtrCadre); // draw "in the dark" WindowX1 = left + 8; WindowY1 = top + 8; WindowX2 = right - 9; WindowY2 = bottom - 9; AffRect(WindowX1,WindowY1,WindowX2,WindowY2,0); SetClip(WindowX1,WindowY1,WindowX2,WindowY2); }