Das ganze hat eigendlich nur mit dem Speicher zu tun,
in "int" kannst du Zahlen von 32.768 bis 32.767 darstellen.
und ohne Vorzeichen bis 64000~.
Uhm, nein. Ein int bietet 4 byte Speicher, sprich 32 bits an. Mit Vorzeichen (sprich das most significant bit dient als Vorzeichen) kannst du maximal bis 2^32-1 darstellen was exakt der Zahl 2147483647 entspricht (natürlich von -2147483647 bis +2147483647, da ein bit das Vorzeichen hält).
Ohne Vorzeichen kannst du sogar bis zur 2^32 darstellen, oder anders ausgedrückt: 4294967295.
Aber, Lite-C ist nicht in der Lage über dem Maximum von signed ints darzustellen (außer bei pointern), sprich auch ein unsigned int kann maximal 2147483647 darstellen.
Allerdings gibt es sehr wohl einen Datentypen der deine ~64000 speichern kannst (oder um genau zu sein, 2^16 = 65535). Wie in der Klammer bereits angedeutet geht es um einen 16 bit typen (2 bytes), dieser trägt den schönen Namen short.
Nachtrag: Es ist nicht nur unsauber falsche Datentypen anzugeben, aber du brichst damit auch die komplette Hilfe die der ein C Compiler geben kann da du vom Konzept der statischen Typen weggehst (jeder Datentyp in C ist statisch) und somit eigentlich ganz klar gegen die Regeln verstösst und den Code unsicher machst (ein echter C compiler liefert dir in dem Fall normalerweise eine Fehlermeldung und hört mit dem kompilieren auf)
Zu der letzten Frage von Otter, ich nehme mal an das es die Schockwellen in die selbe Richtung zeigen sollen wie das Projektil beim Aufschlag auf den Körper. Was im Code dann so aussieht:
vec_set(schockwellen.pan, projektil.pan);