aboutsummaryrefslogtreecommitdiff
path: root/extensions/smanim.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/smanim.cpp')
-rw-r--r--extensions/smanim.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/extensions/smanim.cpp b/extensions/smanim.cpp
index 5d8cac5..6d09032 100644
--- a/extensions/smanim.cpp
+++ b/extensions/smanim.cpp
@@ -12,9 +12,10 @@
#include <cstdio>
#include <cstring>
#define METAWARN(s) printf("metafile warning at line %d: %s\n",lc,s)
-void smAnmFile::parseMeta(char* meta,DWORD size)
+SMELT* smAnmFile::sm=NULL;
+void smAnmFile::parseMeta(const char* meta,DWORD size)
{
- char* cp=meta;
+ const char* cp=meta;
bool inAnim=false;
int lc=0;
smAnmInfo cur;
@@ -23,7 +24,7 @@ void smAnmFile::parseMeta(char* meta,DWORD size)
int cc=0;
for(;*(cp+cc)!='\n';++cc);
char line[65];
- strncpy(cp,line,cc);line[cc-1]='\0';
+ strncpy(line,cp,cc);line[cc-1]='\0';
cp+=cc+1;++lc;
if(inAnim&&line[0]!='F'&&line[0]!='E'){METAWARN("Only instruction F is allowed between A and E.");continue;}
if(line[0]=='E')
@@ -76,7 +77,7 @@ void smAnmFile::parseMeta(char* meta,DWORD size)
int cn=0;while(line[cn+2]!=',')++cn;
t.name=new char[cn];strncpy(t.name,line+2,cn);
t.name[cn-1]='\0';
- int cn2=0;while(line[cn+3+cn2]!=',')++cn2;
+ int cn2=0;while(line[cn+3+cn2]!=',')++cn2;++cn2;
t.path=new char[cn2];strncpy(t.path,line+3+cn,cn2);
t.path[cn2-1]='\0';
sscanf(line+4+cn+cn2,"%f,%f,%f,%f",&t.rect.x,&t.rect.y,&t.rect.w,&t.rect.h);
@@ -101,7 +102,7 @@ void smAnmFile::parseMeta(char* meta,DWORD size)
}
}
}
-bool smAnmFile::loadAnmFromMemory(char* ptr,DWORD size)
+bool smAnmFile::loadAnmFromMemory(const char* ptr,DWORD size)
{
sm=smGetInterface(SMELT_APILEVEL);
anm.openDtpFromMemory(ptr,size);