diff options
-rw-r--r-- | lib/luapsx.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/lib/luapsx.cpp b/lib/luapsx.cpp index 68cfd3e..0eb1b40 100644 --- a/lib/luapsx.cpp +++ b/lib/luapsx.cpp @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* $Id: luapsx.cpp,v 1.3 2004-04-27 17:52:15 pixel Exp $ */ +/* $Id: luapsx.cpp,v 1.4 2004-05-24 23:18:59 pixel Exp $ */ #include <LuaHandle.h> #include "luapsx.h" @@ -238,9 +238,21 @@ int sLua_psx::psx_proceed_statics(Lua * L, int n, int caller) { return 0; } + if ((sx + sw) < 0)
+ return;
+
+ if (sx >= dw)
+ return;
+
+ if ((sy + sh) < 0)
+ return;
+
+ if (sy >= dh)
+ return;
+
if (sy < 0) { - sstart += sw * bytes * sy; - sh -= sy; + sstart -= sw * bytes * sy; + sh += sy; sy = 0; } else { dstart += dw * 3 * sy; @@ -251,9 +263,9 @@ int sLua_psx::psx_proceed_statics(Lua * L, int n, int caller) { } if (sx < 0) { - sstart += sx * bytes; - sskip += sx * bytes; - sw -= sx; + sstart -= sx * bytes; + sskip -= sx * bytes; + sw += sx; sx = 0; } else { dstart += sx * 3; |