Downloads containing CharactersModAnim.asc

Downloads
Name Author Game Mode Rating
TSF with JJ2+ Only: NpcBunnies Cranky Mutator N/A Download file

File preview

// Generated from charactersMod.j2a animation-index data.
// Each entry maps (source set, original animation, frame) to the
// merged animation ID and relative frame offset after jjANIMSET::load().
namespace CharactersModAnim {
	array<int> SetOffsets = {
		0, 18, 25, 32, 39, 43, -1, 44,
		49, 54, 60, 66
	};

	array<int> AnimCounts = {
		18, 7, 7, 7, 4, 1, 0, 5,
		5, 6, 6, 7
	};

	array<int> MergedAnims = {
		0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0,
		0
	};

	array<int> StartFrames = {
		0, 10, 47, 84, 121, 158, 195, 232,
		269, 306, 343, 355, 367, 368, 369, 406,
		443, 444, 0, 5, 45, 65, 80, 140,
		150, 0, 25, 65, 85, 100, 160, 170,
		0, 32, 64, 96, 108, 160, 168, 0,
		2, 10, 18, 0, 0, 25, 65, 85,
		100, 0, 25, 65, 85, 100, 0, 50,
		110, 135, 145, 155, 0, 5, 35, 55,
		60, 70, 0, 20, 60, 100, 105, 145,
		170
	};

	array<int> FrameCounts = {
		10, 37, 37, 37, 37, 37, 37, 37,
		37, 37, 12, 12, 1, 1, 37, 37,
		1, 1, 5, 40, 20, 15, 60, 10,
		10, 25, 40, 20, 15, 60, 10, 10,
		32, 32, 32, 12, 52, 8, 8, 2,
		8, 8, 14, 32, 25, 40, 20, 15,
		15, 25, 40, 20, 15, 15, 50, 60,
		25, 10, 10, 30, 5, 30, 20, 5,
		10, 10, 20, 40, 40, 5, 40, 25,
		40
	};

	int Index(int sourceSet, int originalAnim) {
		if(sourceSet < 0 || sourceSet >= int(SetOffsets.length))
			return -1;
		if(originalAnim < 0 || originalAnim >= AnimCounts[sourceSet])
			return -1;
		return SetOffsets[sourceSet] + originalAnim;
	}

	int AnimCount(int sourceSet) {
		if(sourceSet < 0 || sourceSet >= int(AnimCounts.length))
			return 0;
		return AnimCounts[sourceSet];
	}

	int MergedAnim(int sourceSet, int originalAnim) {
		int index = Index(sourceSet, originalAnim);
		return index < 0 ? 0 : MergedAnims[index];
	}

	int StartFrame(int sourceSet, int originalAnim) {
		int index = Index(sourceSet, originalAnim);
		return index < 0 ? 0 : StartFrames[index];
	}

	int FrameCount(int sourceSet, int originalAnim) {
		int index = Index(sourceSet, originalAnim);
		return index < 0 ? 1 : FrameCounts[index];
	}

	int Frame(int sourceSet, int originalAnim, int frameID) {
		int index = Index(sourceSet, originalAnim);
		if(index < 0)
			return frameID;
		int frameCount = FrameCounts[index];
		if(frameCount <= 0)
			return StartFrames[index];
		return StartFrames[index] + frameID % frameCount;
	}
}