Genesis 3D Beta 2

The following changes add these items to the menu:

Look Up
Look Down
Turn Right
Turn Left

By default they will be assigned to HOME,END,INSERT,DELETE respectively, but can be changed and saved
by using the
Options\Controls menu.

No changes to the other default assignments are made.

Changes take place in Gmenu.h, Gmenu.c and Client.c

 


GMenu.h
------------

Line 26 or so Gmenu.h

////////////////////////////////////////////////////////////////////////////////////////
// Menu item ID's in hierarchy order
////////////////////////////////////////////////////////////////////////////////////////
enum
{
GMenu_NoMenu = 0,
GMenu_DoNothing,
GMenu_MainMenu,

GMenu_SingleMapMenu,

GMenu_SinglePlayerGame,
GMenu_SinglePlayerGame1,
GMenu_SinglePlayerGame2,

GMenu_CreateMultiPlayerGame,
GMenu_CreateMenu,
GMenu_IPAddress,
GMenu_StartGame,
GMenu_StartGame1,
GMenu_StartGame2,

GMenu_JoinMultiPlayerGame,
GMenu_JoinMenu,
GMenu_IPEntry,
GMenu_Connect,

GMenu_Options,
GMenu_OptionsMenu,
GMenu_Volume,
GMenu_Brightness,
GMenu_NameEntry,
GMenu_Control,
GMenu_ControlMenu,
GMenu_KeyShoot,
GMenu_KeyJump,
GMenu_KeyStrafeLeft,
GMenu_KeyStrafeRight,
GMenu_KeyForward,
GMenu_KeyBackward,
GMenu_KeyNextWeapon,
//added 09-09-98 for look up/down
GMenu_KeyLookUp,
GMenu_KeyLookDown,
GMenu_KeyLookLeft,
GMenu_KeyLookRight,
//end added 09-09-98 for look up/down

GMenu_MouseInvert,

GMenu_Credits,
GMenu_CreditsMenu,

GMenu_QuitGame,

GMenu_NoIdRequired,
};

 

GMenu.c
------------

Line 25 or so Gmenu.c

#include "Host.h"
extern Host_Host *Host;

extern geEngine *Engine;
extern geSound_System *SoundSys;

#define GMENU_VERSION 0x100

//changed for look up/down/left/right (changed from 7 to 11)
#define NUM_MAPPED_KEYS 11


////////////////////////////////////////////////////////////////////////////////////////
// Keyboard mappings ( action, wParam, lParam )
////////////////////////////////////////////////////////////////////////////////////////
static int32 OriginalKeyMapping[NUM_MAPPED_KEYS][3] =
{
{ GMenu_KeyShoot, VK_LBUTTON, 1 },
{ GMenu_KeyJump, VK_RBUTTON, 2 },
{ GMenu_KeyStrafeLeft, VK_LEFT, 21692417 },
{ GMenu_KeyStrafeRight, VK_RIGHT, 21823489 },
{ GMenu_KeyForward, VK_UP, 21495809 },
{ GMenu_KeyBackward, VK_DOWN, 22020097 },
{ GMenu_KeyNextWeapon, VK_CONTROL, 18677761 },
//added 09-09-98 for look up/down/left/right
{ GMenu_KeyLookUp, VK_HOME, 30000001 },
{ GMenu_KeyLookDown, VK_END, 30000002 },
{ GMenu_KeyLookLeft, VK_DELETE, 30000003 },
{ GMenu_KeyLookRight, VK_INSERT, 30000004 }
//end added 09-09-98 for look up/down/left/right


};

