diff --git a/dlls/src/dinmem/win32/dinmem.vcproj b/dlls/src/dinmem/win32/dinmem.vcproj
index 3c688d8..e60b04c 100644
--- a/dlls/src/dinmem/win32/dinmem.vcproj
+++ b/dlls/src/dinmem/win32/dinmem.vcproj
@@ -60,7 +60,7 @@
diff --git a/dlls/src/edivstd/win32/edivstd.vcproj b/dlls/src/edivstd/win32/edivstd.vcproj
index 0c5a15e..5ab827a 100644
--- a/dlls/src/edivstd/win32/edivstd.vcproj
+++ b/dlls/src/edivstd/win32/edivstd.vcproj
@@ -60,7 +60,7 @@
diff --git a/dlls/src/file/file.c b/dlls/src/file/file.c
index 5e9c142..c50f073 100644
--- a/dlls/src/file/file.c
+++ b/dlls/src/file/file.c
@@ -22,6 +22,10 @@ int ExportaFuncs(EXPORTAFUNCS_PARAMS)
FUNCTION("fseek",3,eDiv_Fseek) ;
FUNCTION("flush",0,eDiv_Flush) ;
FUNCTION("fclose",1,eDiv_Fclose) ;
+
+// FUNCTION("load",2,eDIV_Load);
+// FUNCTION("save",3,eDIV_Save);
+
return TRUE ;
}
diff --git a/dlls/src/file/win32/file.vcproj b/dlls/src/file/win32/file.vcproj
index ad9fa86..0622ed6 100644
--- a/dlls/src/file/win32/file.vcproj
+++ b/dlls/src/file/win32/file.vcproj
@@ -59,7 +59,7 @@
diff --git a/dlls/src/graphics/win32/graphics.vcproj b/dlls/src/graphics/win32/graphics.vcproj
index 9f9d2d6..7b52c6a 100644
--- a/dlls/src/graphics/win32/graphics.vcproj
+++ b/dlls/src/graphics/win32/graphics.vcproj
@@ -60,7 +60,7 @@
diff --git a/dlls/src/input/win32/input.vcproj b/dlls/src/input/win32/input.vcproj
index 9664d64..c0a33fc 100644
--- a/dlls/src/input/win32/input.vcproj
+++ b/dlls/src/input/win32/input.vcproj
@@ -60,7 +60,7 @@
diff --git a/dlls/src/math/win32/math.vcproj b/dlls/src/math/win32/math.vcproj
index f5b18a5..0c6067e 100644
--- a/dlls/src/math/win32/math.vcproj
+++ b/dlls/src/math/win32/math.vcproj
@@ -59,7 +59,7 @@
diff --git a/dlls/src/text/win32/text.vcproj b/dlls/src/text/win32/text.vcproj
index c51408c..fbdf673 100644
--- a/dlls/src/text/win32/text.vcproj
+++ b/dlls/src/text/win32/text.vcproj
@@ -59,7 +59,7 @@
>=(word)pila[sp]);
+ sp-=2;
+ break;
+ case lslawor:
+ pila[sp-2]=(unsigned int)(memw[pila[sp-2]*2+pila[sp-1]]<<=(word)pila[sp]);
+ sp-=2;
+ break;
+ case lcpawor:
+ _param_offset=reservedptr("param_offset");
+ if ((unsigned)pila[mem[procs_s[num_proc].id+_param_offset]]<256) {
+ memw[pila[sp-1]*2+pila[sp]]=(word)pila[mem[procs_s[num_proc].id+_param_offset]];
+ } else {
+ if (pila[mem[procs_s[num_proc].id+_param_offset]]255) if ((mem[pila[sp-1]-1]&0xFFFFF)+1255) strcpy((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]]);
+ else sprintf((char*)&mem[pila[sp-1]],"%c\0",pila[sp]);
+ sp--;
+ break;
+
+ case lstrfix:
+ if (pila[sp-1]>=(oo=strlen(&memb[pila[sp-2]*4]))) {
+ for (;oo255) oo=strlen((char*)&mem[pila[sp]]); else oo=1;
+ if ((mem[pila[sp-1]-1]&0xFFFFF)+1255) strcat((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]]);
+ else sprintf((char*)&mem[pila[sp-1]],"%s%c\0",(char*)&mem[pila[sp-1]],pila[sp]);
+ sp--;
+ break;
+
+ case lstradd: /* Strcat "en el aire" (ojo, el aire tiene tambien 0xDAD00402) */
+/* #ifdef DEBUG
+ if ((unsigned)pila[sp-1]>255) oo=strlen((char*)&mem[pila[sp-1]]); else oo=1;
+ if ((unsigned)pila[sp]>255) oo+=strlen((char*)&mem[pila[sp]]); else oo+=1;
+ if (oo>=1028) {
+ sp--; v_function=-2; e(140);
+ if (call_to_debug) { process_stoped=id; return; }
+ break;
+ }
+ #endif*/
+ if ((unsigned)pila[sp-1]>255) {
+ if ((unsigned)pila[sp]>255) {
+ sprintf((char*)&mem[nullstring[nstring]],"%s%s\0",(char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]]);
+ } else {
+ sprintf((char*)&mem[nullstring[nstring]],"%s%c\0",(char*)&mem[pila[sp-1]],pila[sp]);
+ }
+ } else {
+ if ((unsigned)pila[sp]>255) {
+ sprintf((char*)&mem[nullstring[nstring]],"%c%s\0",pila[sp-1],(char*)&mem[pila[sp]]);
+ } else {
+ sprintf((char*)&mem[nullstring[nstring]],"%c%c\0",pila[sp-1],pila[sp]);
+ }
+ }
+ pila[--sp]=nullstring[nstring];
+ nstring=((nstring+1)&3);
+ break;
+
+ case lstrdec: /* cambio de tamaño "en el aire" (no da error, hace lo que puede) */
+ oo=strlen((char*)&mem[pila[sp-1]]);
+ if (oo<1028) {
+ strcpy((char*)&mem[nullstring[nstring]],(char*)&mem[pila[sp-1]]);
+ if (pila[sp]>0) { // Quitar caracteres
+ if (pila[sp]>=oo) memb[nullstring[nstring]*4]=0;
+ else memb[nullstring[nstring]*4+oo-pila[sp]]=0;
+ } else if (pila[sp]<0) { // A¤adir (?) caracteres (por homogeneidad)
+ pila[sp]=oo-pila[sp]; // Nueva longitud
+ if (pila[sp]>1025) pila[sp]=1025;
+ for (;oo0) { // Quitar caracteres
+ if (pila[sp]>=oo) memb[pila[sp-1]*4]=0;
+ else memb[pila[sp-1]*4+oo-pila[sp]]=0;
+ } else if (pila[sp]<0) { // A¤adir (?) caracteres (por homogeneidad)
+ pila[sp]=oo-pila[sp]; // Nueva longitud
+ for (;oo255) pila[sp]=strlen((char*)&mem[pila[sp]]); else pila[sp]=1;
+ break;
+
+ case lstrigu:
+ if ((unsigned)pila[sp-1]>255) {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])) pila[sp-1]=0; else pila[sp-1]=1;
+ } else {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])) pila[sp-1]=0; else pila[sp-1]=1;
+ }
+ } else {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])) pila[sp-1]=0; else pila[sp-1]=1;
+ } else {
+ pila[sp-1]=(pila[sp-1]==pila[sp]);
+ }
+ } sp--; break;
+
+ case lstrdis:
+ if ((unsigned)pila[sp-1]>255) {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])) pila[sp-1]=1; else pila[sp-1]=0;
+ } else {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])) pila[sp-1]=1; else pila[sp-1]=0;
+ }
+ } else {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])) pila[sp-1]=1; else pila[sp-1]=0;
+ } else {
+ pila[sp-1]=(pila[sp-1]!=pila[sp]);
+ }
+ } sp--; break;
+ break;
+
+ case lstrmay:
+ if ((unsigned)pila[sp-1]>255) {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])>0) pila[sp-1]=1; else pila[sp-1]=0;
+ } else {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])>0) pila[sp-1]=1; else pila[sp-1]=0;
+ }
+ } else {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])>0) pila[sp-1]=1; else pila[sp-1]=0;
+ } else {
+ pila[sp-1]=(pila[sp-1]>pila[sp]);
+ }
+ } sp--; break;
+ break;
+
+ case lstrmen:
+ if ((unsigned)pila[sp-1]>255) {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])<0) pila[sp-1]=1; else pila[sp-1]=0;
+ } else {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])<0) pila[sp-1]=1; else pila[sp-1]=0;
+ }
+ } else {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])<0) pila[sp-1]=1; else pila[sp-1]=0;
+ } else {
+ pila[sp-1]=(pila[sp-1]255) {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])<=0) pila[sp-1]=1; else pila[sp-1]=0;
+ } else {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])<=0) pila[sp-1]=1; else pila[sp-1]=0;
+ }
+ } else {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])<=0) pila[sp-1]=1; else pila[sp-1]=0;
+ } else {
+ pila[sp-1]=(pila[sp-1]<=pila[sp]);
+ }
+ } sp--; break;
+ break;
+
+ case lstrmai:
+ if ((unsigned)pila[sp-1]>255) {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&mem[pila[sp]])>=0) pila[sp-1]=1; else pila[sp-1]=0;
+ } else {
+ if (strcmp((char*)&mem[pila[sp-1]],(char*)&pila[sp])>=0) pila[sp-1]=1; else pila[sp-1]=0;
+ }
+ } else {
+ if ((unsigned)pila[sp]>255) {
+ if (strcmp((char*)&pila[sp-1],(char*)&mem[pila[sp]])>=0) pila[sp-1]=1; else pila[sp-1]=0;
+ } else {
+ pila[sp-1]=(pila[sp-1]>=pila[sp]);
+ }
+ } sp--; break;
+ break;
+
+ case lcpastr:
+/* #ifdef DEBUG
+ if ((mem[pila[sp]-1]&0xFFF00000)!=0xDAD00000) {
+ sp--; mem[id+_Param]++; v_function=-2; e(164);
+ if (call_to_debug) { process_stoped=id; return; }
+ break;
+ }
+ if ((unsigned)pila[mem[id+_Param]]>255) {
+ if ((mem[pila[sp]-1]&0xFFFFF)+1255)
+ strcpy((char*)&mem[pila[sp]],(char*)&mem[pila[mem[id+_Param]]]);
+ else sprintf((char*)&mem[pila[sp]],"%c\0",pila[mem[id+_Param]]);
+ sp--; mem[id+_Param]++;
+ break;
+#endif
+
+ /* Comprobación de punteros nulos */
+ case lnul:
+/* #ifdef DEBUG
+ if (!pila[sp]) {
+ v_function=-2; e(165);
+ if (call_to_debug) { process_stoped=id; return; }
+ }
+ #endif*/
+ break;
}
#ifdef DBG
diff --git a/ediv/src/stub/language.c b/ediv/src/stub/language.c
index ee234fd..c617188 100644
--- a/ediv/src/stub/language.c
+++ b/ediv/src/stub/language.c
@@ -1,6 +1,6 @@
/*
* eDiv Compiler
- * Copyleft (C) 2000-2002 Sion Entertainment
+ * Copyleft (C) 2000-2003 Sion Entertainment
* http://www.sion-e.com
*
* This program is free software; you can redistribute it and/or modify
diff --git a/ediv/src/visual c/ediv/ediv.vcproj b/ediv/src/visual c/ediv/ediv.vcproj
index 25c65ca..2ca813f 100644
--- a/ediv/src/visual c/ediv/ediv.vcproj
+++ b/ediv/src/visual c/ediv/ediv.vcproj
@@ -58,7 +58,7 @@
diff --git a/ediv/src/visual c/ediv_ws.suo b/ediv/src/visual c/ediv_ws.suo
index 375ab06..2d5685f 100644
Binary files a/ediv/src/visual c/ediv_ws.suo and b/ediv/src/visual c/ediv_ws.suo differ
diff --git a/ediv/src/visual c/encrypt/encrypt.vcproj b/ediv/src/visual c/encrypt/encrypt.vcproj
index 66ff6b8..33c9df2 100644
--- a/ediv/src/visual c/encrypt/encrypt.vcproj
+++ b/ediv/src/visual c/encrypt/encrypt.vcproj
@@ -60,7 +60,7 @@
@@ -72,7 +72,10 @@
AdditionalIncludeDirectories="../../shared"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
StringPooling="TRUE"
- RuntimeLibrary="4"
+ MinimalRebuild="FALSE"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="TRUE"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="3"
diff --git a/ediv/src/visual c/stub/stub.vcproj b/ediv/src/visual c/stub/stub.vcproj
index 1380dee..e8f306b 100644
--- a/ediv/src/visual c/stub/stub.vcproj
+++ b/ediv/src/visual c/stub/stub.vcproj
@@ -67,7 +67,7 @@ makelib.bat win32.rel
@@ -161,7 +161,7 @@ makelib.bat win32.dbg
diff --git a/util/src/bmp2fnt/win32/bmp2fnt.vcproj b/util/src/bmp2fnt/win32/bmp2fnt.vcproj
index 33768d8..f343d73 100644
--- a/util/src/bmp2fnt/win32/bmp2fnt.vcproj
+++ b/util/src/bmp2fnt/win32/bmp2fnt.vcproj
@@ -56,7 +56,7 @@
@@ -67,7 +67,7 @@
OmitFramePointers="TRUE"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
StringPooling="TRUE"
- RuntimeLibrary="4"
+ RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="3"
diff --git a/util/src/doku/win32/doku.vcproj b/util/src/doku/win32/doku.vcproj
index af768f0..c9f7dcd 100644
--- a/util/src/doku/win32/doku.vcproj
+++ b/util/src/doku/win32/doku.vcproj
@@ -54,7 +54,7 @@
diff --git a/util/src/iconchanger/iconchanger.c b/util/src/iconchanger/iconchanger.c
index bd36c9b..c92f01f 100644
--- a/util/src/iconchanger/iconchanger.c
+++ b/util/src/iconchanger/iconchanger.c
@@ -56,7 +56,7 @@ int main(int argc, char* argv[])
int i,j;
int ok=0;
- printf("eDIV IconChanger - Copyright (c) Sion Ltd. 2002\n\n");
+ printf("eDIV IconChanger - Copyright (c) Sion Ltd. 2002-2003\n\n");
if(argc!=3) {
printf("Modo de uso:\n\n %s \n\n",argv[0]);
exit(2);
diff --git a/util/src/iconchanger/win32/iconchanger.vcproj b/util/src/iconchanger/win32/iconchanger.vcproj
index 8acf9f1..1ba69e2 100644
--- a/util/src/iconchanger/win32/iconchanger.vcproj
+++ b/util/src/iconchanger/win32/iconchanger.vcproj
@@ -54,7 +54,7 @@