typedef by itself allows one to use a different name for a common var type. For example, you could do something like this:
typedef int OOBERint;
And then you can create OOBERint's (which are just int's with a new name):
OOBERint x = 5;
"typedef struct" is similar to "typdef", except it is used for user-defined data types. For example:
struct Data
{
int x;
int y;
};
In c, to create a variable of this type, you would use this:
struct Data d;
However, if you didn't want to have to keep typing "struct", the following simplifies things a bit:
struct data
{
int x;
int y;
};
typedef struct data Data;
Data d;
Or even:
typedef struct data
{
int x;
int y;
} Data;
Data d;
So for your example, it looks like the developer has created a data type he wants to reference as "Animation" rather than "struct animation" (i.e. less typing).