News: SMF - Just Installed!
 
Welcome, Guest. Please login or register.
+  AnthraxBio
|-+  Quake 3
| |-+  Coding Tutorials
| | |-+  Menu Manipulation
« previous next »
Pages: [1] Print
Author Topic: Menu Manipulation  (Read 302 times)
SkreamerVirii
Administrator
Full Member
*****
Posts: 133


View Profile
« on: October 01, 2008, 10:34:11 PM »

lets begin
Because in this tutorial i will show you how to manipulate the UI source so we can make the
main menu look like we need it to for our mods

first off im assuming you have followed my last coding tutorial on setting up
Microsoft Visual Studio 6.0 and adding player classes because i will not go over how to set it up in this tutorial because that is just time consuming and we just want to accomplish this as fast as possible

ok so load up msvc and then go File >recent workspaces and choose the q3source workspac yu have been working in
once that has loaded up go into the Projects>set active project and choose  UI it should be the 3rd one in the list
after that go to the left gand side and choose file view so you can see all the source files if you cant see the any of the UI source siles go ahead and click on the + next to UI
then click on the source folder and the list of  files should appear now scroll down till you see
the file UI_MENU.C
 open it up after it loads
you should see this at the top of the file

STEP 1

/*
=======================================================================

MAIN MENU

=======================================================================
*/


#include "ui_local.h"

#define ID_SINGLEPLAYER         10
#define ID_MULTIPLAYER         11
#define ID_SETUP            12
#define ID_DEMOS            13
#define ID_CINEMATICS         14
#define ID_EXIT               15

now at the top of that list ADD this

#define ID_CHARACTER_SETTINGS      16

so it needs to look like this

#define ID_CHARACTER_SETTINGS   16
#define ID_SINGLEPLAYER         10
#define ID_MULTIPLAYER         11
#define ID_SETUP            12
#define ID_DEMOS            13
#define ID_CINEMATICS         14
#define ID_EXIT               15

now scroll down about 6 lines
till you find this

