# HG changeset patch # User unc0rr # Date 1371588741 -14400 # Node ID 21df1a0ec9edea9d18f59b2bcb8f6fe8366863a6 # Parent 64718974158f3e3782555f9711e23a64fd84f6dd engine links diff -r 64718974158f -r 21df1a0ec9ed hedgewars/uPhysFSLayer.pas --- a/hedgewars/uPhysFSLayer.pas Wed Jun 19 00:19:33 2013 +0400 +++ b/hedgewars/uPhysFSLayer.pas Wed Jun 19 00:52:21 2013 +0400 @@ -29,11 +29,11 @@ function pfsExists(fname: shortstring): boolean; -{ $IFNDEF PAS2C} +{$IFNDEF PAS2C} function physfsReader(L: Plua_State; f: PFSFile; sz: Psize_t) : PChar; cdecl; external PhyslayerLibName; procedure physfsReaderSetBuffer(buf: pointer); cdecl; external PhyslayerLibName; procedure hedgewarsMountPackage(filename: PChar); cdecl; external PhyslayerLibName; -{ $ENDIF} +{$ENDIF} implementation uses uUtils, uVariables; diff -r 64718974158f -r 21df1a0ec9ed hedgewars/uRender.pas --- a/hedgewars/uRender.pas Wed Jun 19 00:19:33 2013 +0400 +++ b/hedgewars/uRender.pas Wed Jun 19 00:52:21 2013 +0400 @@ -144,63 +144,6 @@ glDrawArrays(GL_TRIANGLE_FAN, 0, High(VertexBuffer) - Low(VertexBuffer) + 1); end; - -procedure DrawTextureFromRectDir(X, Y, W, H: LongInt; r: PSDL_Rect; SourceTexture: PTexture); -var - rr: TSDL_Rect; - VertexBuffer, TextureBuffer: array [0..3] of TVertex2f; - //VertexBuffer, TextureBuffer: TVertexRect; - _l, _r, _t, _b: GLfloat; -begin -if (SourceTexture^.h = 0) or (SourceTexture^.w = 0) then - exit; - -// do not draw anything outside the visible screen space (first check fixes some sprite drawing, e.g. hedgehogs) -if (abs(X) > W) and ((abs(X + W / 2) - W / 2) > cScreenWidth / cScaleFactor) then - exit; -if (abs(Y) > H) and ((abs(Y + H / 2 - (0.5 * cScreenHeight)) - H / 2) > cScreenHeight / cScaleFactor) then - exit; - -rr.x:= X; -rr.y:= Y; -rr.w:= W; -rr.h:= H; - -_l:= r^.x / SourceTexture^.w * SourceTexture^.rx; -_r:= (r^.x + r^.w) / SourceTexture^.w * SourceTexture^.rx; -_t:= r^.y / SourceTexture^.h * SourceTexture^.ry; -_b:= (r^.y + r^.h) / SourceTexture^.h * SourceTexture^.ry; - -glBindTexture(GL_TEXTURE_2D, SourceTexture^.id); - -VertexBuffer[0].X:= X; -VertexBuffer[0].Y:= Y; -VertexBuffer[1].X:= rr.w + X; -VertexBuffer[1].Y:= Y; -VertexBuffer[2].X:= rr.w + X; -VertexBuffer[2].Y:= rr.h + Y; -VertexBuffer[3].X:= X; -VertexBuffer[3].Y:= rr.h + Y; - -TextureBuffer[0].X:= _l; -TextureBuffer[0].Y:= _t; -TextureBuffer[1].X:= _r; -TextureBuffer[1].Y:= _t; -TextureBuffer[2].X:= _r; -TextureBuffer[2].Y:= _b; -TextureBuffer[3].X:= _l; -TextureBuffer[3].Y:= _b; - -SetVertexPointer(@VertexBuffer[0], Length(VertexBuffer)); -SetTexCoordPointer(@TextureBuffer[0], Length(VertexBuffer)); - -{$IFDEF GL2} -UpdateModelviewProjection; -{$ENDIF} - -glDrawArrays(GL_TRIANGLE_FAN, 0, Length(VertexBuffer)); -end; - procedure DrawTexture(X, Y: LongInt; Texture: PTexture); inline; begin DrawTexture(X, Y, Texture, 1.0); diff -r 64718974158f -r 21df1a0ec9ed hedgewars/uScript.pas --- a/hedgewars/uScript.pas Wed Jun 19 00:19:33 2013 +0400 +++ b/hedgewars/uScript.pas Wed Jun 19 00:52:21 2013 +0400 @@ -85,6 +85,7 @@ SysUtils, uIO, uPhysFSLayer +{$IFDEF PAS2C}, hwpacksmounter{$ENDIF} ; var luaState : Plua_State; diff -r 64718974158f -r 21df1a0ec9ed misc/libphyslayer/hwpacksmounter.h --- a/misc/libphyslayer/hwpacksmounter.h Wed Jun 19 00:19:33 2013 +0400 +++ b/misc/libphyslayer/hwpacksmounter.h Wed Jun 19 00:52:21 2013 +0400 @@ -3,6 +3,10 @@ #include "physfs.h" +#ifndef STRINIT +#include "lua.h" +#endif + #ifdef __cplusplus extern "C" { #endif @@ -10,6 +14,9 @@ PHYSFS_DECL void hedgewarsMountPackages(); PHYSFS_DECL void hedgewarsMountPackage(char * fileName); +PHYSFS_DECL const char * physfsReader(lua_State *L, PHYSFS_File *f, size_t *size); +PHYSFS_DECL void physfsReaderSetBuffer(void *buffer); + #ifdef __cplusplus } #endif diff -r 64718974158f -r 21df1a0ec9ed project_files/hwc/CMakeLists.txt --- a/project_files/hwc/CMakeLists.txt Wed Jun 19 00:19:33 2013 +0400 +++ b/project_files/hwc/CMakeLists.txt Wed Jun 19 00:52:21 2013 +0400 @@ -10,6 +10,8 @@ #compile our rtl implementation include_directories(${GLEW_INCLUDE_DIR}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/rtl) +include_directories(${PHYSFS_INCLUDE_DIR}) +include_directories(${PHYSLAYER_INCLUDE_DIR}) add_subdirectory(rtl) configure_file(${CMAKE_SOURCE_DIR}/hedgewars/config.inc.in ${CMAKE_CURRENT_BINARY_DIR}/config.inc) diff -r 64718974158f -r 21df1a0ec9ed project_files/hwc/rtl/fpcrtl.h --- a/project_files/hwc/rtl/fpcrtl.h Wed Jun 19 00:19:33 2013 +0400 +++ b/project_files/hwc/rtl/fpcrtl.h Wed Jun 19 00:52:21 2013 +0400 @@ -63,6 +63,7 @@ #define luapas_luaopen_math luaopen_math #define luapas_luaopen_string luaopen_string #define luapas_luaopen_table luaopen_table +#define luapas_lua_load lua_load #define sdlh_IMG_Load IMG_Load #define sdlh_IMG_Load_RW IMG_Load_RW