DieHard Wolfers Forum Index DieHard Wolfers
A Wolfenstein 3d Fan Community


  Hosted by: MCS & Areyep.com - Designed by: BrotherTank

Original Yahoo Forum - Die Hard Archives

AReyeP HomepageAreyep Homepage DieHard Wolfenstein BunkerDieHard Wolfenstein Bunker Log inLog in RegisterRegister Banlist FAQFAQ Search ForumsSearch

  Username:    Password:      Remember me       

A special Death Cam
Page 1 of 1
DieHard Wolfers Forum Index -> Code Tutorials View Previous TopicRefresh this PageAdd Topic to your Browser FavoritesSearch ForumsPrint this TopicE-mail TopicGoto Page BottomView Next Topic
Post new topicReply to topic
Author Message
Loki
I am Death Incarnate
I am Death Incarnate


Joined: 07 Dec 2003
Last Visit: 12 Apr 2014

Topics: 3
Posts: 170
Location: Paris
france.gif

PostPosted: Sat May 01, 2004 7:02 pm
   Subject: A special Death Cam
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Next PostGoto Bottom of Posts

Just a little idea. Mr Green Embarassed

It's not possible (yes, i know Ripper, everything is possible) created a Death Cam without the endgame trigger function ? You kill the boss - death cam - the game continue.

I'm bad with the source but i think that it's not very difficult no ? Think
Haasboy
DieHard Officer
DieHard Officer


Joined: 23 Jul 2003
Last Visit: 20 Aug 2019

Topics: 58
Posts: 581
Location: South Africa, Johannesburg
southafrica.gif

PostPosted: Sat May 01, 2004 11:59 pm
   Subject: Re: A special Death Cam
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

Loki wrote:
created a Death Cam without the endgame trigger function ? You kill the boss - death cam - the game continue.


First go to your WL_ACT2 file and search for "A_StartDeathCam"

Then scroll down until you see these lines:
::: CODE :::
if (gamestate.victoryflag)
   {
      playstate = ex_victorious;            // exit castle tile
      return;
   }

   gamestate.victoryflag = true;

Remove those lines, but I'm not sure it will work, but it looks like it will according to what I've seen in the rest of that routine.


Tell me if it works.

_________________
Haasboy Engine - Currently under construction (To be used with future mods - F.A.D.E.D. - Mansion X - Rising Evil Series)
Loki
I am Death Incarnate
I am Death Incarnate


Joined: 07 Dec 2003
Last Visit: 12 Apr 2014

Topics: 3
Posts: 170
Location: Paris
france.gif

PostPosted: Sun May 02, 2004 11:21 am
   Subject: Re: A special Death Cam
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

Thanks for your answer Hassboy. Wink

Well, you have created the Repetitive Death Cam ! Razz

When i kill a boss, the Death Cam start again and again and again... Funny no ? Laughing
Haasboy
DieHard Officer
DieHard Officer


Joined: 23 Jul 2003
Last Visit: 20 Aug 2019

Topics: 58
Posts: 581
Location: South Africa, Johannesburg
southafrica.gif

PostPosted: Sun May 02, 2004 1:36 pm
   Subject: Re: A special Death Cam
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

Loki wrote:
Thanks for your answer Hassboy. Wink

Well, you have created the Repetitive Death Cam ! Razz

When i kill a boss, the Death Cam start again and again and again... Funny no ? Laughing

