--- /dev/null
+//
+// actor_manager.c
+// Super Polarity
+//
+// Created by Ruben Beltran del Rio on 8/14/13.
+// Copyright (c) 2013 Abuguet. All rights reserved.
+//
+
+#include <stdio.h>
+#include "actor_manager.h"
+
+void actorManagerUpdate(ActorManager *this, Uint32 dt) {
+ ActorNode *head = this->actors;
+
+ while (head != NULL) {
+ head->val->update(head->val, dt);
+ head = head->next;
+ }
+}
+
+void actorManagerDraw(ActorManager *this) {
+ ActorNode *head = this->actors;
+
+ while (head != NULL) {
+ head->val->draw(head->val);
+ head = head->next;
+ }
+}
+
+void actorManagerAddActor(ActorManager *this, Actor *actor) {
+ ActorNode *actorNode = malloc(sizeof(ActorNode*));
+ ActorNode **head = &this->actors;
+ ActorNode *temp;
+ actorNode->val = actor;
+ actorNode->next = NULL;
+
+ if (*head == NULL) {
+ *head = actorNode;
+ } else {
+ temp = *head;
+
+ while (temp->next != NULL) {
+ temp = temp->next;
+ }
+ temp->next = actorNode;
+ }
+}
+
+ActorManager* createActorManager () {
+ ActorManager *actorManager = malloc(sizeof(ActorManager*));
+ actorManager->actors = NULL;
+ actorManager->update = actorManagerUpdate;
+ actorManager->draw = actorManagerDraw;
+ actorManager->addActor = actorManagerAddActor;
+
+ return actorManager;
+}
\ No newline at end of file