typedef struct {
   menuframework_s   menu;
   menutext_s      singleplayer;
   menutext_s      multiplayer;
   menutext_s      setup;
   menutext_s      demos;
   menutext_s      cinematics;
   menutext_s      exit;

at the top of that list ADD this

menutext_s      character_settings;

it needs to look like this

typedef struct {
   menuframework_s   menu;
   menutext_s      character_settings;
   menutext_s      singleplayer;
   menutext_s      multiplayer;
   menutext_s      setup;
   menutext_s      demos;
   menutext_s      cinematics;
   menutext_s      exit;

STEP 2

now scroll down some 20 to 30 lines
till you find this

/*
=================
Main_MenuEvent
=================
*/
void Main_MenuEvent (void* ptr, int event) {
   if( event != QM_ACTIVATED ) {
      return;
   }

   switch( ((menucommon_s*)ptr)->id ) {

   case ID_SINGLEPLAYER:
      UI_SPLevelMenu();
      break;

   case ID_MULTIPLAYER:
      UI_ArenaServersMenu();
      break;

   case ID_SETUP:
      UI_SetupMenu();
      break;

   case ID_DEMOS:
      UI_DemosMenu();
      break;

   case ID_CINEMATICS:
      UI_CinematicsMenu();
      break;

   case ID_EXIT:
      UI_ConfirmMenu( "EXIT GAME?", NULL, MainMenu_ExitAction );
      break;
   }
}

and add this to the top of that list

case ID_CHARACTER_SETTINGS:
      UI_PlayerSettingsMenu();
      break;

now i will explain what i just did
if you look at this

case ID_SINGLEPLAYER:
      UI_SPLevelMenu();
      break;

you will notice this

UI_SPLevelMenu();

which looks alot like this
UI_PlayerSettingsMenu();
im pretty sure if you did a search for this
UI_PlayerSettingsMenu();

you will not find that string anywhere

so ill tell you how i came about creating this
on the left hand side in your file view you will see the file
UI_PLAYERSETTINGS.C
click on it and open it up

now scroll all the way down to the bottom till you find this

/*
=================
UI_PlayerSettingsMenu
=================
*/
void UI_PlayerSettingsMenu( void ) {
   PlayerSettings_MenuInit();
   UI_PushMenu( &s_playersettings.menu );
}
now this
PlayerSettings_MenuInit();

looks alot like this
UI_SPLevelMenu();

so i used a little common sence and figured this would work
but instead of calling this
PlayerSettings_MenuInit();  (actually i tried this and it didn't work so I JUST REMOVED the Init from the end thats what led me to look at this)void UI_PlayerSettingsMenu( void ) { (this is just a side thought so dont get lost read the part below for the best way)

So i went to the next closest thing that looked like this
UI_SPLevelMenu();

which was this
void UI_PlayerSettingsMenu( void ) {

and then modified it to look like this
UI_SPLevelMenu();

and came up with this (ROTFLMAO)
UI_PlayerSettingsMenu();

then added it to this

case ID_CHARACTER_SETTINGS:
      UI_PlayerSettingsMenu();
      break;

and then i placed it where i wanted which was in UI_MENU.C
which is where you should be now
Now in the end you should have something that looks like this

/*
=================
Main_MenuEvent
=================
*/
void Main_MenuEvent (void* ptr, int event) {
   if( event != QM_ACTIVATED ) {
      return;
   }

   switch( ((menucommon_s*)ptr)->id ) {



   case ID_CHARACTER_SETTINGS:
      UI_PlayerSettingsMenu();
      break;



   case ID_SINGLEPLAYER:
      UI_SPLevelMenu();
      break;

   case ID_MULTIPLAYER:
      UI_ArenaServersMenu();
      break;

   case ID_SETUP:
      UI_SetupMenu();
      break;

   case ID_DEMOS:
      UI_DemosMenu();
      break;

   case ID_CINEMATICS:
      UI_CinematicsMenu();
      break;

   case ID_EXIT:
      UI_ConfirmMenu( "EXIT GAME?", NULL, MainMenu_ExitAction );
      break;
   }
}

STEP 3

now lets follow thru with what we have done so far
scroll down till you find
/*
===============
UI_MainMenu

The main menu only comes up when not in a game,
so make sure that the attract loop server is down
and that local cinematics are killed
===============
*/
void UI_MainMenu( void ) {
   int      y;
   int      style = UI_CENTER | UI_DROPSHADOW;

   trap_Cvar_Set( "sv_killserver", "1" );

   if( !uis.demoversion && !ui_cdkeychecked.integer ) {
      char   key[17];

      trap_GetCDKey( key, sizeof(key) );
      if( strcmp( key, "123456789" ) == 0 ) {
         UI_CDKeyMenu();
         return;
      }
   }

   memset( &s_main, 0 ,sizeof(mainmenu_t) );

   MainMenu_Cache();

   s_main.menu.draw = Main_MenuDraw;
   s_main.menu.fullscreen = qtrue;
   s_main.menu.wrapAround = qtrue;
   s_main.menu.showlogo = qtrue;
   
   y = 134;
   s_main.singleplayer.generic.type         = MTYPE_PTEXT;
   s_main.singleplayer.generic.flags         = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.singleplayer.generic.x            = 320;
   s_main.singleplayer.generic.y            = y;
   s_main.singleplayer.generic.id            = ID_SINGLEPLAYER;
   s_main.singleplayer.generic.callback         = Main_MenuEvent;
   s_main.singleplayer.string               = "SINGLE PLAYER";
   s_main.singleplayer.color               = color_red
   s_main.singleplayer.style               = style;

   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.multiplayer.generic.type            = MTYPE_PTEXT;
   s_main.multiplayer.generic.flags            = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.multiplayer.generic.x            = 320;
   s_main.multiplayer.generic.y            = y;
   s_main.multiplayer.generic.id            = ID_MULTIPLAYER;
   s_main.multiplayer.generic.callback         = Main_MenuEvent;
   s_main.multiplayer.string               = "MULTIPLAYER";
   s_main.multiplayer.color               = color_red;
   s_main.multiplayer.style               = style;

   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.setup.generic.type            = MTYPE_PTEXT;
   s_main.setup.generic.flags            = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.setup.generic.x               = 320;
   s_main.setup.generic.y               = y;
   s_main.setup.generic.id               = ID_SETUP;
   s_main.setup.generic.callback            = Main_MenuEvent;
   s_main.setup.string               = "Configuratrion";
   s_main.setup.color                  = color_red;
   s_main.setup.style                  = style;

   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.demos.generic.type            = MTYPE_PTEXT;
   s_main.demos.generic.flags            = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.demos.generic.x               = 320;
   s_main.demos.generic.y               = y;
   s_main.demos.generic.id               = ID_DEMOS;
   s_main.demos.generic.callback            = Main_MenuEvent;
   s_main.demos.string               = "DEMOS";
   s_main.demos.color               = color_red;
   s_main.demos.style               = style;

   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.cinematics.generic.type            = MTYPE_PTEXT;
   s_main.cinematics.generic.flags            = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.cinematics.generic.x            = 320;
   s_main.cinematics.generic.y            = y;
   s_main.cinematics.generic.id            = ID_CINEMATICS;
   s_main.cinematics.generic.callback         = Main_MenuEvent;
   s_main.cinematics.string               = "Movies";
   s_main.cinematics.color               = color_red;
   s_main.cinematics.style               = style;

   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.exit.generic.type               = MTYPE_PTEXT;
   s_main.exit.generic.flags               = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.exit.generic.x               = 320;
   s_main.exit.generic.y               = y;
   s_main.exit.generic.id               = ID_EXIT;
   s_main.exit.generic.callback            = Main_MenuEvent;
   s_main.exit.string                  = "EXIT";
   s_main.exit.color                  = color_red;
   s_main.exit.style                  = style;

 

Now this is where it gets tricky probably because I made it tricky but if you listen to what i am saying you should have no problem doing the this step

first off go ahead and add this

   y += MAIN_MENU_VERTICAL_SPACING;   
   s_main.character_settings.generic.type         = MTYPE_PTEXT;
   s_main.character_settings.generic.flags      = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.character_settings.generic.x         = 320;
   s_main.character_settings.generic.y         = y;
   s_main.character_settings.generic.id         = ID_CHARACTER_SETTINGS;
   s_main.character_settings.generic.callback      = Main_MenuEvent;
   s_main.character_settings.string            = "CHARACTER SETTINGS";
   s_main.character_settings.color            = color_blue;
   s_main.character_settings.style            = style;


DIRECTLY ABOVE THIS

y = 134;
   s_main.singleplayer.generic.type         = MTYPE_PTEXT;
   s_main.singleplayer.generic.flags         = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.singleplayer.generic.x            = 320;
   s_main.singleplayer.generic.y            = y;
   s_main.singleplayer.generic.id            = ID_SINGLEPLAYER;
   s_main.singleplayer.generic.callback         = Main_MenuEvent;
   s_main.singleplayer.string               = "SINGLE PLAYER";
   s_main.singleplayer.color               = color_red;
   s_main.singleplayer.style               = style;

now pay attention because we just screwed the main menu up(SO I HOPE YOUR NOT COPY AND PASTING)

if you look at this

 y= 134;
   s_main.singleplayer.generic.type         = MTYPE_PTEXT;
   s_main.singleplayer.generic.flags         = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.singleplayer.generic.x            = 320;
   s_main.singleplayer.generic.y            = y;
   s_main.singleplayer.generic.id            = ID_SINGLEPLAYER;
   s_main.singleplayer.generic.callback         = Main_MenuEvent;
   s_main.singleplayer.string               = "SINGLE PLAYER";
   s_main.singleplayer.color               = color_red;
   s_main.singleplayer.style               = style;

you will notice that it is the only one that has this line

 y= 134;

at the begginning

where as  the rest only have this line

y += MAIN_MENU_VERTICAL_SPACING;

at the beginning

and if you payed attention to what i had you add to the top of the list
you will have noticed that we added this

y += MAIN_MENU_VERTICAL_SPACING;   
   s_main.character_settings.generic.type         = MTYPE_PTEXT;
   s_main.character_settings.generic.flags      = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.character_settings.generic.x         = 320;
   s_main.character_settings.generic.y         = y;
   s_main.character_settings.generic.id         = ID_CHARACTER_SETTINGS;
   s_main.character_settings.generic.callback      = Main_MenuEvent;
   s_main.character_settings.string            = "CHARACTER SETTINGS";
   s_main.character_settings.color            = color_blue;
   s_main.character_settings.style            = style;

to the list at the top

well
y= 134; (THIS SHOULD ALWAYS BE  THE FIRST LINE in the first MENU ITEM ESPECIALLY if it is AT THE TOP OF THE LIST LIKE I HAD you do)

So replace this
y += MAIN_MENU_VERTICAL_SPACING;

with this
y= 134;

in this
y += MAIN_MENU_VERTICAL_SPACING;   
   s_main.character_settings.generic.type         = MTYPE_PTEXT;
   s_main.character_settings.generic.flags      = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.character_settings.generic.x         = 320;
   s_main.character_settings.generic.y         = y;
   s_main.character_settings.generic.id         = ID_CHARACTER_SETTINGS;
   s_main.character_settings.generic.callback      = Main_MenuEvent;
   s_main.character_settings.string            = "CHARACTER SETTINGS";
   s_main.character_settings.color            = color_blue;
   s_main.character_settings.style            = style;

so it looks like this

y= 134;
   s_main.character_settings.generic.type         = MTYPE_PTEXT;
   s_main.character_settings.generic.flags      = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.character_settings.generic.x         = 320;
   s_main.character_settings.generic.y         = y;
   s_main.character_settings.generic.id         = ID_CHARACTER_SETTINGS;
   s_main.character_settings.generic.callback      = Main_MenuEvent;
   s_main.character_settings.string            = "CHARACTER SETTINGS";
   s_main.character_settings.color            = color_blue;
   s_main.character_settings.style            = style;

and now that we have used our character settings to take the place of what the single player did
we need to adjust the singleplayer to work with our changes

it looks like this
y= 134;
   s_main.singleplayer.generic.type         = MTYPE_PTEXT;
   s_main.singleplayer.generic.flags         = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.singleplayer.generic.x            = 320;
   s_main.singleplayer.generic.y            = y;
   s_main.singleplayer.generic.id            = ID_SINGLEPLAYER;
   s_main.singleplayer.generic.callback         = Main_MenuEvent;
   s_main.singleplayer.string               = "SINGLE PLAYER";
   s_main.singleplayer.color               = color_red;
   s_main.singleplayer.style               = style;

but it needs to look like this
so add this
y += MAIN_MENU_VERTICAL_SPACING;
to this
s_main.singleplayer.generic.type         = MTYPE_PTEXT;
   s_main.singleplayer.generic.flags         = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.singleplayer.generic.x            = 320;
   s_main.singleplayer.generic.y            = y;
   s_main.singleplayer.generic.id            = ID_SINGLEPLAYER;
   s_main.singleplayer.generic.callback         = Main_MenuEvent;
   s_main.singleplayer.string               = "SINGLE PLAYER";
   s_main.singleplayer.color               = color_red;
   s_main.singleplayer.style               = style;

so it looks like this
y += MAIN_MENU_VERTICAL_SPACING;   
   s_main.singleplayer.generic.type         = MTYPE_PTEXT;
   s_main.singleplayer.generic.flags         = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.singleplayer.generic.x            = 320;
   s_main.singleplayer.generic.y            = y;
   s_main.singleplayer.generic.id            = ID_SINGLEPLAYER;
   s_main.singleplayer.generic.callback         = Main_MenuEvent;
   s_main.singleplayer.string               = "SINGLE PLAYER";
   s_main.singleplayer.color               = color_red;
   s_main.singleplayer.style               = style;

so the end result should look like this this

   y = 134;   
   s_main.character_settings.generic.type         = MTYPE_PTEXT;
   s_main.character_settings.generic.flags      = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.character_settings.generic.x         = 320;
   s_main.character_settings.generic.y         = y;
   s_main.character_settings.generic.id         = ID_CHARACTER_SETTINGS;
   s_main.character_settings.generic.callback      = Main_MenuEvent;
   s_main.character_settings.string            = "CHARACTER SETTINGS";
   s_main.character_settings.color            = color_blue;
   s_main.character_settings.style            = style;


   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.singleplayer.generic.type         = MTYPE_PTEXT;
   s_main.singleplayer.generic.flags         = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.singleplayer.generic.x            = 320;
   s_main.singleplayer.generic.y            = y;
   s_main.singleplayer.generic.id            = ID_SINGLEPLAYER;
   s_main.singleplayer.generic.callback         = Main_MenuEvent;
   s_main.singleplayer.string               = "SINGLE PLAYER";
   s_main.singleplayer.color               = color_red;
   s_main.singleplayer.style               = style;

   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.multiplayer.generic.type            = MTYPE_PTEXT;
   s_main.multiplayer.generic.flags            = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.multiplayer.generic.x            = 320;
   s_main.multiplayer.generic.y            = y;
   s_main.multiplayer.generic.id            = ID_MULTIPLAYER;
   s_main.multiplayer.generic.callback         = Main_MenuEvent;
   s_main.multiplayer.string               = "MULTIPLAYER";
   s_main.multiplayer.color               = color_blue;
   s_main.multiplayer.style               = style;

   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.setup.generic.type            = MTYPE_PTEXT;
   s_main.setup.generic.flags            = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.setup.generic.x               = 320;
   s_main.setup.generic.y               = y;
   s_main.setup.generic.id               = ID_SETUP;
   s_main.setup.generic.callback            = Main_MenuEvent;
   s_main.setup.string               = "SETUP";
   s_main.setup.color                  = color_red;
   s_main.setup.style                  = style;

   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.demos.generic.type            = MTYPE_PTEXT;
   s_main.demos.generic.flags            = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.demos.generic.x               = 320;
   s_main.demos.generic.y               = y;
   s_main.demos.generic.id               = ID_DEMOS;
   s_main.demos.generic.callback            = Main_MenuEvent;
   s_main.demos.string               = "DEMOS";
   s_main.demos.color               = color_red;
   s_main.demos.style               = style;

   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.cinematics.generic.type            = MTYPE_PTEXT;
   s_main.cinematics.generic.flags            = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.cinematics.generic.x            = 320;
   s_main.cinematics.generic.y            = y;
   s_main.cinematics.generic.id            = ID_CINEMATICS;
   s_main.cinematics.generic.callback         = Main_MenuEvent;
   s_main.cinematics.string               = "CINEMATICS";
   s_main.cinematics.color               = color_red;
   s_main.cinematics.style               = style;

   y += MAIN_MENU_VERTICAL_SPACING;
   s_main.exit.generic.type               = MTYPE_PTEXT;
   s_main.exit.generic.flags               = QMF_CENTER_JUSTIFY|QMF_PULSEIFFOCUS;
   s_main.exit.generic.x               = 320;
   s_main.exit.generic.y               = y;
   s_main.exit.generic.id               = ID_EXIT;
   s_main.exit.generic.callback            = Main_MenuEvent;
   s_main.exit.string                  = "EXIT";
   s_main.exit.color                  = color_red;
   s_main.exit.style                  = style;

im sorry if this was complicated but it shouldnt of been
but this is a really important part
because
y = 134; sets the postion  for the menu items

and this
y += MAIN_MENU_VERTICAL_SPACING;
tells it how it needs to be spaced

so if this
y += MAIN_MENU_VERTICAL_SPACING;
is first
then nothing will work right because the first command (y = 134;)is not being carried out)

hehehehe:Smiley

STEP 4
ok now to finsih this baby off

scroll down to the bottom of the file
till you find this

   Menu_AddItem( &s_main.menu,   &s_main.singleplayer );
   Menu_AddItem( &s_main.menu,   &s_main.multiplayer );
   Menu_AddItem( &s_main.menu,   &s_main.setup );
   Menu_AddItem( &s_main.menu,   &s_main.demos );
   Menu_AddItem( &s_main.menu,   &s_main.cinematics );
   Menu_AddItem( &s_main.menu,   &s_main.exit );     

and like always at the top of that list add this

   Menu_AddItem( &s_main.menu,   &s_main.character_settings);

So it looks like this

   Menu_AddItem( &s_main.menu,   &s_main.character_settings);
   Menu_AddItem( &s_main.menu,   &s_main.singleplayer );
   Menu_AddItem( &s_main.menu,   &s_main.multiplayer );
   Menu_AddItem( &s_main.menu,   &s_main.setup );
   Menu_AddItem( &s_main.menu,   &s_main.demos );
   Menu_AddItem( &s_main.menu,   &s_main.cinematics );
   Menu_AddItem( &s_main.menu,   &s_main.exit );


bam your done
now go ahead and compile
but when you compile the the QVMS instead of directing the path to the game folder
MAKE SURE you direct it to the UI folder and then just type UI like you would game if you were in the game folder

now when the  game loads up you should have a BLUE Character Settings at the top of your main menu
and when you click on it you should goto the player settings menu screen were you choose your models and type your name

STEP 5 (The Review)

A)
if i define something
#define ID_CHARACTER_SETTINGS      16
i must always make sure i add  the 16 if i already have the 16 i make 17

BESURE THAT THIS
#define ID_CHARACTER_SETTINGS      16
Reflects what you type here
s_main.character_settings.generic.id         = ID_CHARACTER_SETTINGS;

and also here
case ID_CHARACTER_SETTINGS:
      UI_PlayerSettingsMenu();
      break;
and you should be fine in compiling the source with no errors
B)
now if i call it CHARACTER_SETTINGS
i must always call it CHARACTER_SETTINGS capitalized or not

the only place where you dont have to call it CHARACTER_SETTINGS
is here

s_main.character_settings.string            = "CHARACTER SETTINGS";

you could call it BOBO for all it cares 
Because this is what actually appears in the game on the menu list in the main menu

C)
A few things you can change
You probably already noticed but you can change the color of the font for in the game
i i know of a few colors  such a s
blue
red
orange
yellow
so try to experiment with is as well

D)
now when you go and try to create this

   case ID_CHARACTER_SETTINGS:
      UI_PlayerSettingsMenu();
      break;

