Shadow Warrior - "New Episode"
#181 Posted 01 June 2017 - 03:13 PM
luckily I can back into the room to hit the switch. I'm good as long as I don't get too much of a look out the window.
swcp0000.jpg (219.05K)
Number of downloads: 19
swcp0001.jpg (145.54K)
Number of downloads: 11
swcp0003.jpg (165.05K)
Number of downloads: 13
game2.zip (181.62K)
Number of downloads: 0
This post has been edited by Forge: 01 June 2017 - 03:15 PM
#182 Posted 01 June 2017 - 05:29 PM
TD needs the original sw.grp file in the base directory - or it won't even launch
With the sw.grp in the base directory WD will only load the first map - use the original art, sounds, etc instead of its own, then after completing the level it goes into level 6 Killing Fields of the original game.
Even with the original sw.grp removed from the base directory - the game still labels the maps as f they were part of the original episode. (e.g. it calls Military Base - Sumo Sky Palace, calls Train - Bath House, etc.)
This post has been edited by Forge: 01 June 2017 - 05:35 PM
#183 Posted 01 June 2017 - 05:32 PM
Forge, on 01 June 2017 - 05:29 PM, said:
TD needs the original sw.grp file in the base directory - or it won't even launch
With the sw.grp in the base directory WD will only load the first map - use the original art, sounds, etc instead of its own, then after completing the level it goes into level 6 Killing Fields of the original game
I never noticed that, which assets from TD still look like the base game assets?
#184 Posted 01 June 2017 - 07:07 PM
icecoldduke, on 01 June 2017 - 05:32 PM, said:
It sounds like you should downgrade the status of Twin Dragon and Wanton Destruction in future binaries until that issue is sorted out.
#185 Posted 01 June 2017 - 07:54 PM
icecoldduke, on 01 June 2017 - 05:32 PM, said:
somebody correct me if i'm wrong, but twin dragons is pretty much just a map-pak episode. There's some new art assets, like a few wall posters & such, a couple new sounds, but other than the one final boss, the enemies, sounds, etc are mostly the same as in the original base game. TD is just adding to what's already there.
This could be why the sw.grp and the td.grp have to be in the base directory at the same time.
I won't know until I get there if the final boss is the one that comes with TD, or if it gets over-written by the defacto original episode boss.
Whereas Wanton Destruction has new art, new enemies, new sounds, etc.
WD is using the same asset slots as the original game for it's own stuff & they interfere with each other. - if the sw.grp is in the base directory at the same time as the wt.grp - then the sw.grp assets over-ride the wt.grp assets.
This post has been edited by Forge: 01 June 2017 - 08:24 PM
#186 Posted 01 June 2017 - 08:38 PM
Forge, on 01 June 2017 - 07:54 PM, said:
This could be why the sw.grp and the td.grp have to be in the base directory at the same time.
I won't know until I get there if the final boss is the one that comes with TD, or if it gets over-written by the defacto original episode boss.
Whereas Wanton Destruction has new art, new enemies, new sounds, etc.
WD is using the same asset slots as the original game for it's own stuff & they interfere with each other. - if the sw.grp is in the base directory at the same time as the wt.grp - then the sw.grp assets over-ride the wt.grp assets.
Close.
You can't have td.grp and sw.grp in the same folder. You can have wt.grp and sw.grp in the same folder. At least this is the setup in my original Shadow Warrior game from GoG, and those work for me.
Redux version: has the group files for TD and DW in one separate folder.
This post has been edited by Hank: 01 June 2017 - 08:38 PM
#187 Posted 01 June 2017 - 09:04 PM
Hank, on 01 June 2017 - 08:38 PM, said:
You can't have td.grp and sw.grp in the same folder. You can have wt.grp and sw.grp in the same folder. At least this is the setup in my original Shadow Warrior game from GoG, and those work for me.
Redux version: has the group files for TD and DW in one separate folder.
Now try it with this eduke32 port ICD is working on.
I'm reporting on this, not how it works elsewhere.
I'm playing td right now - and the game won't even launch if you use twin dragons from the launch box drop-down menu and both td & sw grp files are not in the base directory.
This post has been edited by Forge: 01 June 2017 - 09:13 PM
#188 Posted 01 June 2017 - 09:10 PM
(but I can switch to polymer and go get the key - so at least I'm not completely stuck)
swcp0000.jpg (170.69K)
Number of downloads: 12
swcp0001.jpg (125.63K)
Number of downloads: 14
#189 Posted 01 June 2017 - 09:34 PM
Forge, on 01 June 2017 - 09:04 PM, said:
I'm reporting on this, not how it works elsewhere.
I'm playing td right now - and the game won't even launch if you use twin dragons from the launch box drop-down menu and both td & sw grp files are not in the base directory.
I will when it's ready. I'm left handed and need my custom key/mouse setup to test anything
Meanwhile, I simply stated how current Shadow Warrior games are organized. It might be an idea to program with it in mind.
#190 Posted 01 June 2017 - 09:50 PM
Hank, on 01 June 2017 - 09:34 PM, said:
Meanwhile, I simply stated how current Shadow Warrior games are organized. It might be an idea to program with it in mind.
you don't need to play it, only test to see if it launches..
i know. the hassles downloading a tiny zip, un-packing it into its own directory, and copying three grp files over. I can hear the creaking of metacarpal.
meanwhile, odd flickering & shaking behavior in this room (same map as the hole that causes polymost crashes)
http://www.mediafire...2-29-33-363.mp4
This post has been edited by Forge: 01 June 2017 - 10:35 PM
#191 Posted 02 June 2017 - 04:49 PM
The final boss was the correct one for the expansion.
One odd glitch - when the walls come down exposing the boss, it's accompanied by one red - evil ninja.
I killed the evil ninja and it ended the game like I had just killed the boss.
#192 Posted 02 June 2017 - 07:08 PM
#193 Posted 03 June 2017 - 08:01 PM
Turning Ninja Stars into the Duke3D expander weapon.
In this tutorial we will make it so enemies will grow very big and blow up when the ninja stars hit a enemy actor.
In Actor.cpp at the very end of the add the following code.
void InitActorGrow(int spritenum, int scalex, int scaley) { USERp u = User[spritenum]; if (u == nullptr) return; u->isGrowingTillDeath = true; u->growingTicTimer = 0; u->growScaleX = scalex; u->growScaleY = scaley; } bool DoGenericGrowCode(int spritenum) { USERp u = User[spritenum]; if (u == nullptr) return FALSE; if (!u->isGrowingTillDeath) return FALSE; SPRITEp sprite = u->SpriteP; if (u->growingTicTimer < 32) { sprite->xrepeat += ksgn(u->growScaleX); sprite->yrepeat += ksgn(u->growScaleX); u->growingTicTimer++; } else { // spawn explosion int explosion = SpawnSectorExp(spritenum); ASSERT(explosion >= 0); SPRITEp exp = &sprite[explosion]; USERp eu = User[explosion]; exp->xrepeat += (RANDOM_P2(32 << 8) >> 8) - 16; exp->yrepeat += (RANDOM_P2(32 << 8) >> 8) - 16; eu->xchange = MOVEx(92, exp->ang); eu->ychange = MOVEy(92, exp->ang); KillSprite(spritenum); return TRUE; } return FALSE; }
The above code is our expander logic. The above logic is based on the expander logic in duke3d.
In actor.h at the bottom of the header add the following code:
void InitActorGrow(int spritenum, int scalex, int scaley); bool DoGenericGrowCode(int spritenum);
In game.h find the USER struct and add the following just above the filler variable:
bool isGrowingTillDeath; int growingTicTimer; int growScaleX; int growScaleY;
In sprite.cpp just below #include "player.h" add the following:
#include "actor.h"
Also in sprite.cpp find the function SpriteControl just above the CloseToPlayer = FALSE; line(inside of the move bad guys around TRAVERSE_SPRITE_STAT) add the following code.
if (DoGenericGrowCode(sp - sprite)) continue;
Were executing our exploding logic here, there is probably a better place for it but we don't continue in the loop if DoGenericGrowCode has removed destroyed this actor.
Finally in weapon.cpp around line 6373(case STAR1/case CROSSBOLT) modify that condition from
case STAR1: case CROSSBOLT: damage = GetDamage(SpriteNum, Weapon, WPN_STAR); if (u->sop_parent) { break; } else if (u->PlayerP) { MONO_PRINT("Stat Hit Actor"); // Is the player blocking? if (u->PlayerP->WpnKungFuMove == 3) damage /= 3; PlayerDamageSlide(u->PlayerP, damage, wp->ang); if (PlayerTakeDamage(u->PlayerP, Weapon)) { PlayerUpdateHealth(u->PlayerP, damage); PlayerCheckDeath(u->PlayerP, Weapon); } if (u->PlayerP->Armor) PlaySound(DIGI_ARMORHIT,&u->PlayerP->posx,&u->PlayerP->posy,& u->PlayerP->posz,v3df_dontpan|v3df_follow|v3df_doppler); } else { MONO_PRINT("Star Hit Actor"); ActorHealth(SpriteNum, damage); ActorPain(SpriteNum); ActorStdMissile(SpriteNum, Weapon); ActorDamageSlide(SpriteNum, damage, wp->ang); ActorChooseDeath(SpriteNum, Weapon); } StarBlood(SpriteNum, Weapon); wu->ID = 0; SetSuicide(Weapon); break;
to
case STAR1: InitActorGrow(SpriteNum, 100, 100); StarBlood(SpriteNum, Weapon); wu->ID = 0; SetSuicide(Weapon); break; case CROSSBOLT: damage = GetDamage(SpriteNum, Weapon, WPN_STAR); if (u->sop_parent) { break; } else if (u->PlayerP) { MONO_PRINT("Stat Hit Actor"); // Is the player blocking? if (u->PlayerP->WpnKungFuMove == 3) damage /= 3; PlayerDamageSlide(u->PlayerP, damage, wp->ang); if (PlayerTakeDamage(u->PlayerP, Weapon)) { PlayerUpdateHealth(u->PlayerP, damage); PlayerCheckDeath(u->PlayerP, Weapon); } if (u->PlayerP->Armor) PlaySound(DIGI_ARMORHIT,&u->PlayerP->posx,&u->PlayerP->posy,& u->PlayerP->posz,v3df_dontpan|v3df_follow|v3df_doppler); } else { MONO_PRINT("Star Hit Actor"); ActorHealth(SpriteNum, damage); ActorPain(SpriteNum); ActorStdMissile(SpriteNum, Weapon); ActorDamageSlide(SpriteNum, damage, wp->ang); ActorChooseDeath(SpriteNum, Weapon); } StarBlood(SpriteNum, Weapon); wu->ID = 0; SetSuicide(Weapon); break;
This post has been edited by icecoldduke: 03 June 2017 - 08:07 PM
#194 Posted 03 June 2017 - 08:03 PM
This post has been edited by icecoldduke: 03 June 2017 - 08:03 PM
#196 Posted 04 June 2017 - 05:15 AM
Drek, on 02 June 2017 - 07:08 PM, said:
Nice job! Just got it in the depot and will be in for the next patch.
#197 Posted 04 June 2017 - 08:25 AM
Here is the CL if anyone has any input.
https://github.com/j...83a3b7490cd46ca
This post has been edited by icecoldduke: 04 June 2017 - 08:30 AM
#199 Posted 04 June 2017 - 08:44 AM
Hank, on 04 June 2017 - 08:43 AM, said:
"Floor Above Floor" its the sector above sector technique Shadow Warrior uses.
#201 Posted 04 June 2017 - 01:28 PM
icecoldduke, on 04 June 2017 - 10:50 AM, said:
In that first image (in the console), it says your missing several .png files. Is that normal?
This post has been edited by Master O: 04 June 2017 - 01:28 PM
#202 Posted 04 June 2017 - 01:48 PM
Master O, on 04 June 2017 - 01:28 PM, said:
Probably not . When I took the redux ui assets I didn't clean up the def file, while its not normal I doubt its causing any problems. I'll clean it up when I get a chance. Thanks for letting me know .
#204 Posted 04 June 2017 - 01:56 PM
TerminX, on 04 June 2017 - 01:50 PM, said:
There does exist that possibility . Until you brought it up I didn't know F12 did screenshots, I'll get that fixed.
#205 Posted 04 June 2017 - 01:58 PM
#206 Posted 04 June 2017 - 03:18 PM
icecoldduke, on 04 June 2017 - 08:44 AM, said:
How similar is FAF to TROR in Eduke? This is encouraging progress, I hope it can be translated to Eduke's PolymerNG TROR as well.
This post has been edited by Paul B: 04 June 2017 - 03:20 PM
#207 Posted 04 June 2017 - 03:20 PM
icecoldduke, on 04 June 2017 - 01:48 PM, said:
Also, in that first image, he's underwater, right?
#208 Posted 04 June 2017 - 03:32 PM
TerminX, on 04 June 2017 - 01:58 PM, said:
I actually missed osdcmds.cpp/osdfunc.cpp. I'm taking care of that now .
Paul B, on 04 June 2017 - 03:18 PM, said:
It's more similar to SOS in Duke3D or Blood. Basically you place a sprite in both sectors that have the same tag and in the same relative position. Then the game renders the opposite sector first then the sector the player is in. Its similar to how portal skies work, but its not TROR.
FAF was the original technique used in Shadow Warrior, to be clear all I did was fix bugs in Polymer that caused FAF not to render properly. Basically in Polymer, the sky code was causing problems with FAF and drawplane didn't early exit when the size of the tile of the plane had texture dimensions of 0x0. Also the Polymer renderer didn't handle gotpic at all which the game used to determine if a FAF sector was visible. Basically the game checks to see if a floor or ceiling in view has a picnum of FAF_MIRROR_PIC, and early exits if none is found. It determines that based on the gotpic array which wasn't being used at all in Polymer.
Master O, on 04 June 2017 - 03:20 PM, said:
No this is the third room in the example.map. The room I'm in is just a generic room with a room over it.
This post has been edited by icecoldduke: 04 June 2017 - 03:49 PM
#209 Posted 04 June 2017 - 05:29 PM
- god - toggles god mode
- give - gives all items and weapons.
- changelevel <level id> - changes level
- noclip - toggles noclip.
- screenshot - takes a screenshot
Does anyone have a issue using the console instead of the old cheat text input mechanism?
This post has been edited by icecoldduke: 04 June 2017 - 05:30 PM