summaryrefslogtreecommitdiff
path: root/lib/luacd.cpp
diff options
context:
space:
mode:
authorpixel <pixel>2004-12-17 11:48:41 +0000
committerpixel <pixel>2004-12-17 11:48:41 +0000
commit5133823ad4cb74ed74246f0796fc393e36f64a70 (patch)
tree57bd2262fcf4794f217d4e514070de48708b6588 /lib/luacd.cpp
parent0a6b732223f7effa4ca7df97af09679ed39f40aa (diff)
Added full SubHeader support when creating an iso.
Diffstat (limited to 'lib/luacd.cpp')
-rw-r--r--lib/luacd.cpp30
1 files changed, 22 insertions, 8 deletions
diff --git a/lib/luacd.cpp b/lib/luacd.cpp
index c330921..a594f27 100644
--- a/lib/luacd.cpp
+++ b/lib/luacd.cpp
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-/* $Id: luacd.cpp,v 1.15 2004-11-27 21:47:56 pixel Exp $ */
+/* $Id: luacd.cpp,v 1.16 2004-12-17 11:48:41 pixel Exp $ */
#include "luacd.h"
@@ -1368,7 +1368,7 @@ struct lua_functypes_t isobuilder_methods[] = {
{ ISOBUILDER_GETDISPSECT, "getdispsect", 0, 0, 0},
{ ISOBUILDER_PUTFILE, "putfile", 1, 3, {LUA_OBJECT, LUA_NUMBER, LUA_NUMBER} },
{ ISOBUILDER_PUTDATAS, "putdatas", 2, 4, {LUA_TABLE, LUA_NUMBER, LUA_NUMBER, LUA_NUMBER} },
- { ISOBUILDER_CREATESECTOR, "createsector", 1, 3, {LUA_TABLE, LUA_NUMBER, LUA_NUMBER} },
+ { ISOBUILDER_CREATESECTOR, "createsector", 1, 7, {LUA_TABLE | LUA_OBJECT, LUA_NUMBER, LUA_NUMBER, LUA_NUMBER, LUA_NUMBER, LUA_NUMBER, LUA_NUMBER} },
{ ISOBUILDER_SETEOF, "setEOF", 0, 0, 0 },
{ ISOBUILDER_CLEAREOF, "clearEOF", 0, 0, 0 },
{ ISOBUILDER_SETBASICS, "setbasics", 1, 5, {LUA_OBJECT, LUA_NUMBER, LUA_NUMBER, LUA_NUMBER, LUA_NUMBER} },
@@ -1447,6 +1447,7 @@ int sLua_isobuilder::isobuilder_proceed(Lua * L, int n, isobuilder * iso, int ca
int r = 0, i;
Handle * h = 0;
int mode = -1, sector = -1, rootsize = 1, ptsize = 1, nvd = 1, rootsect = -1, nsects = -1;
+ int FN = -1, CN = -1, SM = -1, CI = -1;
size_t size;
Byte datas[2352 * 16], * p;
PVD * pvd;
@@ -1514,13 +1515,26 @@ int sLua_isobuilder::isobuilder_proceed(Lua * L, int n, isobuilder * iso, int ca
mode = L->tonumber(3);
if (n >= 3)
sector = L->tonumber(4);
- for (i = 0; i < 2352; i++) {
- L->push((lua_Number) i);
- L->gettable(2);
- datas[i] = L->tonumber();
- L->pop();
+ if (n >= 4)
+ FN = L->tonumber(5);
+ if (n >= 5)
+ CN = L->tonumber(6);
+ if (n >= 6)
+ SM = L->tonumber(7);
+ if (n >= 7)
+ CI = L->tonumber(8);
+ if (L->isobject(2)) {
+ h = (Handle *) LuaObject::getme(L, 2);
+ L->push((lua_Number) iso->createsector(h, mode, sector, FN, CN, SM, CI));
+ } else {
+ for (i = 0; i < 2352; i++) {
+ L->push((lua_Number) i);
+ L->gettable(2);
+ datas[i] = L->tonumber();
+ L->pop();
+ }
+ L->push((lua_Number) iso->createsector(datas, mode, sector, FN, CN, SM, CI));
}
- L->push((lua_Number) iso->createsector(datas, mode, sector));
r = 1;
break;
case ISOBUILDER_SETEOF: