src/engine.cpp
branchnoai
changeset 10355 ee4b5f7a5bf2
parent 10297 433b21fd002c
child 10455 22c441f5adf9
equal deleted inserted replaced
10353:adf5a495f0e2 10355:ee4b5f7a5bf2
    13 #include "variables.h"
    13 #include "variables.h"
    14 #include "train.h"
    14 #include "train.h"
    15 #include "aircraft.h"
    15 #include "aircraft.h"
    16 #include "newgrf_cargo.h"
    16 #include "newgrf_cargo.h"
    17 #include "group.h"
    17 #include "group.h"
    18 #include "misc/autoptr.hpp"
       
    19 #include "strings_func.h"
    18 #include "strings_func.h"
    20 #include "gfx_func.h"
    19 #include "gfx_func.h"
    21 #include "functions.h"
    20 #include "functions.h"
    22 #include "window_func.h"
    21 #include "window_func.h"
    23 #include "date_func.h"
    22 #include "date_func.h"
   511 	if (er != NULL) {
   510 	if (er != NULL) {
   512 		if (flags & DC_EXEC) er->to = new_engine;
   511 		if (flags & DC_EXEC) er->to = new_engine;
   513 		return CommandCost();
   512 		return CommandCost();
   514 	}
   513 	}
   515 
   514 
   516 	er = new EngineRenew(old_engine, new_engine);
   515 	if (!EngineRenew::CanAllocateItem()) return CMD_ERROR;
   517 	if (er == NULL) return CMD_ERROR;
       
   518 	AutoPtrT<EngineRenew> er_auto_delete = er;
       
   519 
       
   520 
   516 
   521 	if (flags & DC_EXEC) {
   517 	if (flags & DC_EXEC) {
       
   518 		er = new EngineRenew(old_engine, new_engine);
   522 		er->group_id = group;
   519 		er->group_id = group;
   523 
   520 
   524 		/* Insert before the first element */
   521 		/* Insert before the first element */
   525 		er->next = (EngineRenew *)(*erl);
   522 		er->next = (EngineRenew *)(*erl);
   526 		*erl = (EngineRenewList)er;
   523 		*erl = (EngineRenewList)er;
   527 
       
   528 		er_auto_delete.Detach();
       
   529 	}
   524 	}
   530 
   525 
   531 	return CommandCost();
   526 	return CommandCost();
   532 }
   527 }
   533 
   528