59@interface Entity (OOPrivate)
103 [UNIVERSE ensureEntityReallyRemoved:
self];
121 return [
NSString stringWithFormat:@"position: %@ scanClass: %@ status: %@", HPVectorDescription([
self position]), OOStringFromScanClass([
self scanClass]), OOStringFromEntityStatus([
self status])];
216 NSUInteger mySessionID = [
self sessionID];
217 NSUInteger currentSessionID = [UNIVERSE sessionID];
218 if (
EXPECT_NOT(mySessionID != currentSessionID))
220 OOLogERR(
@"entity.invalidSession",
@"Entity %@ from session %lu cannot be added to universe in session %lu. This is an internal error, please report it.", [
self shortDescription], mySessionID, currentSessionID);
279 [UNIVERSE debugDumpEntities];
326 [UNIVERSE debugDumpEntities];
345 while ((n--)&&(check))
350 if ((check)||(n > 0))
358 while ((n--)&&(check)) check = check->
x_previous;
359 if ((check)||(n > 0))
367 while ((n--)&&(check))
372 if ((check)||(n > 0))
380 while ((n--)&&(check)) check = check->
y_previous;
381 if ((check)||(n > 0))
389 while ((n--)&&(check))
394 if ((check)||(n > 0))
402 while ((n--)&&(check)) check = check->
z_previous;
403 if ((check)||(n > 0))
426 [UNIVERSE debugDumpEntities];
448 x_next->x_previous =
self;
471 y_next->y_previous =
self;
494 z_next->z_previous =
self;
507 [UNIVERSE debugDumpEntities];
529 OOLog(
@"general.error.subclassResponsibility.Entity-warnAboutHostiles",
@"%@",
@"***** Entity does nothing in warnAboutHostiles");
564- (void) setThrowSparks:(BOOL) value
592 if ([
owner isShipWithSubEntityShip:
self])
return owner;
643 return HPVectorToVector(HPvector_subtract([entity
position], [
self position]));
647- (void) setPosition:(HPVector) posn
675- (HPVector) absolutePositionForSubentityOffset:(HPVector) offset
681 while (father !=
nil && father != last)
704- (NSComparisonResult) compareZeroDistance:(
Entity *)otherEntity
707 return NSOrderedAscending;
709 return NSOrderedDescending;
725- (void) setOrientation:(Quaternion) quat
744- (void) setNormalOrientation:(Quaternion) quat
757- (void) setVelocity:(Vector) vel
781- (void) setDistanceTravelled: (GLfloat) value
811- (void) setEnergy:(GLfloat) amount
823- (void) setMaxEnergy:(GLfloat)amount
835- (void) applyRoll:(GLfloat) roll andClimb:(GLfloat) climb
837 if ((roll == 0.0)&&(climb == 0.0)&&(!
hasRotated))
849- (void) applyRoll:(GLfloat) roll climb:(GLfloat) climb andYaw:(GLfloat) yaw
851 if ((roll == 0.0)&&(climb == 0.0)&&(yaw == 0.0)&&(!
hasRotated))
865- (void) moveForward:(
double)amount
888 return OOMatrixHPTranslate(result,
position);
895 return OOMatrixHPTranslate(result,
position);
917- (void) setCollisionRadius:(GLfloat) amount
931 if (
_status != STATUS_COCKPIT_DISPLAY)
953 if ([
self status] != STATUS_COCKPIT_DISPLAY)
971- (BOOL) checkCloseCollisionWith:(
Entity *)other
984- (void) drawImmediate:(
bool)immediate translucent:(
bool)translucent
990- (void) takeEnergyDamage:(
double) amount from:(
Entity *) ent becauseOf:(
Entity *) other weaponIdentifier:(NSString *)weaponIdentifier
1000 OOLog(
@"dumpState",
@"State for %@:",
self);
1007 @catch (
id exception) {}
1015 NSMutableArray *flags =
nil;
1016 NSString *flagsString =
nil;
1025 OOLog(
@"dumpState.entity",
@"Position: %@", HPVectorDescription(
position));
1026 OOLog(
@"dumpState.entity",
@"Orientation: %@", QuaternionDescription(
orientation));
1029 OOLog(
@"dumpState.entity",
@"Mass: %g",
mass);
1030 OOLog(
@"dumpState.entity",
@"Owner: %@",
owner);
1033 #define ADD_FLAG_IF_SET(x) if (x) { [flags addObject:@#x]; }
1043 flagsString = [
flags count] ? [
flags componentsJoinedByString:@", "] : (NSString *)
@"none";
1044 OOLog(
@"dumpState.entity",
@"Flags: %@", flagsString);
1052 OOLog(
@"entity.bug",
@"%s called for non-ship entity %p by %p", __PRETTY_FUNCTION__,
self, sub);
1059 return [UNIVERSE getTime];
1090 if (result !=
nil) result = [
NSString stringWithFormat:@"%@ %@", NSStringFromClass([
self class]), result];
1091 else result = [
self description];
1101 result = [
result stringByAppendingFormat:@" range: %g (visible: %@)", HPdistance([
self position], [PLAYER position]), [
self isVisible] ? @"yes" : @"no"];
1124 case STATUS_IN_FLIGHT:
1125 case STATUS_DOCKING:
1126 case STATUS_LAUNCHING:
1127 case STATUS_AUTOPILOT_ENGAGED:
1128 case STATUS_WITCHSPACE_COUNTDOWN:
1129 case STATUS_BEING_SCOOPED:
uint32_t gLiveEntityCount
size_t gTotalEntityMemory
NSString * OOStringFromScanClass(OOScanClass scanClass) CONST_FUNC
#define ABSOLUTE_NO_DRAW_DISTANCE2
NSString * OOStringFromEntityStatus(OOEntityStatus status) CONST_FUNC
#define ADD_FLAG_IF_SET(x)
static NSString *const kOOLogEntityRemoveFromList
static NSString *const kOOLogEntityRemoveFromListError
static NSString *const kOOLogEntityVerificationError
static NSString *const kOOLogEntityUpdateError
static NSString *const kOOLogEntityAddToList
static NSString *const kOOLogEntityAddToListError
uint32_t gLiveEntityCount
size_t gTotalEntityMemory
const HPVector kZeroHPVector
void OOLogPushIndent(void)
#define OOLogERR(class, format,...)
void OOLogPopIndent(void)
BOOL OOLogWillDisplayMessagesInClass(NSString *inMessageClass)
#define OOLogGenericSubclassResponsibility()
#define OOLog(class, format,...)
HPVector OOHPVectorMultiplyMatrix(HPVector v, OOMatrix m)
const OOMatrix kIdentityMatrix
OOMatrix OOMatrixForQuaternionRotation(Quaternion orientation)
void quaternion_rotate_about_x(Quaternion *quat, OOScalar angle)
HPVector HPvector_forward_from_quaternion(Quaternion quat)
void quaternion_rotate_about_z(Quaternion *quat, OOScalar angle)
const Quaternion kIdentityQuaternion
void quaternion_rotate_about_y(Quaternion *quat, OOScalar angle)
unsigned isImmuneToBreakPatternHide
BOOL validForAddToUniverse()
void wasAddedToUniverse()
OOColor * atmosphereFogging
void removeFromLinkedLists()
GLfloat timeElapsedSinceSpawn()
CollisionRegion * collisionRegion
OOUniversalID universalID
HPVector absolutePositionForSubentity()
NSMutableArray * collisionArray()
NSMutableArray * collidingEntities
NSString * descriptionForObjDumpBasic()
GLfloat cameraRangeFront()
void updateCameraRelativePosition()
void setOrientation:(Quaternion quat)
unsigned collisionTestFilter
GLfloat collisionRadius()
void setOwner:(Entity *ent)
void wasRemovedFromUniverse()
void orientationChanged()
Vector cameraRelativePosition
GLfloat cam_zero_distance
GLfloat distanceTravelled
OOMatrix transformationMatrix()
OOMatrix drawTransformationMatrix()
NSString * descriptionComponents()
ShipEntity * rootShipEntity()
id< OOWeakReferenceSupport > superShaderBindingTarget()
HPVector absolutePositionForSubentityOffset:(HPVector offset)
GLfloat cameraRangeBack()
Quaternion lastOrientation
NSString * descriptionForObjDump()
OOMatrix rotationMatrix()
Quaternion normalOrientation()
ShipEntity * parentEntity()
Vector relativePosition()
void setStatus:(OOEntityStatus stat)
void applyVelocity:(OOTimeDelta delta_t)
double findCollisionRadius()
OOMatrix drawRotationMatrix()
OOColor * colorWithRed:green:blue:alpha:(float red,[green] float green,[blue] float blue,[alpha] float alpha)
id weakRefUnderlyingObject()