ftp.nice.ch/pub/next/developer/resources/libraries/gamekit_proj.NI.sa.tar.gz#/gamekit_proj/Examples/PacMan/MonsterMovement.h

This is MonsterMovement.h in view mode; [Download] [Up]

// MonsterMovement.h
//
// static data arrays that tell the monsters how to move.
// they are used by various methods in the Monster class.

	static intm fxvec[16] = {
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// no way to go
		{  2,  2,  2,  2,  2,  2,  2,  2 },		// right only
		{ -2, -2, -2, -2, -2, -2, -2, -2 },		// left only
		{ -2,  2,  2, -2,  2, -2, -2,  2 },		// left or right
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// down only
		{  0,  0,  0,  0,  2,  2,  2,  2 },		// down or right
		{ -2,  0,  0, -2,  0, -2, -2, -2 },		// down or left
		{ -2,  0,  0, -2,  2, -2, -2,  2 },		// down, left, or right
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// up only
		{  2,  2,  2,  0,  2,  0,  0,  0 },		// up or right
		{ -2, -2, -2, -2,  0, -2,  0,  0 },		// up or left
		{ -2, -2,  2, -2,  2,  0,  0,  2 },		// up, left, or right
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// up or down
		{  0,  0,  2,  0,  2,  0,  0,  2 },		// up, down, or right
		{ -2,  0,  0, -2,  0,  0,  0,  0 },		// up, down, or left
		{ -2,  0,  0, -2,  2,  0,  0,  2 } };	// any which way

	static intm fyvec[16] = {
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// no way to go
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// right only
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// left only
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// left or right
		{ -2, -2, -2, -2, -2, -2, -2, -2 },		// down only
		{ -2, -2, -2, -2,  0,  0,  0,  0 },		// down or right
		{  0, -2, -2,  0, -2,  0,  0,  0 },		// down or left
		{  0, -2, -2,  0,  0,  0,  0,  0 },		// down, left, or right
		{  2,  2,  2,  2,  2,  2,  2,  2 },		// up only
		{  0,  0,  0,  2,  0,  2,  2,  2 },		// up or right
		{  0,  0,  0,  0,  2,  0,  2,  2 },		// up or left
		{  0,  0,  0,  0,  0,  2,  2,  0 },		// up, left, or right
		{ -2, -2, -2,  2, -2,  2,  2,  2 },		// up or down
		{ -2, -2,  0, -2,  0,  2,  2,  0 },		// up, down, or right
		{  0, -2, -2,  0,  2,  2,  2,  2 },		// up, down, or left
		{  0, -2,  2,  0,  0, -2,  2,  0 } };	// any which way

	static intm rxvec[16] = {
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// no way to go
		{  1,  1,  1,  1,  1,  1,  1,  1 },		// right only
		{ -1, -1, -1, -1, -1, -1, -1, -1 },		// left only
		{  1, -1, -1,  1, -1,  1,  1, -1 },		// left or right
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// down only
		{  1,  1,  0,  0,  0,  0,  1,  0 },		// down or right
		{  0, -1, -1,  0,  0,  0, -1, -1 },		// down or left
		{  1,  1, -1,  0,  0,  1,  1, -1 },		// down, left, or right
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// up only
		{  1,  1,  0,  0,  0,  1,  1,  0 },		// up or right
		{  0, -1, -1,  0,  0,  0, -1, -1 },		// up or left
		{  1, -1, -1,  0,  0,  0, -1, -1 },		// up, left, or right
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// up or down
		{  0,  1,  0,  0,  0,  1,  1,  0 },		// up, down, or right
		{  0, -1, -1,  0,  0,  0, -1, -1 },		// up, down, or left
		{  1, -1,  0,  0,  0,  0,  1, -1 } };	// any which way

   static intm ryvec[16] = {
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// no way to go
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// right only
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// left only
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// left or right
		{ -1, -1, -1, -1, -1, -1, -1, -1 },		// down only
		{  0,  0, -1, -1, -1, -1,  0, -1 },		// down or right
		{ -1,  0,  0, -1, -1, -1,  0,  0 },		// down or left
		{  0,  0,  0, -1, -1,  0,  0,  0 },		// down, left, or right
		{  1,  1,  1,  1,  1,  1,  1,  1 },		// up only
		{  0,  0,  1,  1,  1,  0,  0,  1 },		// up or right
		{  1,  0,  0,  1,  1,  1,  0,  0 },		// up or left
		{  0,  0,  0,  1,  1,  1,  0,  0 },		// up, left, or right
		{  1,  1,  1,  1, -1, -1, -1, -1 },		// up or down
		{  1,  0,  1,  1, -1,  0,  0, -1 },		// up, down, or right
		{  1,  0,  0, -1,  1, -1,  0,  0 },		// up, down, or left
		{  0,  0,  1,  1, -1, -1,  0,  0 } };	// any which way

	static intm pxvec[16] = {
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// no way to go
		{  4,  4,  4,  4,  4,  4,  4,  4 },		// right only
		{ -4, -4, -4, -4, -4, -4, -4, -4 },		// left only
		{ -4,  4,  4, -4,  4, -4, -4,  4 },		// left or right
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// down only
		{  0,  0,  0,  0,  4,  4,  4,  4 },		// down or right
		{  0,  0,  0, -4,  0, -4, -4, -4 },		// down or left
		{ -4,  0,  0, -4,  4, -4, -4,  4 },		// down, left, or right
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// up only
		{  0,  4,  4,  0,  4,  0,  0,  0 },		// up or right
		{ -4, -4, -4, -4,  0, -4,  0,  0 },		// up or left
		{ -4, -4,  4, -4,  4,  0,  0,  4 },		// up, left, or right
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// up or down
		{  0,  0,  4,  0,  4,  0,  0,  4 },		// up, down, or right
		{ -4,  0,  0, -4,  0, -4,  0,  0 },		// up, down, or left
		{  0,  0,  4, -4,  4, -4,  0,  0 } };	// any which way

	static intm pyvec[16] = {
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// no way to go
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// right only
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// left only
		{  0,  0,  0,  0,  0,  0,  0,  0 },		// left or right
		{ -4, -4, -4, -4, -4, -4, -4, -4 },		// down only
		{ -4, -4, -4, -4,  0,  0,  0,  0 },		// down or right
		{ -4, -4, -4,  0, -4,  0,  0,  0 },		// down or left
		{  0, -4, -4,  0,  0,  0,  0,  0 },		// down, left, or right
		{  4,  4,  4,  4,  4,  4,  4,  4 },		// up only
		{  4,  0,  0,  4,  0,  4,  4,  4 },		// up or right
		{  0,  0,  0,  0,  4,  0,  4,  4 },		// up or left
		{  0,  0,  0,  0,  0,  4,  4,  0 },		// up, left, or right
		{ -4, -4, -4,  4, -4,  4,  4,  4 },		// up or down
		{ -4, -4,  0, -4,  0,  4,  4,  0 },		// up, down, or right
		{ -4, -4, -4,  0,  4,  0,  4,  4 },		// up, down, or left
		{ -4, -4,  0,  0,  0,  0,  4,  4 } };	// any which way

	static intm find[3] = { { 0, 1, 2 }, { 3, 3, 4 }, { 5, 6, 7 } };

// power dot behavior
	static int flash_ticks[] = {
                      13, 13, 8, 4, 1, 13, 8, 4, 1,
                      8, 4, 1, 4, 1, 8, 4, 1,
                      0, 0, 8, 4, 0, 0, 1, 0 };
	static int off_ticks[] = {
                      19, 19, 14, 10, 7, 19, 14, 10, 7,
                      14, 10, 7, 10, 7, 14, 10, 7,
                      1, 1, 14, 10, 1, 1, 7, 1 };

// and that's all the movement data!

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.