ListNode.cpp #1

  • //
  • guest/
  • sam_stafford/
  • p4hl/
  • src/
  • dlls/
  • ListNode.cpp
  • View
  • Commits
  • Open Download .zip Download (2 KB)
// ListNode.cpp: interface and implementation of the ListNode class.
//
/////////////////////////////////////////////////////////////////////////////////

#include "listnode.h"

CBaseEntity* ListList :: EPop()
{
	if (head == NULL) return NULL;
	ListNode* old = head;
	CBaseEntity* value = head->ent;
	if (head->next) head = head->next;
	else 
	{
		head = NULL;
		tail = NULL;
	}
	delete old;
	return value;
}

StrBuf ListList :: SPop()
{
	if (head == NULL) return StrBuf();
	ListNode* old = head;
	StrBuf value = head->buf;
	if (head->next) head = head->next;
	else 
	{
		head = NULL;
		tail = NULL;
	}
	delete old;
	return value;
}

void ListList :: EKill(CBaseEntity* target)
{
	if (head == NULL) return;
	ListNode* seek = head;
	if (seek->ent == target)
	{
		head = seek->next;
		delete seek;
		return;
	}
	ListNode* prev = seek;
	seek = seek->next;
	while (seek != NULL)
	{
		if (seek->ent == target)
		{
			prev->next = seek->next;
			delete seek;
			return;
		}
		prev = seek;
		seek = seek->next;
	}
}


void ListList::Append(CBaseEntity* ent)
{
	if (head == NULL) {
		head = new ListNode(ent);
		tail = head;
	}
	else
	{
		tail->next = new ListNode(ent);
		tail = tail->next;
	}
}

void ListList::Append(StrBuf buf)
{
	if (head == NULL) {
		head = new ListNode(buf);
		tail = head;
	}
	else
	{
		tail->next = new ListNode(buf);
		tail = tail->next;
	}
}

ListList::ListList()
{
	head = NULL;
	tail = NULL;
}

ListList::~ListList()
{
	if (head) head->Clean();
}

ListNode::ListNode()
{
	next = NULL;
}

ListNode::ListNode(CBaseEntity* tent)
{
	ent = tent;
	next = NULL;
}

ListNode::ListNode(StrBuf tbuf)
{
	buf = StrBuf();
	buf.Append(tbuf.Text());
	next = NULL;
}

ListNode::~ListNode()
{

}

void ListNode::Clean()
{
	if(next) next->Clean();
	delete this;
}
# Change User Description Committed
#2 1689 Sam Stafford Integrate 02.1 API and code cleanup to P4HL.
 Lots of work.  Phew.
#1 937 Sam Stafford Renaming my guest directory to the more conventional
sam_stafford.
//guest/samwise/p4hl/src/dlls/ListNode.cpp
#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.