Alternative voxels for damaged states

Registered by Renegade

Issue #bug:295 is a (suspended) mashup of voxel requests, half of which are silly. However, the suggestion of alternative voxels for damaged units is a good one.

Buildings already have a different image when damaged, as do cyborgs. It would increase the general "credibility" and atmosphere of the game if tanks, ships and aircraft did, too - particularly since they already smoke when damaged, and it does look kind of curious that a visually perfectly fine tank would suddenly start smoking, yet have no dent from the barrage of shells it just endured.

Usage-wise, it should be as simple as
DamagedVoxel=SOMETANK
Where SOMETANK would simply replace the unit's current image data, turret and all.

If it makes no difference in effort, it would probably be wise to implement this as DamagedImage=SOMEGFX for use with infantry or other SHP-based units as well.

##### ADDITIONAL INFORMATION #####
Implementation-wise, there must be a periodic check for damaged state anyway, in order to trigger smoke, sparks and alternative images on tanks and cyborgs.
An implementation could/should be as simple as adding a hook to the end of that and triggering a reload of the object's image data, replacing it with the one specified in the INI.

Given that both NoSpawnAlt=yes and WaterVoxel already do such state-dependent voxel changes, this shouldn't be too hard.

If the check provides enough data, we could think about doing DamagedImage=YELLOWGFX,REDGFX for the different damage states, but simplicity should rule here - if the check only differentiates between damage/no damage, we should go with that. It's unlikely the majority of modders would create three voxels per tank anyway.
Should there be two states, the yellow state should be used if no red state is defined.

Blueprint information

Status:
Not started
Approver:
Renegade
Priority:
Low
Drafter:
Renegade
Direction:
Approved
Assignee:
Renegade
Definition:
Discussion
Series goal:
None
Implementation:
Not started
Milestone target:
None

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.