Ha Ha Ha, so Ha Ha Ha Sorry, that actually sounds funny, I thought that would work, but yet it has help a little bit. At the moment you've got it so that the game doesn't end. If you look further down you'll see this code:
::: CODE :::
//
// go back to the game
//
   temp = bufferofs;
   for (i=0;i<3;i++)
   {
      bufferofs = screenloc[i];
      DrawPlayBorder ();
   }
   bufferofs = temp;

   fizzlein = true;
   switch (ob->obclass)
   {


I think you'll might have to play around with that but I'm not sure.

_________________
Haasboy Engine - Currently under construction (To be used with future mods - F.A.D.E.D. - Mansion X - Rising Evil Series)
Raistlin
DieHard Guard
DieHard Guard


Joined: 22 Apr 2003
Last Visit: 18 Oct 2006

Topics: 24
Posts: 246

blank.gif

PostPosted: Sun May 02, 2004 4:56 pm
   Subject: Re: A special Death Cam
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

Hey, This looks quite interesting......

U could do things like have death scenes like the ones in Max Payne,
or even have short, simple, cinematics.....

_________________
As I watched him on T.v, somehow it really bothered me...
Chris
DieHard Wolfer
DieHard Wolfer


Joined: 11 Mar 2003
Last Visit: 22 Aug 2019

Topics: 56
Posts: 2236
Location: Canada
blank.gif

PostPosted: Sun May 02, 2004 7:56 pm
   Subject: Re: A special Death Cam
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

Heh, yup. Everytime the boss dies, it finishes off by running A_StartDeathCam. You can try doing something like this in WL_ACT2.C, so it doesn't run infinately for each boss:

::: CODE :::
//
// fat
//
extern   statetype s_fatstand;

extern   statetype s_fatchase1;
extern   statetype s_fatchase1s;
extern   statetype s_fatchase2;
extern   statetype s_fatchase3;
extern   statetype s_fatchase3s;
extern   statetype s_fatchase4;

extern   statetype s_fatdie1;
extern   statetype s_fatdie2;
extern   statetype s_fatdie3;
extern   statetype s_fatdie4;
extern   statetype s_fatdie5;
extern   statetype s_fatdie6;
extern   statetype s_fatdie7;

extern   statetype s_fatshoot1;
extern   statetype s_fatshoot2;
extern   statetype s_fatshoot3;
extern   statetype s_fatshoot4;
extern   statetype s_fatshoot5;
extern   statetype s_fatshoot6;

extern   statetype s_needle1;
extern   statetype s_needle2;
extern   statetype s_needle3;
extern   statetype s_needle4;

extern   statetype s_fatdeathcam;


statetype s_fatstand   = {false,SPR_FAT_W1,0,T_Stand,NULL,&s_fatstand};

statetype s_fatchase1    = {false,SPR_FAT_W1,10,T_Fat,NULL,&s_fatchase1s};
statetype s_fatchase1s   = {false,SPR_FAT_W1,3,NULL,NULL,&s_fatchase2};
statetype s_fatchase2    = {false,SPR_FAT_W2,8,T_Fat,NULL,&s_fatchase3};
statetype s_fatchase3    = {false,SPR_FAT_W3,10,T_Fat,NULL,&s_fatchase3s};
statetype s_fatchase3s   = {false,SPR_FAT_W3,3,NULL,NULL,&s_fatchase4};
statetype s_fatchase4    = {false,SPR_FAT_W4,8,T_Fat,NULL,&s_fatchase1};

statetype s_fatdeathcam   = {false,SPR_FAT_W1,1,NULL,NULL,&s_fatdie1};

statetype s_fatdie1   = {false,SPR_FAT_W1,1,NULL,A_DeathScream,&s_fatdie2};
statetype s_fatdie2   = {false,SPR_FAT_W1,10,NULL,NULL,&s_fatdie3};
statetype s_fatdie3   = {false,SPR_FAT_DIE1,10,NULL,NULL,&s_fatdie4};
statetype s_fatdie4   = {false,SPR_FAT_DIE2,10,NULL,NULL,&s_fatdie5};
statetype s_fatdie5   = {false,SPR_FAT_DIE3,10,NULL,NULL,&s_fatdie6};
statetype s_fatdie6   = {false,SPR_FAT_DEAD,20,NULL,A_StartDeathCam,&s_fatdie7}; //DON'T FORGET THIS, heh
statetype s_fatdie7   = {false,SPR_FAT_DEAD,20,NULL,NULL,&s_fatdie7};

statetype s_fatshoot1    = {false,SPR_FAT_SHOOT1,30,NULL,NULL,&s_fatshoot2};

Looking at A_StartDeathCam() itself, you'll see that it changes alot of things for the second time it's being run. If we're going to keep those changes, we could use varables like 'gamestate.victoryflag == true' and player->state == &s_deathscream' to bypass some of the code (like finishing the game and losing your ability to walk) during the second time... but we're not keeping them, so we can detect if the Death Cam has been run already by adding a new variable like this to WL_DEF.H:

::: CODE :::
   boolean      victoryflag;      // set during victory animations
   boolean      deathcount;
} gametype;

Since I only changed the "Fatface" boss, here's a way to adjust A_StartDeathCam of WL_ACT2.C so that fatface will let you continue playing after the Death Cam has been run:

