When converting object_rw to object, recompute gun points for CT_CNTRLCEN as they are now part of object and not globals anymore

This commit is contained in:
zico 2013-08-03 12:53:56 +02:00
parent cf31923266
commit df5d4196e7
3 changed files with 19 additions and 0 deletions

View file

@ -75,6 +75,7 @@ extern void do_controlcen_frame(object *obj);
// Initialize control center for a level.
// Call when a new level is started.
extern void init_controlcen_for_level(void);
extern void calc_controlcen_gun_point(reactor *reactor, object *obj,int gun_num);
extern void do_controlcen_destroyed_stuff(object *objp);
extern void do_controlcen_dead_frame(void);

View file

@ -4086,6 +4086,15 @@ void multi_object_rw_to_object(object_rw *obj_rw, object *obj)
case CT_POWERUP:
obj->ctype.powerup_info.count = obj_rw->ctype.powerup_info.count;
break;
case CT_CNTRLCEN:
{
// gun points of reactor now part of the object but of course not saved in object_rw. Let's just recompute them.
int i = 0;
reactor *reactor = get_reactor_definition(obj->id);
for (i=0; i<reactor->n_guns; i++)
calc_controlcen_gun_point(reactor, obj, i);
break;
}
}
switch (obj->render_type)

View file

@ -359,6 +359,15 @@ void state_object_rw_to_object(object_rw *obj_rw, object *obj)
case CT_POWERUP:
obj->ctype.powerup_info.count = obj_rw->ctype.powerup_info.count;
break;
case CT_CNTRLCEN:
{
// gun points of reactor now part of the object but of course not saved in object_rw and overwritten due to reset_objects(). Let's just recompute them.
int i = 0;
reactor *reactor = get_reactor_definition(obj->id);
for (i=0; i<reactor->n_guns; i++)
calc_controlcen_gun_point(reactor, obj, i);
break;
}
}
switch (obj->render_type)