X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=babel%2Fglulx.c;fp=babel%2Fglulx.c;h=ea1b3c43f7f9c26fd0192a558000a6e05f0dcfec;hb=6fd0347f330cb24ef6145662023053a1c0f81a64;hp=0000000000000000000000000000000000000000;hpb=7d14a66ee234db0898de6fabb8f850ebc4bb733a;p=projects%2Fchimara%2Fchimara.git diff --git a/babel/glulx.c b/babel/glulx.c new file mode 100644 index 0000000..ea1b3c4 --- /dev/null +++ b/babel/glulx.c @@ -0,0 +1,81 @@ +/* glulx.c Treaty of Babel module for Glulx files + * 2006 By L. Ross Raszewski + * + * This file depends on treaty_builder.h + * + * This file is public domain, but note that any changes to this file + * may render it noncompliant with the Treaty of Babel + */ + +#define FORMAT glulx +#define HOME_PAGE "http://eblong.com/zarf/glulx" +#define FORMAT_EXT ".ulx" +#define NO_METADATA +#define NO_COVER + +#include "treaty_builder.h" +#include +#include + +static int32 read_int(unsigned char *mem) +{ + int32 i4 = mem[0], + i3 = mem[1], + i2 = mem[2], + i1 = mem[3]; + return i1 | (i2<<8) | (i3<<16) | (i4<<24); +} + + + +static int32 get_story_file_IFID(void *story_file, int32 extent, char *output, int32 output_extent) +{ + int32 i,j, k; + char ser[7]; + char buffer[32]; + + + if (extent<256) return INVALID_STORY_FILE_RV; + for(i=0;i