mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
*********************************************************
* 2006/04/19 * * Madd_Mugsy * * Developed in VS 2003 * ********************************************************* - Restored the "accurate" and "inaccurate" strings that Rowa21 overwrote ;) - Added code to use the Accuracy tag in Weapons.xml - IMP.dat file changed to save a different file for each IMP - Different existing IMPs can be loaded by typing their names in the IMP webpage - Reverted changes to font.cpp due to Ivan's text not being displayed properly - Added an AutoPenalty stat to Weapons.xml to complement BurstPenalty - Added a NoSemiAuto stat to Weapons.xml to enable weapons that are Full-Auto only, code also added for AI to not use NoSemiAuto weapons in semi-auto mode - Added an APBonus stat to Items.xml to enable items to give you an APBonus/Penalty (ie: heavy armour) - Added code to enable the AimBonus and ToHitBonus stats to be read in from worn gear - Added Lesh's burst sound externalization code, added SilencedBurstSound tag to weapons.xml - Changed required camouflage amount to show merc as camo'd to 50%, due to some new items affecting the camouflage % - Added two new Merge options: Use_Item (6) and Use_Item_Hard (7), which enable the use of a single item on another single item. The hard one performs a mechanics check. Use_Item_Hard can be used for caliber conversion kits, etc. (But I need to add code to dump the old ammo still). - Use_Item can be used for things like opening your bullets up w/a knife to empty out some of the powder, for cold-loaded ammo. To Do: enable deterioration of the using item, figure out a way to enable multiple resultant items. - Commented out all the Air Strike code. - Changed the air strike options to be: "tons of guns" and "10 tons of guns" - Used the BigGunList stat in Items.xml to determine whether items can show up depending on the selection from #9 - Completely redid all the existing weapons' stats (and a couple images). - Changed some weapons' calibers, such as the SVD dragunov to 7.62x54r and the Type-85 to 7.62x25mm. Eliminated some types of ammo that do not exist (at least according to my source - so correct me if this is wrong and I'll add them back in): HP ammo in 7.62x39mm, 5.45mm, and 5.7mm. - Moved most of the old 1.13 specific weapons around in Items.xml to new spots. The items.xml file now goes to over 1000 (w/some "nothing" entries for organization) - Kept all the UB weapons, and some new weapons/items inside the old 350 item limit, so they can be assigned using ProEdit. To Do: Alter the binary files so pro-edit can see the right item names. - Throwing knife code changed, so that we can have more than one type of throwing knife. For now, this means that tossing your knife into the dirt won't un-bloody it. To Do: fix this later. - New weapon sounds (swiped from various mods) TODO: Incorporate Corpse's new weapon sounds - Reinstated 5% to-hit bonus for using a pistol w/two hands (nothing in offhand) and 5% to-hit penalty for using an SMG w/one hand (this one might've already been in, I forget) that the devs commented out - On top of those items added to 1.13 already, I've added/am in the process of adding: 200+ new guns, 30+ new grenades, 9+ new grenade launchers, 4 new rocket launchers, 8 new knives, a new throwing knife, 2 new armour attachments, 50+ new armours, 10+ new misc. items, 6+ new weapon attachments, 15+ new ammo calibers & 12+ new types of ammo (including cold-loaded variants) - resulting in 240+ new ammo items, and I'm probably missing stuff - Not all the images are in yet - will add as I get them done. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@38 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+42
-6
@@ -651,13 +651,40 @@ INT32 FirstFreeBigEnoughPocket(MERCPROFILESTRUCT *pProfile, UINT16 usItem)
|
|||||||
|
|
||||||
|
|
||||||
void WriteOutCurrentImpCharacter( INT32 iProfileId )
|
void WriteOutCurrentImpCharacter( INT32 iProfileId )
|
||||||
|
{
|
||||||
|
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("WriteOutCurrentImpCharacter: IMP.dat"));
|
||||||
|
char zImpFileName[12];
|
||||||
|
strcat(zImpFileName,IMP_MERC_FILENAME);
|
||||||
|
strcat(zImpFileName,IMP_FILENAME_SUFFIX);
|
||||||
|
WriteOutCurrentImpCharacter ( iProfileId, zImpFileName);
|
||||||
|
|
||||||
|
|
||||||
|
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("WriteOutCurrentImpCharacter: Nickname.dat"));
|
||||||
|
|
||||||
|
char zFileName[12];
|
||||||
|
char temp;
|
||||||
|
|
||||||
|
for(int i=0;i < 8;i++) // Madd: I couldn't get strcpy or anything to work here... weird... if s/o wants to fix it, go ahead
|
||||||
|
{
|
||||||
|
temp = (char) gMercProfiles[iProfileId].zNickname[i];
|
||||||
|
zFileName[i] = temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
strcat(zFileName,IMP_FILENAME_SUFFIX);
|
||||||
|
|
||||||
|
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("WriteOutCurrentImpCharacter: %s", zFileName));
|
||||||
|
WriteOutCurrentImpCharacter ( iProfileId, zFileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void WriteOutCurrentImpCharacter( INT32 iProfileId, STR fileName )
|
||||||
{
|
{
|
||||||
// grab the profile number and write out what is contained there in
|
// grab the profile number and write out what is contained there in
|
||||||
HWFILE hFile;
|
HWFILE hFile;
|
||||||
UINT32 uiBytesWritten = 0;
|
UINT32 uiBytesWritten = 0;
|
||||||
|
|
||||||
// open the file for writing
|
// open the file for writing
|
||||||
hFile = FileOpen(strcat((STR)(&gMercProfiles[iProfileId].zNickname),IMP_FILENAME_SUFFIX), FILE_ACCESS_WRITE | FILE_CREATE_ALWAYS, FALSE);
|
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("WriteOutCurrentImpCharacter: %s", fileName));
|
||||||
|
hFile = FileOpen(fileName, FILE_ACCESS_WRITE | FILE_CREATE_ALWAYS, FALSE);
|
||||||
|
|
||||||
// write out the profile id
|
// write out the profile id
|
||||||
if (!FileWrite(hFile, &iProfileId, sizeof( INT32 ), &uiBytesWritten))
|
if (!FileWrite(hFile, &iProfileId, sizeof( INT32 ), &uiBytesWritten))
|
||||||
@@ -685,11 +712,15 @@ void WriteOutCurrentImpCharacter( INT32 iProfileId )
|
|||||||
|
|
||||||
BOOLEAN ImpExists ( STR nickName )
|
BOOLEAN ImpExists ( STR nickName )
|
||||||
{
|
{
|
||||||
DWORD attribs = GetFileAttributes(strcat(nickName,IMP_FILENAME_SUFFIX));
|
char zFileName[12];
|
||||||
if ( attribs != INVALID_FILE_ATTRIBUTES && !(attribs & FILE_ATTRIBUTE_DIRECTORY) )
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
return FALSE;
|
strcpy(zFileName,nickName);
|
||||||
|
strcat(zFileName,IMP_FILENAME_SUFFIX);
|
||||||
|
|
||||||
|
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("ImpExists: %s", (STR) zFileName));
|
||||||
|
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,String("ImpExists: %d", FileExistsNoDB(zFileName) ));
|
||||||
|
|
||||||
|
return FileExistsNoDB(zFileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadImpCharacter( STR nickName )
|
void LoadImpCharacter( STR nickName )
|
||||||
@@ -698,8 +729,13 @@ void LoadImpCharacter( STR nickName )
|
|||||||
HWFILE hFile;
|
HWFILE hFile;
|
||||||
UINT32 uiBytesRead = 0;
|
UINT32 uiBytesRead = 0;
|
||||||
|
|
||||||
|
char zFileName[12];
|
||||||
|
|
||||||
|
strcpy(zFileName,nickName);
|
||||||
|
strcat(zFileName,IMP_FILENAME_SUFFIX);
|
||||||
|
|
||||||
// open the file for writing
|
// open the file for writing
|
||||||
hFile = FileOpen(strcat(nickName,IMP_FILENAME_SUFFIX), FILE_ACCESS_READ, FALSE);
|
hFile = FileOpen(zFileName, FILE_ACCESS_READ, FALSE);
|
||||||
|
|
||||||
// valid file?
|
// valid file?
|
||||||
if( hFile == -1 )
|
if( hFile == -1 )
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ void HandleIMPConfirm( void );
|
|||||||
BOOLEAN AddCharacterToPlayersTeam( void );
|
BOOLEAN AddCharacterToPlayersTeam( void );
|
||||||
void LoadImpCharacter( STR fileName );
|
void LoadImpCharacter( STR fileName );
|
||||||
void WriteOutCurrentImpCharacter( INT32 iProfileId );
|
void WriteOutCurrentImpCharacter( INT32 iProfileId );
|
||||||
|
void WriteOutCurrentImpCharacter( INT32 iProfileId, STR fileName );
|
||||||
|
|
||||||
void ResetIMPCharactersEyesAndMouthOffsets( UINT8 ubMercProfileID );
|
void ResetIMPCharactersEyesAndMouthOffsets( UINT8 ubMercProfileID );
|
||||||
|
|
||||||
|
|||||||
+11
-4
@@ -342,7 +342,7 @@ void HandleTextEvent( UINT32 uiKey )
|
|||||||
uiKey == '_' || uiKey == '.' )
|
uiKey == '_' || uiKey == '.' )
|
||||||
{
|
{
|
||||||
// if the current string position is at max or great, do nothing
|
// if the current string position is at max or great, do nothing
|
||||||
if( iStringPos >= 6 )
|
if( iStringPos >= 8 )
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -387,6 +387,9 @@ void ProcessPlayerInputActivationString( void )
|
|||||||
if( NumberOfMercsOnPlayerTeam() >= 18 )
|
if( NumberOfMercsOnPlayerTeam() >= 18 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
char charPlayerActivationString[32];
|
||||||
|
wcstombs(charPlayerActivationString,pPlayerActivationString,32);
|
||||||
|
|
||||||
//Madd multiple imps if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) )&&( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) )
|
//Madd multiple imps if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) )&&( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) )
|
||||||
if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) )
|
if( ( ( wcscmp(pPlayerActivationString, L"XEP624") == 0 ) || ( wcscmp(pPlayerActivationString, L"xep624") == 0 ) ) &&( LaptopSaveInfo.gfNewGameLaptop < 2 ) )
|
||||||
{
|
{
|
||||||
@@ -397,10 +400,14 @@ void ProcessPlayerInputActivationString( void )
|
|||||||
|
|
||||||
}
|
}
|
||||||
//Madd multiple imps else if( ( wcscmp(pPlayerActivationString, L"90210") == 0 ) && ( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) )
|
//Madd multiple imps else if( ( wcscmp(pPlayerActivationString, L"90210") == 0 ) && ( LaptopSaveInfo.fIMPCompletedFlag == FALSE ) )
|
||||||
// Madd: load characters by name:
|
else if( wcscmp(pPlayerActivationString, L"90210") == 0 )
|
||||||
else if ( ImpExists( (STR)pPlayerActivationString ) )
|
|
||||||
{
|
{
|
||||||
LoadImpCharacter( (STR)pPlayerActivationString );
|
LoadImpCharacter( IMP_MERC_FILENAME );
|
||||||
|
}
|
||||||
|
// Madd: load characters by name
|
||||||
|
else if ( ImpExists( charPlayerActivationString ) )
|
||||||
|
{
|
||||||
|
LoadImpCharacter( charPlayerActivationString );
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -12,5 +12,7 @@ void HandleImpHomePage( void );
|
|||||||
#define MIN_GLOW_DELTA 100
|
#define MIN_GLOW_DELTA 100
|
||||||
#define CURSOR_HEIGHT GetFontHeight( FONT14ARIAL ) + 6
|
#define CURSOR_HEIGHT GetFontHeight( FONT14ARIAL ) + 6
|
||||||
|
|
||||||
|
#define IMP_MERC_FILENAME "IMP"
|
||||||
|
|
||||||
extern INT32 GlowColorsList[][3];
|
extern INT32 GlowColorsList[][3];
|
||||||
#endif
|
#endif
|
||||||
+2
-2
@@ -4519,8 +4519,8 @@ BOOLEAN DisplayTitleBarMaximizeGraphic(BOOLEAN fForward, BOOLEAN fInit, UINT16 u
|
|||||||
|
|
||||||
sPosBottomY = LAPTOP_TITLE_BAR_HEIGHT;
|
sPosBottomY = LAPTOP_TITLE_BAR_HEIGHT;
|
||||||
|
|
||||||
SrcRect.iLeft = iScreenWidthOffset;
|
SrcRect.iLeft = 0;
|
||||||
SrcRect.iTop = iScreenHeightOffset;
|
SrcRect.iTop = 0;
|
||||||
SrcRect.iRight = LAPTOP_TITLE_BAR_WIDTH;
|
SrcRect.iRight = LAPTOP_TITLE_BAR_WIDTH;
|
||||||
SrcRect.iBottom = LAPTOP_TITLE_BAR_HEIGHT;
|
SrcRect.iBottom = LAPTOP_TITLE_BAR_HEIGHT;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user