new feature: madlab's robot can be upgraded

requires gamedir r2642

https://thepit.ja-galaxy-forum.com/index.php?t=msg&goto=364403

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9338 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
rftr
2022-03-21 17:34:49 +00:00
parent f7315115af
commit 87b0c7c6b7
26 changed files with 1114 additions and 162 deletions
+26
View File
@@ -3137,6 +3137,32 @@ extern STR16 szRebelCommandHelpText[];
extern STR16 szRebelCommandAdminActionsText[];
extern STR16 szRebelCommandDirectivesText[];
extern STR16 szRobotText[];
enum {
ROBOT_TEXT_CANNOT_CHANGE_INSTALLED_WEAPON,
ROBOT_TEXT_CANNOT_ADD_ATTACHMENTS,
ROBOT_TEXT_INSTALLED_WEAPON,
ROBOT_TEXT_SLOT_AMMO,
ROBOT_TEXT_SLOT_TARGETING,
ROBOT_TEXT_SLOT_CHASSIS,
ROBOT_TEXT_SLOT_UTILITY,
ROBOT_TEXT_SLOT_INVENTORY,
ROBOT_TEXT_NO_BONUS,
ROBOT_TEXT_LASER,
ROBOT_TEXT_NIGHT_VISION,
ROBOT_TEXT_CLEANING_KIT,
ROBOT_TEXT_CLEANING_KIT_DEPLETED,
ROBOT_TEXT_METAL_DETECTOR,
ROBOT_TEXT_XRAY,
ROBOT_TEXT_XRAY_ACTIVATED,
ROBOT_TEXT_RADIO,
ROBOT_TEXT_STAT_BONUSES,
ROBOT_TEXT_CAMO,
ROBOT_TEXT_PLATE,
ROBOT_TEXT_PLATE_DESTROYED,
ROBOT_TEXT_SKILL_GRANTED,
};
#define TACTICAL_INVENTORY_DIALOG_NUM 16
#define TACTICAL_COVER_DIALOG_NUM 16
+72 -1
View File
@@ -299,7 +299,18 @@ itemStartElementHandle(void *userData, const XML_Char *name, const XML_Char **at
strcmp(name, "emptybloodbag" ) == 0 ||
strcmp(name, "medicalsplint" ) == 0 ||
strcmp(name, "sFireResistance" ) == 0 ||
strcmp(name, "usAdministrationModifier" ) == 0))
strcmp(name, "usAdministrationModifier" ) == 0) ||
strcmp(name, "RobotDamageReduction") == 0 ||
strcmp(name, "RobotStrBonus") == 0 ||
strcmp(name, "RobotAgiBonus") == 0 ||
strcmp(name, "RobotDexBonus") == 0 ||
strcmp(name, "RobotTargetingSkillGrant") == 0 ||
strcmp(name, "RobotChassisSkillGrant") == 0 ||
strcmp(name, "RobotUtilitySkillGrant") == 0 ||
strcmp(name, "ProvidesRobotCamo") == 0 ||
strcmp(name, "ProvidesRobotNightVision") == 0 ||
strcmp(name, "ProvidesRobotLaserBonus") == 0
)
{
pData->curElement = ELEMENT_PROPERTY;
//DebugMsg(TOPIC_JA2, DBG_LEVEL_3, String("itemStartElementHandle: going into element, name = %s",name) );
@@ -1553,6 +1564,56 @@ itemEndElementHandle(void *userData, const XML_Char *name)
pData->curElement = ELEMENT;
pData->curItem.usAdministrationModifier = (UINT8)atol( pData->szCharData );
}
else if (strcmp(name, "RobotDamageReduction") == 0)
{
pData->curElement = ELEMENT;
pData->curItem.fRobotDamageReductionModifier = (FLOAT)atof(pData->szCharData);
}
else if (strcmp(name, "RobotStrBonus") == 0)
{
pData->curElement = ELEMENT;
pData->curItem.bRobotStrBonus = (INT8)atol(pData->szCharData);
}
else if (strcmp(name, "RobotAgiBonus") == 0)
{
pData->curElement = ELEMENT;
pData->curItem.bRobotAgiBonus = (INT8)atol(pData->szCharData);
}
else if (strcmp(name, "RobotDexBonus") == 0)
{
pData->curElement = ELEMENT;
pData->curItem.bRobotDexBonus = (INT8)atol(pData->szCharData);
}
else if (strcmp(name, "RobotTargetingSkillGrant") == 0)
{
pData->curElement = ELEMENT;
pData->curItem.bRobotTargetingSkillGrant = (INT8)atol(pData->szCharData);
}
else if (strcmp(name, "RobotChassisSkillGrant") == 0)
{
pData->curElement = ELEMENT;
pData->curItem.bRobotChassisSkillGrant = (INT8)atol(pData->szCharData);
}
else if (strcmp(name, "RobotUtilitySkillGrant") == 0)
{
pData->curElement = ELEMENT;
pData->curItem.bRobotUtilitySkillGrant = (INT8)atol(pData->szCharData);
}
else if (strcmp(name, "ProvidesRobotCamo") == 0)
{
pData->curElement = ELEMENT;
pData->curItem.fProvidesRobotCamo = (BOOLEAN)atol(pData->szCharData);
}
else if (strcmp(name, "ProvidesRobotNightVision") == 0)
{
pData->curElement == ELEMENT;
pData->curItem.fProvidesRobotNightVision = (BOOLEAN)atol(pData->szCharData);
}
else if (strcmp(name, "ProvidesRobotLaserBonus") == 0)
{
pData->curElement == ELEMENT;
pData->curItem.fProvidesRobotLaserBonus = (BOOLEAN)atol(pData->szCharData);
}
--pData->maxReadDepth;
@@ -2197,6 +2258,16 @@ BOOLEAN WriteItemStats()
FilePrintf(hFile,"\t\t<usRiotShieldGraphic>%d</usRiotShieldGraphic>\r\n", Item[cnt].usRiotShieldGraphic );
FilePrintf(hFile,"\t\t<sFireResistance>%d</sFireResistance>\r\n", Item[cnt].sFireResistance );
FilePrintf(hFile,"\t\t<usAdministrationModifier>%d</usAdministrationModifier>\r\n", Item[cnt].usAdministrationModifier );
FilePrintf(hFile,"\t\t<RobotDamageReductionModifier>%f</RobotDamageReductionModifier>\r\n", Item[cnt].fRobotDamageReductionModifier );
FilePrintf(hFile,"\t\t<RobotStrBonus>%d</RobotStrBonus>\r\n", Item[cnt].bRobotStrBonus );
FilePrintf(hFile,"\t\t<RobotAgiBonus>%d</RobotAgiBonus>\r\n", Item[cnt].bRobotAgiBonus );
FilePrintf(hFile,"\t\t<RobotDexBonus>%d</RobotDexBonus>\r\n", Item[cnt].bRobotDexBonus );
FilePrintf(hFile,"\t\t<RobotTargetingSkillGrant>%d</RobotTargetingSkillGrant>\r\n", Item[cnt].bRobotTargetingSkillGrant );
FilePrintf(hFile,"\t\t<RobotChassisSkillGrant>%d</RobotChassisSkillGrant>\r\n", Item[cnt].bRobotChassisSkillGrant );
FilePrintf(hFile,"\t\t<RobotUtilitySkillGrant>%d</RobotUtilitySkillGrant>\r\n", Item[cnt].bRobotUtilitySkillGrant );
FilePrintf(hFile,"\t\t<ProvidesRobotCamo>%d</ProvidesRobotCamo>\r\n", Item[cnt].fProvidesRobotCamo );
FilePrintf(hFile,"\t\t<ProvidesRobotNightVision>%d</ProvidesRobotNightVision>\r\n", Item[cnt].fProvidesRobotNightVision );
FilePrintf(hFile,"\t\t<ProvidesRobotLaserBonus>%d</ProvidesRobotLaserBonus>\r\n", Item[cnt].fProvidesRobotLaserBonus );
FilePrintf(hFile,"\t</ITEM>\r\n");
}
+26
View File
@@ -12002,6 +12002,32 @@ STR16 szRebelCommandDirectivesText[] =
L"升级此项将会增加每天志愿者人数。", //L"Improving this directive will increase the number of volunteers gained per day.",
};
STR16 szRobotText[] = // TODO: Translate
{
L"The robot's installed weapon cannot be changed.",
L"It is not possible to add attachments to the robot's weapon.",
L"Installed Weapon",
L"Reserve Ammo",
L"Targeting Upgrade",
L"Chassis Upgrade",
L"Utility Upgrade",
L"Storage",
L"No Bonus",
L"The laser bonuses of this item are applied to the robot.",
L"The night- and cave-vision bonuses of this item are applied to the robot.",
L"This kit degrades instead of the robot's weapon.",
L"The robot's cleaning kit was depleted!",
L"Mines adjacent to the robot are automatically flagged.",
L"Periodic X-Ray scans during combat. No batteries required.",
L"The robot has activated an x-ray scan!",
L"The robot can use the radio set.",
L"The robot's chassis is strengthened, giving it better combat performance.",
L"The camouflage bonuses of this item are applied to the robot.",
L"The robot is tougher and takes less damage.",
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
// WANNE: Some Chinese specific strings that needs to be in unicode!
STR16 ChineseSpecString1 = L"%"; //defined in _ChineseText.cpp as this file is already unicode
STR16 ChineseSpecString2 = L"*%3d%%%"; //defined in _ChineseText.cpp as this file is already unicode
+26
View File
@@ -11998,4 +11998,30 @@ STR16 szRebelCommandDirectivesText[] = // TODO.Translate
L"Improving this directive will increase the number of volunteers gained per day.",
};
STR16 szRobotText[] = // TODO: Translate
{
L"The robot's installed weapon cannot be changed.",
L"It is not possible to add attachments to the robot's weapon.",
L"Installed Weapon",
L"Reserve Ammo",
L"Targeting Upgrade",
L"Chassis Upgrade",
L"Utility Upgrade",
L"Storage",
L"No Bonus",
L"The laser bonuses of this item are applied to the robot.",
L"The night- and cave-vision bonuses of this item are applied to the robot.",
L"This kit degrades instead of the robot's weapon.",
L"The robot's cleaning kit was depleted!",
L"Mines adjacent to the robot are automatically flagged.",
L"Periodic X-Ray scans during combat. No batteries required.",
L"The robot has activated an x-ray scan!",
L"The robot can use the radio set.",
L"The robot's chassis is strengthened, giving it better combat performance.",
L"The camouflage bonuses of this item are applied to the robot.",
L"The robot is tougher and takes less damage.",
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //DUTCH
+26
View File
@@ -12002,4 +12002,30 @@ STR16 szRebelCommandDirectivesText[] =
L"Improving this directive will increase the number of volunteers gained per day.",
};
STR16 szRobotText[] =
{
L"The robot's installed weapon cannot be changed.",
L"It is not possible to add attachments to the robot's weapon.",
L"Installed Weapon",
L"Reserve Ammo",
L"Targeting Upgrade",
L"Chassis Upgrade",
L"Utility Upgrade",
L"Storage",
L"No Bonus",
L"The laser bonuses of this item are applied to the robot.",
L"The night- and cave-vision bonuses of this item are applied to the robot.",
L"This kit degrades instead of the robot's weapon.",
L"The robot's cleaning kit was depleted!",
L"Mines adjacent to the robot are automatically flagged.",
L"Periodic X-Ray scans during combat. No batteries required.",
L"The robot has activated an x-ray scan!",
L"The robot can use the radio set.",
L"The robot's chassis is strengthened, giving it better combat performance.",
L"The camouflage bonuses of this item are applied to the robot.",
L"The robot is tougher and takes less damage.",
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //ENGLISH
+26
View File
@@ -11980,4 +11980,30 @@ STR16 szRebelCommandDirectivesText[] = // TODO.Translate
L"Improving this directive will increase the number of volunteers gained per day.",
};
STR16 szRobotText[] = // TODO: Translate
{
L"The robot's installed weapon cannot be changed.",
L"It is not possible to add attachments to the robot's weapon.",
L"Installed Weapon",
L"Reserve Ammo",
L"Targeting Upgrade",
L"Chassis Upgrade",
L"Utility Upgrade",
L"Storage",
L"No Bonus",
L"The laser bonuses of this item are applied to the robot.",
L"The night- and cave-vision bonuses of this item are applied to the robot.",
L"This kit degrades instead of the robot's weapon.",
L"The robot's cleaning kit was depleted!",
L"Mines adjacent to the robot are automatically flagged.",
L"Periodic X-Ray scans during combat. No batteries required.",
L"The robot has activated an x-ray scan!",
L"The robot can use the radio set.",
L"The robot's chassis is strengthened, giving it better combat performance.",
L"The camouflage bonuses of this item are applied to the robot.",
L"The robot is tougher and takes less damage.",
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //FRENCH
+26
View File
@@ -11903,4 +11903,30 @@ STR16 szRebelCommandDirectivesText[] = // TODO.Translate
L"Improving this directive will increase the number of volunteers gained per day.",
};
STR16 szRobotText[] = // TODO: Translate
{
L"The robot's installed weapon cannot be changed.",
L"It is not possible to add attachments to the robot's weapon.",
L"Installed Weapon",
L"Reserve Ammo",
L"Targeting Upgrade",
L"Chassis Upgrade",
L"Utility Upgrade",
L"Storage",
L"No Bonus",
L"The laser bonuses of this item are applied to the robot.",
L"The night- and cave-vision bonuses of this item are applied to the robot.",
L"This kit degrades instead of the robot's weapon.",
L"The robot's cleaning kit was depleted!",
L"Mines adjacent to the robot are automatically flagged.",
L"Periodic X-Ray scans during combat. No batteries required.",
L"The robot has activated an x-ray scan!",
L"The robot can use the radio set.",
L"The robot's chassis is strengthened, giving it better combat performance.",
L"The camouflage bonuses of this item are applied to the robot.",
L"The robot is tougher and takes less damage.",
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //GERMAN
+26
View File
@@ -11989,4 +11989,30 @@ STR16 szRebelCommandDirectivesText[] = // TODO.Translate
L"Improving this directive will increase the number of volunteers gained per day.",
};
STR16 szRobotText[] = // TODO: Translate
{
L"The robot's installed weapon cannot be changed.",
L"It is not possible to add attachments to the robot's weapon.",
L"Installed Weapon",
L"Reserve Ammo",
L"Targeting Upgrade",
L"Chassis Upgrade",
L"Utility Upgrade",
L"Storage",
L"No Bonus",
L"The laser bonuses of this item are applied to the robot.",
L"The night- and cave-vision bonuses of this item are applied to the robot.",
L"This kit degrades instead of the robot's weapon.",
L"The robot's cleaning kit was depleted!",
L"Mines adjacent to the robot are automatically flagged.",
L"Periodic X-Ray scans during combat. No batteries required.",
L"The robot has activated an x-ray scan!",
L"The robot can use the radio set.",
L"The robot's chassis is strengthened, giving it better combat performance.",
L"The camouflage bonuses of this item are applied to the robot.",
L"The robot is tougher and takes less damage.",
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //ITALIAN
+26
View File
@@ -12002,4 +12002,30 @@ STR16 szRebelCommandDirectivesText[] = // TODO.Translate
L"Improving this directive will increase the number of volunteers gained per day.",
};
STR16 szRobotText[] = // TODO: Translate
{
L"The robot's installed weapon cannot be changed.",
L"It is not possible to add attachments to the robot's weapon.",
L"Installed Weapon",
L"Reserve Ammo",
L"Targeting Upgrade",
L"Chassis Upgrade",
L"Utility Upgrade",
L"Storage",
L"No Bonus",
L"The laser bonuses of this item are applied to the robot.",
L"The night- and cave-vision bonuses of this item are applied to the robot.",
L"This kit degrades instead of the robot's weapon.",
L"The robot's cleaning kit was depleted!",
L"Mines adjacent to the robot are automatically flagged.",
L"Periodic X-Ray scans during combat. No batteries required.",
L"The robot has activated an x-ray scan!",
L"The robot can use the radio set.",
L"The robot's chassis is strengthened, giving it better combat performance.",
L"The camouflage bonuses of this item are applied to the robot.",
L"The robot is tougher and takes less damage.",
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //POLISH
+26
View File
@@ -11996,4 +11996,30 @@ STR16 szRebelCommandDirectivesText[] = // TODO.Translate
L"Improving this directive will increase the number of volunteers gained per day.",
};
STR16 szRobotText[] = // TODO: Translate
{
L"The robot's installed weapon cannot be changed.",
L"It is not possible to add attachments to the robot's weapon.",
L"Installed Weapon",
L"Reserve Ammo",
L"Targeting Upgrade",
L"Chassis Upgrade",
L"Utility Upgrade",
L"Storage",
L"No Bonus",
L"The laser bonuses of this item are applied to the robot.",
L"The night- and cave-vision bonuses of this item are applied to the robot.",
L"This kit degrades instead of the robot's weapon.",
L"The robot's cleaning kit was depleted!",
L"Mines adjacent to the robot are automatically flagged.",
L"Periodic X-Ray scans during combat. No batteries required.",
L"The robot has activated an x-ray scan!",
L"The robot can use the radio set.",
L"The robot's chassis is strengthened, giving it better combat performance.",
L"The camouflage bonuses of this item are applied to the robot.",
L"The robot is tougher and takes less damage.",
L"The robot's extra armour plating was destroyed!",
L"The robot gains the benefit of the %s skill trait.",
};
#endif //RUSSIAN