you need to think about what your main goal is not just something that will work
because the main goal is most likely the most noticable thing you can use and the little stuff is the hard to see things
so take your time and try and always  stay FOCUSED and never side track your thought

another thing

y = 134;
reflects this
s_main.character_settings.generic.y         = y;
so you can give this a number if you want

you can also change this         s_main.character_settings.generic.x         = 320;

BUT BE CAREFUL WHEN CHANGING ANY OF THE COORDINATES
you can screw it up
if you do
just do a CONTROL-Z and undo that baby

you can also change the Md3 QUAKEIII title in the main menu as well
just change this path to where ever your new model is in your mod folder
#define MAIN_BANNER_MODEL            "models/mapobjects/banner/banner5.md3"
this is underneath this
#define ID_CHARACTER_BUILD      16
#define ID_SINGLEPLAYER         10
#define ID_MULTIPLAYER         11
#define ID_SETUP            12
#define ID_DEMOS            13
#define ID_CINEMATICS         14
#define ID_EXIT               15
im not saying it will be pretty but you can change it

also make sure you only change the banner5.md3 to the name of the model your going to use(unless you modify all things that are related to the banner5.md3 in the UI_MENU.c file to reflect the path )
for example
"models/mapobjects/banner/rocketl.md3"
you may also want to include any textures for that model in the same folder
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Free SMF 1.1.5 Forum Theme by Tamuril. © 2008.