Dumb-ways-to-memorize
2D game
mymath.c
Go to the documentation of this file.
1 #include "globals.h"
2 #include <string.h>
3 #include <stdlib.h>
4 
5 int LargestDivisor(int num)
6 {
7  int i, root, hit;
8  hit = 0;
9  root = num>>1;
10  for(i = 0; i < root; i++)
11  {
12  if(!num%i)
13  {
14  hit = i;
15  }
16  }
17  return hit;
18 }
19 
20 void Vec2Add(vec2_t *A, vec2_t *B, vec2_t *C)
21 {
22  if(!A || !B || !C)
23  {
24  return;
25  }
26  C->x = A->x + B->x;
27  C->y = A->y + B->y;
28 }
29 
30 
31 void Vec2Subtract(vec2_t *First, vec2_t *Second, vec2_t *C)
32 {
33  if(!First || !Second || !C)
34  {
35  return;
36  }
37  C->x = First->x - Second->x;
38  C->y = First->y - Second->y;
39 }
40 
41 void Vec2MultiplyScalar(vec2_t* A, int B, vec2_t* C)
42 {
43  if(!A || !C)
44  {
45  return;
46  }
47  (*C).x = A->x * B;
48  (*C).y = A->y * B;
49 }
50 
51 int CountMem(void *src, int size_type)
52 {
53  int i, offset;
54  int *source = (int*)src;
55  if(source == NULL)
56  return 0;
57  i = 0; offset = size_type/sizeof(int);
58  while( *(source) )
59  {
60  source += offset;
61  i++;
62  }
63  return i;
64 }
65 
66 int AllocateDynamic(void **dst, void *src, int size_type, int size)
67 {
68  int offset = size_type/sizeof(int);
69  if(!dst) return -1;
70  *dst = realloc(*dst, size_type*(size+1));
71  if(!*dst) return -1;
72  src ? memcpy((int*)(*dst)+(size-1)*offset, src, size_type) : memset((int*)(*dst)+(size-1)*offset, 0, size_type);
73  memset((int*)(*dst)+(size)*offset, 0, size_type);
74  return 0;
75 }
76 
77 int CompareMemToMemArray(void *mem, void *mem_array, int size_type, int size_array)
78 {
79  int i, offset;
80  int *memory = (int*) mem_array;
81  offset = size_type;
82  for(i = 0; i < size_array; i++)
83  {
84  if(!memcmp(mem, memory, size_type))
85  {
86  return 0;
87  }
88  memory += offset;
89  }
90  return -1;
91 }
void Vec2Subtract(vec2_t *First, vec2_t *Second, vec2_t *C)
Definition: mymath.c:31
int y
Definition: globals.h:22
int CompareMemToMemArray(void *mem, void *mem_array, int size_type, int size_array)
Definition: mymath.c:77
int CountMem(void *src, int size_type)
Definition: mymath.c:51
void Vec2Add(vec2_t *A, vec2_t *B, vec2_t *C)
Definition: mymath.c:20
int LargestDivisor(int num)
Definition: mymath.c:5
int AllocateDynamic(void **dst, void *src, int size_type, int size)
Definition: mymath.c:66
int x
Definition: globals.h:21
void Vec2MultiplyScalar(vec2_t *A, int B, vec2_t *C)
Definition: mymath.c:41
Definition: globals.h:19