Changeset 575

Show
Ignore:
Timestamp:
05/25/08 07:33:24 (8 months ago)
Author:
LeoD
Message:

unit ignored object right click order -> fallback to map right click order

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/defend/game/Game.d

    r574 r575  
    127127                    info.seed); 
    128128 
    129         // Initialize graphics 
    130         graphics = new Graphics; 
    131         graphics.init(gameObjects); 
    132  
    133129        // Call the requested map generators 
    134130        logger.info("generating map"); 
     
    263259        logger.info("communication process finished"); 
    264260 
     261        // Initialize graphics 
     262        graphics = new Graphics; 
     263        graphics.init(gameObjects); 
     264 
    265265        // Move the camera to the first object we find 
    266266        foreach(object; gameObjects) 
  • trunk/src/defend/game/hud/Mouse.d

    r570 r575  
    379379                { 
    380380                    gameObjects.order(gameObjects.gateway, selection, 
    381                                       OrderObjectRightClick(target.id)); 
     381                                      OrderObjectRightClick(target.id), 
     382                                       
     383                                      (OrderError error, GameObject[] objects) 
     384                                      { 
     385                                          // fallback to map right click 
     386                                          if(error == OrderError.Ignored) 
     387                                          { 
     388                                              gameObjects.order(gameObjects.gateway, objects, 
     389                                                                OrderMapRightClick(mapPos.x, mapPos.y)); 
     390                                          } 
     391                                      }); 
    382392                } 
    383393            } 
  • trunk/src/defend/sim/Core.d

    r573 r575  
    12511251 
    12521252    // Send an order 
    1253     void order(T)(Gateway gateway, GameObject[] objects, T order) 
     1253    void order(T)(Gateway gateway, GameObject[] objects, T order, 
     1254                  void delegate(OrderError, GameObject[]) errorCallback = null) 
    12541255    { 
    12551256        if(objects.length > MAX_ORDERED_OBJECTS) 
     
    12681269            assert(slice.length); 
    12691270             
    1270             if(slice[0].typeInfo.checkOrder(slice, &order) == OrderError.Okay) 
     1271            auto error = slice[0].typeInfo.checkOrder(slice, &order); 
     1272             
     1273            if(error == OrderError.Okay) 
    12711274            { 
    12721275                foreach(object; slice) 
     
    12751278            else 
    12761279            { 
    1277                 // TODO: Emit a signal telling that the order isn't valid 
    1278                 logger.trace("invalid order (T = {}), not sending", T.stringof); 
     1280                if(errorCallback) 
     1281                { 
     1282                    errorCallback(error, slice); 
     1283                } 
     1284                else 
     1285                { 
     1286                    // TODO: Emit a signal telling that the order isn't valid 
     1287                    logger.trace("invalid order (T = {}), not sending", T.stringof); 
     1288                } 
    12791289            } 
    12801290        }); 
  • trunk/src/defend/sim/obj/Citizen.d

    r572 r575  
    6060            return OrderError.Okay; 
    6161             
    62         return OrderError.Error
     62        return OrderError.Ignored
    6363    } 
    6464