diff --git a/README.md b/README.md index 17f01eb9..cc19851a 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,46 @@ Feel free to try this code but you mileage may vary. Have a look at the yquake2 repository for the "normal" Yamagi Quake II: https://github.com/yquake2/yquake2 +State: + * GL1: + * base1: correct wall light, broken model light + * base2: correct wall light, broken model light, broken lift + * q64/outpost: no known issies + * mguhub: loaded, transparent walls + * GL3/GLES3: + * base1: broken wall light, broken model light + * base2: broken wall light, broken model light, broken lift + * q64/outpost: no known issies + * mguhub: can't be loaded + * SOFT: + * base1: broken wall light, broken model light + * base2: broken wall light, broken model light, broken lift + * q64/outpost: no known issies + * mguhub: can't be loaded + * VK: + * base1: correct wall light, broken model light + * base2: correct wall light, broken model light, broken lift + * q64/outpost: no known issies + * mguhub: loaded, transparent walls + +Goals (none of it finished): + * Single player support + * BSPX DECOUPLEDLM light map support (base1) + * IBSQ map format support (mguhub) + * MD5 model support + * modified ReRelease game code support with removed KEX only related code + * RoQ and Theora cinematic videos support. + +Bonus goals: + * MDL/Quake1 model format support + * FM/Heretic 2 model format support + * Daikatana model/wal/map format support + * Cinematic videos support in smk, mpeg format. + +Not a goal: + * multiplayer protocol support with KEX engine + * support KEX engine features (inventary, compass and so on) + * KEX game library support # Yamagi Quake II @@ -33,6 +73,6 @@ version can be found here: [doc/010_index.md](doc/010_index.md) ## Releases The official releases (including Windows binaries) can be found at our -homepage: https://www.yamagi.org/quake2 +homepage: https://www.yamagi.org/quake2 **Unsupported** preview builds for Windows can be found at https://deponie.yamagi.org/quake2/misc/ diff --git a/src/client/refresh/gl1/gl1_model.c b/src/client/refresh/gl1/gl1_model.c index 7b8cdc17..afc6294f 100644 --- a/src/client/refresh/gl1/gl1_model.c +++ b/src/client/refresh/gl1/gl1_model.c @@ -192,7 +192,7 @@ Mod_ForName (char *name, model_t *parent_model, qboolean crash) strcpy(mod->name, name); /* load the file */ - modfilelen = ri.FS_LoadFile(mod->name, (void **)&buf); + modfilelen = Mod_LoadFile (mod->name, &buf); if (!buf) { @@ -209,7 +209,13 @@ Mod_ForName (char *name, model_t *parent_model, qboolean crash) /* call the apropriate loader */ switch (LittleLong(*(unsigned *)buf)) { + case DKMHEADER: + /* fall through */ + case RAVENFMHEADER: + /* fall through */ case IDALIASHEADER: + /* fall through */ + case IDMDLHEADER: { mod->extradata = Mod_LoadAliasModel(mod->name, buf, modfilelen, mod->mins, mod->maxs, diff --git a/src/client/refresh/gl3/gl3_model.c b/src/client/refresh/gl3/gl3_model.c index 17683a85..a1993a8b 100644 --- a/src/client/refresh/gl3/gl3_model.c +++ b/src/client/refresh/gl3/gl3_model.c @@ -675,7 +675,7 @@ Mod_ForName (char *name, gl3model_t *parent_model, qboolean crash) strcpy(mod->name, name); /* load the file */ - modfilelen = ri.FS_LoadFile(mod->name, (void **)&buf); + modfilelen = Mod_LoadFile (mod->name, &buf); if (!buf) { @@ -692,7 +692,13 @@ Mod_ForName (char *name, gl3model_t *parent_model, qboolean crash) /* call the apropriate loader */ switch (LittleLong(*(unsigned *)buf)) { + case DKMHEADER: + /* fall through */ + case RAVENFMHEADER: + /* fall through */ case IDALIASHEADER: + /* fall through */ + case IDMDLHEADER: { mod->extradata = Mod_LoadAliasModel(mod->name, buf, modfilelen, mod->mins, mod->maxs, diff --git a/src/client/refresh/soft/sw_model.c b/src/client/refresh/soft/sw_model.c index 44498dc0..66eb838e 100644 --- a/src/client/refresh/soft/sw_model.c +++ b/src/client/refresh/soft/sw_model.c @@ -175,7 +175,7 @@ Mod_ForName (char *name, model_t *parent_model, qboolean crash) // // load the file // - modfilelen = ri.FS_LoadFile (mod->name, (void **)&buf); + modfilelen = Mod_LoadFile (mod->name, &buf); if (!buf) { if (crash) @@ -196,7 +196,13 @@ Mod_ForName (char *name, model_t *parent_model, qboolean crash) switch (LittleLong(*(unsigned *)buf)) { + case DKMHEADER: + /* fall through */ + case RAVENFMHEADER: + /* fall through */ case IDALIASHEADER: + /* fall through */ + case IDMDLHEADER: { mod->extradata = Mod_LoadAliasModel(mod->name, buf, modfilelen, mod->mins, mod->maxs,