Hello all, I think I have a memory leak problem which I isolated in my code:
.if uMsg==WM_PAINT
invoke BeginPaint,hWnd,ADDR ps
mov hdc,eax
invoke CreateFont,FONT1H,FONT1W,0,0,400,0,0,0,OEM_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,ADDR TYPEFACE
invoke SelectObject,hdc,eax
mov hfont,eax
RGB 0,0,0
invoke SetBkColor,hdc,eax
RGB 0,255,0
invoke SetTextColor,hdc,eax
RGB Rr,Gg,Bb
invoke SetTextColor,hdc,eax
mov edi,pWorldTable
mov esi,[edi+4] ;get ID# of current active area
lea edi,[edi+8] ;point to first WorldX,WorldY
dec esi
shl esi,4
lea edi,[edi+esi+8]
mov esi,[edi] ;set ptr to active mem block/area
.if (PAINT_CHAR>0) ;==idx# to mob's X,Y in LocalTable
push PAINT_CHAR
pop edi
UnCoords [esi+(edi*8)]
mov ebx,[esi+(edi*8)+4] ;->Char/Mob Sheet
invoke SetTextColor,hdc,[ebx+OFFSET_CHARCOLOR]
invoke TextOut,hdc,MobX,MobY,ADDR [ebx+OFFSET_CHARSYMB],1
mov PAINT_CHAR,0
.endif
invoke EndPaint,hWnd,ADDR ps
It seems to happen specifically when the TextOut function is called. Any ideas? Thanks for any help!