Let me just assume that you've got an inventory that only lets you have one particular set of equipment at a time.
If that is the case, why bother writing variables when you could write a character string that contains the current information?
Here's what I mean:
Let's take your example, and make it into a single string for maces and armor types.
//maces
string spikedmaces = "spiked"; // s
string bronzemaces = "bronze";// b
string ironmaces = "iron"; //i
string silvermaces = "silver"; //a
string icemaces = "ice";// c
string firemaces = "fire";//f
string goldmaces = "gold";//g
string diamondmaces = "diamond";//d
//armor
string spikedarmor = "spiked";//s
string bronzearmor = "bronze";//b
string ironarmor = "iron"; //i
string silverarmor = "silver"; //a
string icearmor = "ice"; //c
string firearmor = "fire";//f
string goldarmor = "gold";//g
string dimondarmor = "diamond";//d
Okay. Those comments are the character representations for those items.
Now:
char equip[2]; //Character equipment array. 0 is weapon; 1 is armor
Suppose you're blinged out with a diamond mace and gold armor. When you want to save, you do the following:
equip[0] = 'd'; //thus making your weapon a diamond mace
equip[1] = 'g';//this is your golden armor
And you save the equip array.
When you load the game, you then parse the input information. Based on the character contents of the string, you can equip yourself without storing huge numbers of variables.