Wolf3d Haven Forum

Please log in or register. Smile
Wolf3d Haven Forum

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


    creating endtext between levels

    Share

    Dark_wizzie
    I am Death Incarnate!
    I am Death Incarnate!

    Male
    Number of posts : 5090
    Age : 22
    Location : USA or Tawain
    Job : Student, Part time Cactuar fanatic
    Hobbie : Planting Cactuars.
    Message : I made this forum when I was 13 High on Drugs
    Registration date : 2007-03-24

    creating endtext between levels

    Post by Dark_wizzie on Sun Apr 29, 2007 1:55 pm

    dome




    Code Editing Tutorials
    Creating EndText between levels





    Creating internal art (EndText between levels):

    by Codetech



    *NOTE* This is the first and the only tutorial on the matter

    (at least the only one I've seen).





    Part 1: Making a Basic EndText between levels

    Part 2: Making a Tekkoudan like Endart



    ======================================

    !IMPORTANT!



    DO THIS STEP BEFORE YOU MAKE ANY OTHER CHANGES...

    ======================================



    The following line deals with external art files (HELPART and ENDARTX)



    Step 1:

    Open file version.h:



    Step 2:

    Change this...



    #define ARTSEXTERN



    ...into this:



    //#define ARTSEXTERN





    Now you can look into the tutorials...



    =======================================

    Part 1: Making a basic EndText between levels

    =======================================



    Intro:

    Welcome to the first part of the internal art tutorial.

    In this section we'll learn how to create EndTexts appearing

    after selected levels (or after each of them)! Let's go to the

    first step.



    Step 1:

    Fire up the compiler you prefer (Borland c++ 3.0 / 3.1), I bet

    you've heard enough lecture about the difference between them

    so I spare you from that, ok enough tlaking let's go to the

    source!



    Step 2:

    Open file WL_GAME.C, and do a text search for "ex_completed"

    (exclude the quotes).

    You should find this:



    switch (playstate)

    {

    case ex_completed:

    case ex_secretlevel:

    gamestate.keys = 0;

    DrawKeys ();

    VW_FadeOut ();



    ClearMemory ();



    LevelCompleted (); // do the intermission



    Step 3:

    Here's a piece of Haunted House source the, EndText doesn't

    appear after the 4th. level or the 21 st. (See how I reduce one

    from the actual level number, because wolfenstein's first

    level is level 0).

    It goes like this:





    switch (gamestate.mapon)

    {

    case 3: <--- No EndText here (level 4) or...

    break;



    case 20: <-- ... here (level 21)

    break;




    <--- Add other cases here, BUT REMEMBER -1 --->



    default: <-- But every other level gets the EndText after being completed

    VW_FadeOut ();

    ClearMemory ();

    StartCPMusic(CORNER_MUS);

    EndText ();

    ClearMemory ();

    DrawPlayScreen ();

    break;


    }



    Step 3 (Continued):

    If you want to make the EndText appear after warping, add another

    case above the ex_completed. We also have to go to WL_DEBUG.C,

    but let's check that later, shall we.

    Here's how you do it:



    switch (playstate)

    {

    case ex_warped: <--- Add this!

    case ex_completed:

    case ex_secretlevel:




    Step 4:

    WARNING!

    If you forget to create a EndartX (X = Map number, this time don't -1)

    the game will get jammed to a black screen! Now let's compile the file

    and link it to the exe. Save if everything went Ok!



    Step 5:

    Let's open file WL_INTER.C. Do a text search for "PM_Preload (PreloadUpdate)"

    (No quotes!).

    This is what you should find:



    PM_Preload (PreloadUpdate);

    IN_UserInput (70);

    VW_FadeOut ();



    DrawPlayBorder ();

    VW_UpdateScreen ();




    Step 6:

    Now we must edit it to this:



    PM_Preload (PreloadUpdate);

    IN_UserInput (70);

    VW_FadeOut ();



    DrawPlayBorder ();

    VW_UpdateScreen ();



    DrawPlayScreen ();
    <--- Add this!



    Step 7:

    Now compile the file and link it to the exe. Save if everything

    went Ok!



    Step 8:

    If you added the extra case in the Step 3, check this, others SKIP TO NEXT ONE.

    Do a text search for: "W = warp"

    Edit the warp cheat to this:



    else if (Keyboard[sc_W]) // W = warp to level

    {

    CenterWindow(26,3);

    PrintY+=6;



    US_Print(" Warp to which level (1-60): ");



    VW_UpdateScreen();

    esc = !US_LineInput (px,py,str,NULL,true,2,0);

    if (!esc)

    {

    level = atoi (str);



    if (level>0 && level<61)



    {

    // -2 Since I added

    // ex_warped case to

    // wl_game.c

    gamestate.mapon = level-2;

    playstate = ex_warped;

    }

    }

    return 1;

    }



    ...Repeat Step 7





    Step 9:

    Now compile all the files and link them to the exe. Save if everything

    went Ok!



    Step 10:

    Open file WL_TEXT.C, and change wherever it says gamestate.episode

    to gamestate.mapon.

    Repeat Step 7



    Step 11:

    Voíla! We're all set for the test! (REMEMBER TO CREATE AN

    ENDARTX. X=MAP NUMBER DON'T -1) :)



    ==================================

    Part 2: Making a Tekkoudan like Endart

    ==================================



    I know how to do this, but the tutorial isn't finished...

    ...Coming soon (I hope)!



    ==================================

    By: Codetech Software 2002

    ==================================





    Wolf3d Haven
    Minute Logic Blog

      Current date/time is Thu Dec 08, 2016 10:06 am