I agree that would indeed make sense.But I believe damage and upgrades are attributes on the player, whereas cabin and quarterdeck are attributes on the ship model. So changing ship model by repainting should change the cabin and quarterdeck to those of the new model.

I'm not sure if repainting will work, which is why I also gave the console line.![]()

More generic approach would in PROGRAM\console.c find:
Code:
// Case 0 = Enable reload (useful when you get stuck on boarding) + Set player type (if you cannot move anymore)
switch(0) // Case 1 = Various test and cheat codes
{ // Case 2 = Location coordinate information
case 1: // Case 3 = Automatic instant cheats in port
// Case 4 = Instant teleport to Hendrick Vanderdecken
// Give ship
// ------------------
/* for (i = 0; i < COMPANION_MAX; i++) {
limit = GetCompanionIndex(PChar, i);
if (limit < 0) continue;
ch = GetCharacter(limit);
GiveShip2Character(ch,ch.ship.type,ch.ship.name,-1,ch.ship.stats.nation,true,true);
}*/
Code:
// Case 0 = Enable reload (useful when you get stuck on boarding) + Set player type (if you cannot move anymore)
switch(1) // Case 1 = Various test and cheat codes
{ // Case 2 = Location coordinate information
case 1: // Case 3 = Automatic instant cheats in port
// Case 4 = Instant teleport to Hendrick Vanderdecken
// Give ship
// ------------------
for (i = 0; i < COMPANION_MAX; i++) {
limit = GetCompanionIndex(PChar, i);
if (limit < 0) continue;
ch = GetCharacter(limit);
GiveShip2Character(ch,ch.ship.type,ch.ship.name,-1,ch.ship.stats.nation,true,true);
}
I once considered adding that code to Reinit.c to save us this extra step.
But after thinking about it, I decided to not do that as you may be using Reinit for a different reason than updating ship stats.