raymoohawk Posted June 25, 2015 hey gusy so ive been told before that freedoom can add missing rotations to sprites, for example the freedoom techpillar is 8 directional, but the vanilla one only has 1 angle. but ive also been told that adding sprites that arent in the original affects mod compatability. the baron replacement im working on has an assymetrycal design, meaning that it needs to be 8 directional. would this affect mods like BTSX or brutal doom? would the monsters switch back a forth from vanilla to freedoom on some angles? something like this maybe? i need to know this so that i can adjust the design while im still in the early stages of the spriting, so can someone, preferably one of the maintainers give a definitive answer? thanks 0 Quote Share this post Link to post
Linguica Posted June 25, 2015 I'm pretty sure the below is wrong on further reflection. Vanilla Doom will bomb out if you try and make it install the same sprite frame twice. I can't check it ATM, but it looks like it ought to be fine. R_InitSpriteDefs goes through all the 4-letter sprite suffixes and does this for each (yes I am aware this whole post is overkill):for (l=start+1 ; l<end ; l++) { if (*(int *)lumpinfo[l].name == intname) { frame = lumpinfo[l].name[4] - 'A'; rotation = lumpinfo[l].name[5] - '0'; if (modifiedgame) patched = W_GetNumForName (lumpinfo[l].name); else patched = l; R_InstallSpriteLump (patched, frame, rotation, false); if (lumpinfo[l].name[6]) { frame = lumpinfo[l].name[6] - 'A'; rotation = lumpinfo[l].name[7] - '0'; R_InstallSpriteLump (l, frame, rotation, true); } } } When it is processing TROO*, it will first hit the IWAD's TROOA1. It will look up that name using W_GetNumForName, which scans backwards, so it will install the PWAD sprite frame instead, like you want. Next it will hit TROOA2 in the IWAD lump and look for it using W_GetNumForName. Because the PWAD lump is TROOA2C8 or whatever, which is not the same name, it will find the IWAD lump instead and install it. It does this through TROOA8, with everything but TROOA1 and TROOA5 being the IWAD frames. But then eventually the engine gets down to the PWAD's TROOA1 in the list of lumps, where it reinstalls the PWAD frame, and then hits TROOA2C8, where it installs it as TROOA2, and then installs the mirrored version as TROOC8, etc, overwriting the IWAD ones. So I think it ought to work alright. (As an aside, recasting the lump names as an integer in order to only grab the first 4 bytes/letters is really evil.) 0 Quote Share this post Link to post
raymoohawk Posted June 25, 2015 thanks for the detailed post linguica :) 0 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.