/** * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. */ /** * Globals.uci - Unreal Engine global include file for UnrealScript. * Never include this file before the class definition. */ /** * Macro for including the current function name in a string. */ `define Location "("$Name$") `{ClassName}::"$GetStateName()$":"$GetFuncName() `define StaticLocation "`{ClassName}::"$GetStateName()$":"$GetFuncName() /** * Expands to an in-line if statement with a log if debug is defined; * it expands to nothing if debug is not defined. The debug macro takes * its value from the -debug flag on the script compilation command line. * * Also demonstrates how to use backslashes to declare a multi-line macro. * * @param msg the string that should be logged * @param cond [opt] the condition that is used to evaluate whether the message should be written * @param tag [opt] the tag for the log statement */ /* this macro is now added to the hardcoded symbol table, so don't try adding it again `if(`isdefined(debug)) `define Logd(msg,cond,tag)\ `if(`cond)\ if (`cond)\ `{endif}\ log(`msg`if(`tag),`tag`endif) `else `define Logd `endif */ /** * Expands to an in-line if statement with a log unless FINAL_RELEASE is defined; * * * @param msg the string that should be logged * @param cond [opt] the condition that is used to evaluate whether the message should be written * @param tag [opt] the tag for the log statement */ /* this macro is now added to the hardcoded symbol table, so don't try adding it again `if( `isdefined(FINAL_RELEASE) ) `if(`isdefined(FINAL_RELEASE_DEBUGCONSOLE)) `define Log(msg,cond,tag) `if(`cond)if(`cond)`{endif}log(`msg`if(`tag),`tag`endif) `else `define Log(msg,cond,tag) `endif `else `define Log(msg,cond,tag) `if(`cond)if(`cond)`{endif}log(`msg`if(`tag),`tag`endif) `endif */ /** * Macro for easily logging a property or function return value. Expands into a string * containing the name of the expression and value of the expression. * Useful for writing self-documenting log statements. * * @param expr the expression that you want to log * @param name [opt] the text that will immediately preceed the expression's value * in the log statement. if not specified, uses expr. */ `define ShowVar(expr,name) "`if(`name)`name`else`expr`endif:'"$`expr$"'" /** * Macro for easily logging a property or function return value. Expands into a string * containing the name of the expression and value of the expression. * Useful for writing self-documenting log statements. * * @param expr the expression that you want to log * @param name [opt] the text that will immediately preceed the expression's value * in the log statement. if not specified, uses expr. */ `define ShowEnum(enum,expr,name) "`if(`name)`name`else`expr`endif:'"$GetEnum(Enum'`enum',`expr)$"'" /** * Macro for easily logging the name of an object. Useful for logging objects without extraneous * checks against None. * * @param obj the object that you want to log * @param name [opt] the text that will immediately preceed the object's name * in the log statement. if not specified, uses obj. */ `define ShowObj(Obj,name) "`if(`name)`name`else`Obj`endif:"$(`Obj != None ? string(`Obj.Name) : "None") /** * Macro for logging the entry into a function. * * @param msg [opt] any additional text you'd like included in the log message * @param cond [opt] the condition that is used to evaluate whether the message should be written */ `define Entry(msg,cond,tag) `log(">> "$ `Location `if(`msg)@`msg`endif, `if(`cond), `cond`{endif}`if(`tag), `tag`{endif}) /** * Macro for logging the exit from a function. * * @param msg [opt] any additional text you'd like included in the log message * @param cond [opt] the condition that is used to evaluate whether the message should be written */ `define Exit(msg,cond,tag) `log("<< "$ `Location `if(`msg)@`msg`endif, `if(`cond), `cond`{endif}`if(`tag), `tag`{endif}) /** * Macro for logging an IP address * * @param addr the IP address you want to log */ // `define ShowAddr(addr) " Addr:'"$IpAddrToString(`addr)$"'" `define LogFatal(cat,msg) `log("FATAL:" @ `msg,,`cat) `define LogError(cat,msg) `log("ERROR:" @ `msg,,`cat) `define LogWarn(cat,msg) `log("WARN:" @ `msg,,`cat) `define LogInfo(cat,msg) `log("INFO:" @ `msg,,`cat) `define LogDebug(cat,msg) `log("DEBUG:" @ `msg,,`cat) `define LogTrace(cat,msg) `log("TRACE:" @ `msg,,`cat) /** Convenience macro for inventory debugging */ `define LogInv(msg) `log(WorldInfo.TimeSeconds @ "Self:" @ Self @ "Instigator:" @ Instigator @ GetStateName() $ "::" $ GetFuncName() @ `msg,,'Inventory') `define DLog(msg) `Log(WorldInfo.TimeSeconds @ Self @ GetStateName() $ "::" $ GetFuncName() @ `msg) /** This is a slick way to to do thing like: TimeSince(LastFoo) < Delta where the macro makes it a lot easier to read what the code is doing **/ `define TimeSince(Time) (WorldInfo.TimeSeconds - `Time) /** This is used for classes which are object derived and do not have access to WorldInfo so we need to pass in the Actor to get a worldinfo **/ `define TimeSinceEx(Actor,Time) (`Actor.WorldInfo.TimeSeconds - `Time) //@HSL_BEGIN_XBOX `define AddUniqueItemToArray(Array,Item) if (`Array.Find(`Item) == INDEX_NONE) { `Array.AddItem(`Item); } //@igs(jc): Make players and controllers 16 globally for our purposes. If you change these // numbers, make sure you also adjust the ones in UnDingo.h `define MAX_NUM_PLAYERS 24 `define MAX_NUM_CONTROLLERS 24 //@HSL_END_XBOX /** To use WITH_PHYSX directive in uc files. Comment this out when using WITH_NOVODEX **/ `define WITH_PHYSX