static int32 KeyMapping[NUM_MAPPED_KEYS][3] =
{
{ GMenu_KeyShoot, VK_LBUTTON, 1 },
{ GMenu_KeyJump, VK_RBUTTON, 2 },
{ GMenu_KeyStrafeLeft, VK_LEFT, 21692417 },
{ GMenu_KeyStrafeRight, VK_RIGHT, 21823489 },
{ GMenu_KeyForward, VK_UP, 21495809 },
{ GMenu_KeyBackward, VK_DOWN, 22020097 },
{ GMenu_KeyNextWeapon, VK_CONTROL, 18677761 },
//added 09-09-98 for look up/down/left/right
{ GMenu_KeyLookUp, VK_HOME, 30000001 },
{ GMenu_KeyLookDown, VK_END, 30000002},
{ GMenu_KeyLookLeft, VK_DELETE, 30000003 },
{ GMenu_KeyLookRight, VK_INSERT, 30000004 }
//end added 09-09-98 for look up/down/left/right

};

//undone
int32 KeyLut[256];
geBoolean MouseInvert = GE_FALSE;

 

Line 613 or so Gmenu.c

FieldItem.FieldName = "Next Weapon ";
FieldItem.FieldNameLength = strlen( FieldItem.FieldName );
MyGetKeyNameText( GMenu_GetKeyLParam( GMenu_KeyNextWeapon ), KeyText, sizeof( KeyText ) );
strcpy( FieldItem.FieldTextData, KeyText );
FieldItem.FieldTextDataLength = strlen( FieldItem.FieldTextData );
Menu_AddItem( ControlMenu, Menu_ItemField, GMenu_KeyNextWeapon, &FieldItem );


//added 09-09-98 to add look up/down/left/right
FieldItem.FieldName = "Look Up ";
FieldItem.FieldNameLength = strlen( FieldItem.FieldName );
MyGetKeyNameText( GMenu_GetKeyLParam( GMenu_KeyLookUp ), KeyText, sizeof( KeyText ) );
strcpy( FieldItem.FieldTextData, KeyText );
FieldItem.FieldTextDataLength = strlen( FieldItem.FieldTextData );
Menu_AddItem( ControlMenu, Menu_ItemField, GMenu_KeyLookUp, &FieldItem );

FieldItem.FieldName = "Look Down ";
FieldItem.FieldNameLength = strlen( FieldItem.FieldName );
MyGetKeyNameText( GMenu_GetKeyLParam( GMenu_KeyLookDown ), KeyText, sizeof( KeyText ) );
strcpy( FieldItem.FieldTextData, KeyText );
FieldItem.FieldTextDataLength = strlen( FieldItem.FieldTextData );
Menu_AddItem( ControlMenu, Menu_ItemField, GMenu_KeyLookDown, &FieldItem );

FieldItem.FieldName = "Turn Right ";
FieldItem.FieldNameLength = strlen( FieldItem.FieldName );
MyGetKeyNameText( GMenu_GetKeyLParam( GMenu_KeyLookRight ), KeyText, sizeof( KeyText ) );
strcpy( FieldItem.FieldTextData, KeyText );
FieldItem.FieldTextDataLength = strlen( FieldItem.FieldTextData );
Menu_AddItem( ControlMenu, Menu_ItemField, GMenu_KeyLookRight, &FieldItem );

FieldItem.FieldName = "Turn Left ";
FieldItem.FieldNameLength = strlen( FieldItem.FieldName );
MyGetKeyNameText( GMenu_GetKeyLParam( GMenu_KeyLookLeft ), KeyText, sizeof( KeyText ) );
strcpy( FieldItem.FieldTextData, KeyText );
FieldItem.FieldTextDataLength = strlen( FieldItem.FieldTextData );
Menu_AddItem( ControlMenu, Menu_ItemField, GMenu_KeyLookLeft, &FieldItem );
//end added 09-09-98 to add look up/down/left/right


