ObjectRev.h #4

  • //
  • guest/
  • sam_stafford/
  • p4hl/
  • src/
  • dlls/
  • ObjectRev.h
  • View
  • Commits
  • Open Download .zip Download (1 KB)
// ObjectRev.h: interface for the CObjectRev class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_OBJECTREV_H__0A3069DB_6F7D_42AB_822C_5FE5F0C2C934__INCLUDED_)
#define AFX_OBJECTREV_H__0A3069DB_6F7D_42AB_822C_5FE5F0C2C934__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#ifndef ERROR_H
	#include "error.h"
	#define ERROR_H
#endif

#include "FileLogCache.h"
#include "clientluser.h"

#include "extdll.h"
#include "vector.h"
#include "decals.h" 

#ifndef UTIL_H
	#include "util.h" 
#endif

#include "cbase.h"

#include "monsters.h" 
#include "weapons.h" 

#ifndef NO_NODE
	#include "nodes.h" 
#endif

#include "player.h" 

#ifndef MAX_WORLD_SOUNDS
	#include "soundent.h" 
#endif

#include "shake.h" 

#include "gamerules.h"

class CObjectRev : public CBaseEntity  
{
public:
	CObjectRev();
//	virtual ~CObjectRev();
	void Spawn ( );
	void Precache ( );
	void Think ( );

	void Touch(CBaseEntity*);
	void Long (CBasePlayer*);
	void Expand (CBasePlayer*);

	int BeamSprite;

	CBaseEntity* parent;
	StrBuf filerev;
	FileRev* revobj;
	CBaseEntity* from;
	CBaseEntity* next;
	short type;
	short ftype;

	short red;
	short green;
	short blue;
	short bright;
	short ismain;

	bool istext;
};

#endif // !defined(AFX_OBJECTREV_H__0A3069DB_6F7D_42AB_822C_5FE5F0C2C934__INCLUDED_)
# Change User Description Committed
#8 1689 Sam Stafford Integrate 02.1 API and code cleanup to P4HL.
 Lots of work.  Phew.
#7 1450 Sam Stafford Major performance improvement - use one ClientApi connection for all
filelogs.
Improves querying time about tenfold on large requests!

Had to move client->Final() to the constructor to ensure that
connection is cleaned up promptly and doesn't hang things up.
#6 1405 Sam Stafford Phew - this was a big one!

New functionality:
    The rare case in which a revision has multiple parents, due to
    multiple resolves before submit, is now handled properly.  There
    is no limit on the number of "parents" a revision may have.

    Integration lines are now always "weighted" to indicate whether
    they contributed all, some, or none to the target.  For example,
    a "branch" line will be very solid and wide, whereas an "ignore"
    will be thin and faint.

Rearchitecture:
    Now using low-cost structs to keep track of integration information.
    Also being just a little more efficient with scanning through large
    data structures.  Quite a bit of general code bloat trimmed off now
    that some of the kludges are gone.

Possible problems:
    Not sure yet, but it might happen that "duplicate" integration
    pointers will be created, now that it's not a single variable which
    would get overwritten in the event of a duplicate.

to-do:
    Trim off obsolete member variables.  Use more enums and fewer #defs.
#5 1397 Sam Stafford Added CObjectRevArrow struct, the CObjectRev's counterpart to the
FileRevArrow - this is what will end up determining how a laser beam
gets rendered.
#4 1004 Sam Stafford Different file types are now treated differently - the ObjectFiles
have different skins depending on file type of the head rev, and
non-text revisions will not attempt to display their contents when
expanded.

Possible bug: old-style filetypes might be detected wrong (ie "ktext"
instead of "text+k").  I'd have to put in some pretty complex logic to
make it completely foolproof and backwards-compatible.  Right now it just errs
on the side of thinking a file is text if there's any confusion.
#3 1003 Sam Stafford Different file types now displayed differently.
 Also flipped
around the file model so that its text doesn't look backwards
any more.
#2 991 Sam Stafford Tweaks to display of ObjectRevs:
    1) Random variation in their height.  This is intended to make
    overlapping lasers less common.
    2) The "main" revisions are now connected by brighter white beams   
    in order to make it obvious which file is the one we asked about.
#1 937 Sam Stafford Renaming my guest directory to the more conventional
sam_stafford.
//guest/samwise/p4hl/src/dlls/ObjectRev.h
#1 936 Sam Stafford Adding P4HL to the public depot.
 See relnotes.txt for
installation instructions; all relevant files are under
p4hl/dist.

Source code is under p4hl/src in the form of a VC++ project.