Wolf3d Haven Forum

Please log in or register. Smile

Join the forum, it's quick and easy

Wolf3d Haven Forum

Please log in or register. Smile

Wolf3d Haven Forum

Would you like to react to this message? Create an account in a few clicks or log in to continue.
Wolf3d Haven Forum

A friendly Wolfenstein 3D community, about Wolfenstein 3D, the game that gave birth to first person shooters...


5 posters

    [code] movable objects...

    avatar
    WLHack
    Senior Member
    Senior Member


    Male
    Number of posts : 800
    Age : 35
    Location : Finland
    Registration date : 2007-03-26

    objects - [code] movable objects... Empty [code] movable objects...

    Post by WLHack Mon Apr 09, 2007 2:58 am

    Finally, here is the tutorial for it...
    This might be a bit memorywasting, but it works...

    Okay, lets start... First open WL_Agent.C and go to the
    Cmd_Use function...

    Now under "boolean elevatorok" add this line:
    Code:

    statobj_t      *statptr;

    Then scroll few lines down and you should see
    this:
    Code:

     doornum = tilemap[checkx][checky];
     if (*(mapsegs[1]+farmapylookup[checky]+checkx) == PUSHABLETILE)
     {
     //
     // pushable wall
     //
      PushWall (checkx,checky,dir);
      return;
     }

    Now just under it add this block:
    Code:

     for(statptr = &statobjlist[0]; statptr != laststatobj; statptr++)
     {
        if(statptr->tilex == checkx && statptr->tiley == checky &&
          statptr->shapenum == SPR_STAT_1 && !buttonheld[bt_use])
        {
          buttonheld[bt_use] = true;
           
                  //Check direction of movement (corrected directions)
                  switch(dir)
                  {
      case di_north:
       
        if((unsigned)actorat[checkx][checky-1] == 1) // Check if new tile is free
        return;
                       
        check = actorat[checkx][checky-1];          // Check for walls
        if (check && check<objlist)
                              return;
        statptr->tiley = checky-1;                //Move object north
        statptr->visspot = &spotvis[checkx][checky-1];
        (unsigned)actorat[checkx][checky] = 0;    //Make old tile unblocking...
        (unsigned)actorat[checkx][checky-1] = 1;  //...And new one blocking
      break;
      case di_east:
        if((unsigned)actorat[checkx+1][checky] == 1)
        return;
        check = actorat[checkx+1][checky];       
        if (check && check<objlist)
                              return;
        statptr->tilex = checkx+1;                //Move object east
        statptr->visspot = &spotvis[checkx+1][checky];
        (unsigned)actorat[checkx][checky] = 0;   
        (unsigned)actorat[checkx+1][checky] = 1; 
      break;
      case di_south:
        if((unsigned)actorat[checkx][checky+1] == 1)
        return;
        check = actorat[checkx][checky+1];         
        if (check && check<objlist)
                              return;
        statptr->tiley = checky+1;                //Move object south
        statptr->visspot = &spotvis[checkx][checky+1];
        (unsigned)actorat[checkx][checky] = 0; 
        (unsigned)actorat[checkx][checky+1] = 1;
      break;
      case di_west:
        if((unsigned)actorat[checkx-1][checky] == 1)
        return;
        check = actorat[checkx-1][checky];         
        if (check && check<objlist)
                              return;
        statptr->tilex = checkx-1;                //Move object west
        statptr->visspot = &spotvis[checkx-1][checky];
        (unsigned)actorat[checkx][checky] = 0;   
        (unsigned)actorat[checkx-1][checky] = 1; 
      break;
      case nodir:
        return;
          }
    // This is optional:
     
    //    gamestate.secretcount++;
    //        SD_PlaySound (PUSHWALLSND);
        }
     }

    And now you have a movable object...
    Oh, change the SPR_STAT_1 to match the objects sprite
    define, that you want to move...

    And to avoid strange reactions, please select SPR_STAT
    that is defined as blocking in WL_Act1.C
    Dark_wizzie
    Dark_wizzie
    I am Death Incarnate!
    I am Death Incarnate!


    Female
    Number of posts : 5120
    Age : 30
    Location : California, USA
    Job : Investor
    Hobbie : Computers, chess, computer chess, fashion, and philosophy
    Message : I made this forum when I was 13 High on Drugs
    Registration date : 2007-03-24

    objects - [code] movable objects... Empty Re: [code] movable objects...

    Post by Dark_wizzie Mon Apr 09, 2007 9:55 am

    :shock:





    EDIT:
    MY GOD!!!!!!!!!!!!!!!!!!!!!!



    Wolf3d Haven
    Minute Logic Blog
    drchainsaw
    drchainsaw
    Bring em' On!
    Bring em' On!


    Male
    Number of posts : 192
    Location : UK
    Hobbie : Wolf3D
    Registration date : 2007-04-01

    objects - [code] movable objects... Empty Re: [code] movable objects...

    Post by drchainsaw Tue Apr 10, 2007 1:38 pm

    I just tried this and it works perfect. I might use this in my next mod :D

    Good work WLHack!
    Airslide
    Airslide
    Bring em' On!
    Bring em' On!


    Male
    Number of posts : 115
    Age : 30
    Location : Central Valley [Formerly Bay Area] (California USA)
    Job : Student
    Hobbie : Indie Game Development
    Registration date : 2007-05-17

    objects - [code] movable objects... Empty Re: [code] movable objects...

    Post by Airslide Fri May 25, 2007 7:09 pm

    I haven't tried it yet, though it looks good and I may use it in my current mod. Could be useful for moving obstacles to block flamewalls in my game Smile



    objects - [code] movable objects... Marchtowarsigez7
    Dark_wizzie
    Dark_wizzie
    I am Death Incarnate!
    I am Death Incarnate!


    Female
    Number of posts : 5120
    Age : 30
    Location : California, USA
    Job : Investor
    Hobbie : Computers, chess, computer chess, fashion, and philosophy
    Message : I made this forum when I was 13 High on Drugs
    Registration date : 2007-03-24

    objects - [code] movable objects... Empty Re: [code] movable objects...

    Post by Dark_wizzie Fri May 25, 2007 7:12 pm

    and i suggested it >< =)



    Wolf3d Haven
    Minute Logic Blog
    jayngo26
    jayngo26
    Spear of Destiny
    Spear of Destiny


    Male
    Number of posts : 643
    Age : 143
    Location : Random
    Job : Partime Evil Semi-Genius Plotting To Take Over Half The World. Partime Undead Charged With Keeping the Darkness Dark
    Hobbie : Staying Out Of Sunlight
    Message : Wolfenstein:Umbrella Beginnings Episode 2 released! Download now!

    Registration date : 2008-08-09

    objects - [code] movable objects... Empty Re: [code] movable objects...

    Post by jayngo26 Thu Jun 25, 2009 8:46 am

    Great code, but it appears this only works for 1 movable object. How would you code it to have multiple moving objects in your mod?



    http://jayngoware.com/
    Dark_wizzie
    Dark_wizzie
    I am Death Incarnate!
    I am Death Incarnate!


    Female
    Number of posts : 5120
    Age : 30
    Location : California, USA
    Job : Investor
    Hobbie : Computers, chess, computer chess, fashion, and philosophy
    Message : I made this forum when I was 13 High on Drugs
    Registration date : 2007-03-24

    objects - [code] movable objects... Empty Re: [code] movable objects...

    Post by Dark_wizzie Sat Oct 24, 2009 10:04 am

    Have 1 object be movable and others be nonmovable...Makes a perfect disguise. Just make both objects look the same to create a secret, secret area.



    Wolf3d Haven
    Minute Logic Blog

    Sponsored content


    objects - [code] movable objects... Empty Re: [code] movable objects...

    Post by Sponsored content


      Current date/time is Thu Apr 18, 2024 8:17 pm