There are two mistakes:

char WEAPON_name; => I suppose you mean char WEAPON_name[..];

FIRE_WEAPONS OBJ_pistol = {..} => FIRE_WEAPONS* OBJ_pistol = {..}

You can create initialized struct pointers, but not initialized structs.