ToggleItem.NormalFont = Font_Default;
ToggleItem.SelectFont = Font_DefaultSelect;
ToggleItem.ToggleLabel = "Mouse Invert ";
ToggleItem.ToggleLabelLength = strlen( ToggleItem.ToggleLabel );
strcpy( ToggleItem.ToggleData1, "No" );
ToggleItem.ToggleData1Length = strlen( ToggleItem.ToggleData1 );
strcpy( ToggleItem.ToggleData2, "Yes" );
ToggleItem.ToggleData2Length = strlen( ToggleItem.ToggleData2 );
ToggleItem.ActiveItem = MouseInvert;
Menu_AddItem( ControlMenu, Menu_ItemToggle, GMenu_MouseInvert, &ToggleItem );

 

 

Line 1092 or so Gmenu.c

case GMenu_Control:
{
ActiveMenu = ControlMenu;
break;
}

case GMenu_Credits:
{
ActiveMenu = CreditsMenu;
break;
}

case GMenu_KeyShoot:
case GMenu_KeyJump:
case GMenu_KeyStrafeLeft:
case GMenu_KeyStrafeRight:
case GMenu_KeyForward:
case GMenu_KeyBackward:
case GMenu_KeyNextWeapon:

//added 09-09-98 for Look Up/Down
case GMenu_KeyLookUp:
case GMenu_KeyLookDown:
case GMenu_KeyLookLeft:
case GMenu_KeyLookRight:
//end added 09-09-98 for Look Up/Down

{
Menu_FlagField( ActiveMenu, Identifier, GE_TRUE );
ControlChangeIdentifier = Identifier;
break;
}

case GMenu_NameEntry:
{
Menu_FlagString( ActiveMenu, Identifier, GE_TRUE );
NameChangeIdentifier = Identifier;
break;
}

 

Client.c
------------

Line 811 or so Client.c

//=====================================================================================
// Client_SendMove
// Sends clients intentions to the server (through the supplied host)
//=====================================================================================
geBoolean Client_SendMove(Client_Client *Client, Host_Host *Host, float Time)
{
Buffer_Data Buffer;
uint8 Data[512];
uint16 ButtonBits;

if (GMenu_IsAMenuActive() == GE_TRUE)
return GE_TRUE;

//if (Client->ClientPlayer == -1)
// return GE_TRUE;

Buffer.Data = Data;
Buffer.Size = 512;
Buffer.Pos = 0;

ButtonBits = 0;

// Change forward/back motion
if (IsKeyDown(KeyLut[VK_UP], Host->hWnd))
Client->ForwardSpeed = 4000.0f;
else if (IsKeyDown(KeyLut[VK_DOWN], Host->hWnd))
Client->ForwardSpeed = -4000.0f;
else
Client->ForwardSpeed = 0.0f;


if (MouseInvert)
Client->Angles.X -= GlobalMouseSpeedY;
else
Client->Angles.X += GlobalMouseSpeedY;

Client->Angles.Y += GlobalMouseSpeedX;


//added 09-09-98 for look up/down/left/right
if (IsKeyDown(KeyLut[VK_HOME], Host->hWnd))
Client->Angles.X += 0.23f; //speed of rotation

if (IsKeyDown(KeyLut[VK_END], Host->hWnd))
Client->Angles.X -= 0.23f; //speed of rotation

if (IsKeyDown(KeyLut[VK_INSERT], Host->hWnd))
Client->Angles.Y -= 0.23f; //speed of rotation

if (IsKeyDown(KeyLut[VK_DELETE], Host->hWnd))
Client->Angles.Y += 0.23f; //speed of rotation

//end added 09-09-98 for look up/down/left/right


if (Client->Angles.X > 1.3f)
Client->Angles.X = 1.3f;
else if (Client->Angles.X < -1.3f)
Client->Angles.X = -1.3f;

GlobalMouseSpeedX = 0.0f;
GlobalMouseSpeedY = 0.0f;

if (IsKeyDown(KeyLut[VK_LEFT], Host->hWnd))
ButtonBits |= HOST_BUTTON_LEFT;

if (IsKeyDown(KeyLut[VK_RIGHT], Host->hWnd))
ButtonBits |= HOST_BUTTON_RIGHT;

// Do misc move actions