To continue this trend......
// object types
struct objtyperec
{
// { The garbage that should not be in this struct starts here:
// used by all objects
char name[100]; // WHY IS THIS HERE? WHY IS THIS NOT A POINTER? That's 100 BYTES per structure you're forcing a fetch on.
int wt,isliquid, // nice naming. Totally useless. Why isn't isLiquid a boolean?
// used by all weapons.
iswpn,ishandwpn,dmg,wpnskill; // Random. Again, booleans? Or a bitset? Or a flags variable?
// used by missiles
int rad; // If it's used by the missiles, why is it here?
float missilespeed; // ^^^^^^^^^^^^^^^^
// used by projectile launchers
int ammotype, // If it's used by the projectiles, why is it here?
// used by foods
foodboost,foodmoodboost, // random, no type specified? Using , and newlines is A BAD IDEA.
spoilchance, // dice(10000) // Here for what reason?
spoilrate, // ^
// used for finding and making objects
// Regarding the comment below... WHAT? TIME IN FRAMES? Don't track time by frames.
// time in frames between findchecks / time in frames to make obj
findtime, // Why is this here?
// WHAT?
// dice(10000) chance per findcheck / dice(10000) chance to make obj
findchance, // ... more garbage that doesn't belong here
// skill that improves from finding / skill that improves from making
findskill, // ... more garbage that doesn't belong here
//used for cooking
// ... more garbage that doesn't belong here
fruit_reqd,meat_reqd,water_reqd,spices_reqd,fruitjuice_reqd,vegetables_reqd,nuts_reqd,grain_reqd,qtycooked,
// used for making objects
// ... more garbage that doesn't belong here
numskills,numparts,numtools,skill[10],xp[10],part[10],partqty[10],tool[10],toolqty[10],
// used for fishing
// ... more garbage that doesn't belong here
fishingbonus,
// used for fixing stuff
// ... more garbage that doesn't belong here
canfix, // ... more garbage that doesn't belong here
numASB, // # of additional skills boosted (above and beyond findskill)
ASB[10], // list of additional skilltypes boosted
value, // trade value. one unit of water = trade value of 1.
taking_angers_god,
god_angered,
herbs_reqd;
requirementsrec r; // } and ends here.
Zdrawinfo fix, // rotation and translation adjustments for 3rd person attack animations
dinfo; // drawing info for the object: type (mesh, model, etc), meshID & texID -or- modelID, scale.
// ... more garbage that doesn't belong here
int projectile_hit_sfx, // used by projectile objects. what wav to play when a projetile hits a target.
// ... more garbage that doesn't belong here
make_sfx, // what wav to play when the player makes or repairs the object
obj_in_hand; // object to draw in hand during make / find anis
};