::: CODE :::
void   A_StartDeathCam (objtype *ob)
{
   long   dx,dy;
   float   fangle;
   long    xmove,ymove;
   long   dist;
   int      temp,i;

   if (ob->obclass == fatobj && gamestate.deathcount)
   {
      gamestate.deathcount = false;
      return;
   }
   gamestate.deathcount = true;

   FinishPaletteShifts ();

   VW_WaitVBL (100);

   if (gamestate.victoryflag)
   {
      playstate = ex_victorious;            // exit castle tile
      return;
   }

   if (ob->obclass != fatobj)
      gamestate.victoryflag = true;
   else
      gamestate.deathcount = true;


   VW_Bar (0,0,320,200-STATUSLINES,127);
   FizzleFade(bufferofs,displayofs,320,200-STATUSLINES,70,false);

   PM_UnlockMainMem ();
   CA_UpLevel ();
   CacheLump(LEVELEND_LUMP_START,LEVELEND_LUMP_END);
   #ifdef JAPAN
   #ifndef JAPDEMO
   CA_CacheScreen(C_LETSSEEPIC);
   #endif
   #else
   Write(0,7,STR_SEEAGAIN);
   #endif
   CA_DownLevel ();
   PM_CheckMainMem ();

   VW_UpdateScreen ();

   IN_UserInput(300);

//
// line angle up exactly
//
   if (ob->obclass != fatobj)
      NewState (player,&s_deathcam);

   player->x = gamestate.killx;
   player->y = gamestate.killy;

Now you can kill 100 Fatfaces and your game will never end (and you'll still see his Death Cam every time)! If you want to do the same with any other boss, just use the same logic. I've tested it out with 6 fatfaces in the same level and it works fine. Smile
Loki
I am Death Incarnate
I am Death Incarnate


Joined: 07 Dec 2003
Last Visit: 12 Apr 2014

Topics: 3
Posts: 170
Location: Paris
france.gif

PostPosted: Mon May 03, 2004 7:46 pm
   Subject: Re: A special Death Cam
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

Wow ! Shocked Thank you very much Chris ! Razz

Infortunately, (but with me it's normal Neutral ) when i kill the boss, the Death Cam is only desactivided. Sad I can't found the problem. I've no link error or anything. Strange. Very Strange. Think

But well, if this tutorial work for others it's cool. Razz
Chris
DieHard Wolfer
DieHard Wolfer


Joined: 11 Mar 2003
Last Visit: 22 Aug 2019

Topics: 56
Posts: 2236
Location: Canada
blank.gif

PostPosted: Tue May 04, 2004 10:51 pm
   Subject: Re: A special Death Cam
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Bottom of Posts

Hey Loki, I noticed in your WL_ACT2.C file, that this line has been changed:

statetype s_giftdie6 = {false,SPR_GIFT_DEAD,20,NULL,A_StartDeathCam,&s_giftdie6}; // original
statetype s_giftdie6 = {false,SPR_GIFT_DEAD,20,NULL,NULL,&s_giftdie6}; // yours

That might be why this particular boss is deactivated. Wink

If you want to change all four of the bosses to skip the EndGame - just add a s_giftdie7, s_schabbdie7 and s_hitlerdie11 the same way that you added s_fatdie7; than change A_StartDeathCam so that the victoryflag / &deathcam stuff is universally blanked out. Feel free to use my example if you like:

http://www.canadianphilatelics.com/choksta/WL_ACT2.zip

You know, one time I was able to get BJ to reappear inside the wall after killing the Boss (by running around the corner and closing the door on him before he actually dies), but I haven't been able to re-create this funny bug again yet. Anyone else ever have that happen? I think you have to squash the boss into a very tiny room for it to work. Funny stuff! Mr Green
Display posts from previous:   
Post new topicReply to topic Time synchronized with the forum server time
DieHard Wolfers Forum Index -> Code Tutorials View Previous TopicRefresh this PageAdd Topic to your Browser FavoritesSearch ForumsPrint this TopicE-mail TopicGoto Page TopView Next Topic
Page 1 of 1
Jump to:  

Related topics
 Topics   Replies   Views   Last Post 
No new posts [Code] Shading Tutorial & Fixes - Ripper
Author: BrotherTank
80 19789 Wed Apr 29, 2015 5:06 pm
Chris View latest post
No new posts [Code] Different Door Sides - Ripper
Author: Ripper
1 2576 Tue Apr 19, 2011 7:00 pm
gerolf View latest post
No new posts [Code] Outside Atmosphere - Stars/Rain/Snow -Ripper
Author: BrotherTank
29 12913 Fri Feb 29, 2008 2:06 pm
thellt View latest post
No new posts [Code] Calculate Best Possible Scores for Each Level ?
Author: Chris
7 2405 Mon Dec 01, 2003 5:58 am
Majik Monkee View latest post
No new posts [Info] VL_FadeOut - Function Explanation
Author: TheTalentedMrLeo
1 1721 Sat May 03, 2003 2:36 pm
Codetech84 View latest post
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
   You cannot delete your posts in this forum
You cannot vote in polls in this forum


Copyright ©2003-2008 DieHard Wolfers
A Modified subBunker Theme by BrotherTank
Powered by phpBB © 2001, 2005 phpBB Group