[N/A] Models & Inheritance bug
Posted: Wed Feb 11, 2009 8:00
Okay, as I don't understand why this is happening and as the DECORATE code is set up correctly, I suspect that there is a bug with the code. But let's try to explain the problem with an example:
I have 4 different actors, each of them have a model attached via MODELDEF, for example "CarBlue", "CarYellow", "CarBlue_notires", "CarRead_notires".
Now, the "CarBlue" actor is fully set up with all DECORATE, the "CarYellow" inherits from the "CarBlue" and has a different Death state. In this death state, both actors disappear and spawn a new actor via A_SpawnItemEx, in this case "CarBlue" spawns "CarBlue_notires" and "CarYellow" spawns "CarYellow_notires" where the "CarYellow_notires" also inherits completely from the "CarBlue_notires" without changing anything.
Next to that, the MODELDEF gives a complete model definition for all the actors, the only difference for each is the skin gfx applied.
So I have 4 actors now, each with a different model skin. When I launch GZDoom and spawn each of them via "summon", everything works fine. There are 4 models with 4 different skins, no problem.
The problem occurs when I summon the main actors "CarBlue" and "CarYellow" and kill them: "CarBlue" perfectly spawns "CarBlue_notires" in its death state and everything works as intended. But "CarYellow" (the one that inherits from "CarBlue") spawns the "CarBlue_notires" actor although its death state clearly says, that it should spawn "CarYellow_notires" (which inherits from "CarBlue_notires"). So, everytime, you destroy the blue car, you get a yellow car instead although the DECORATE is set up properly.
I have no idea what's wrong here. Maybe someone else has experienced this?
BTW, GrafZahl, I just sent you the demo map that the problem occurs with, I just didn't want to post it here as these files are not meant for public yet.
I have 4 different actors, each of them have a model attached via MODELDEF, for example "CarBlue", "CarYellow", "CarBlue_notires", "CarRead_notires".
Now, the "CarBlue" actor is fully set up with all DECORATE, the "CarYellow" inherits from the "CarBlue" and has a different Death state. In this death state, both actors disappear and spawn a new actor via A_SpawnItemEx, in this case "CarBlue" spawns "CarBlue_notires" and "CarYellow" spawns "CarYellow_notires" where the "CarYellow_notires" also inherits completely from the "CarBlue_notires" without changing anything.
Next to that, the MODELDEF gives a complete model definition for all the actors, the only difference for each is the skin gfx applied.
So I have 4 actors now, each with a different model skin. When I launch GZDoom and spawn each of them via "summon", everything works fine. There are 4 models with 4 different skins, no problem.
The problem occurs when I summon the main actors "CarBlue" and "CarYellow" and kill them: "CarBlue" perfectly spawns "CarBlue_notires" in its death state and everything works as intended. But "CarYellow" (the one that inherits from "CarBlue") spawns the "CarBlue_notires" actor although its death state clearly says, that it should spawn "CarYellow_notires" (which inherits from "CarBlue_notires"). So, everytime, you destroy the blue car, you get a yellow car instead although the DECORATE is set up properly.
I have no idea what's wrong here. Maybe someone else has experienced this?
BTW, GrafZahl, I just sent you the demo map that the problem occurs with, I just didn't want to post it here as these files are not meant for public yet.