Exemple #1
0
static void AdjustYC(int *yc)
{
	if (currentMission) {
		if (currentMission->objectiveCount)
			AdjustInt(yc, 0,
				  YC_OBJECTIVES +
				  currentMission->objectiveCount - 1, 1);
		else
			AdjustInt(yc, 0, YC_OBJECTIVES, 1);
	} else
		AdjustInt(yc, 0, YC_MISSIONINDEX, 1);
}
Exemple #2
0
void DeleteItem(int index)
{
	int i;

	currentMission->itemCount--;
	for (i = index; i < currentMission->itemCount; i++)
		currentMission->items[i] = currentMission->items[i + 1];
	AdjustInt(&currentMission->itemCount, 0, ITEMS_MAX, 0);
}
Exemple #3
0
void DeleteObjective(int index)
{
	int i;

	currentMission->objectiveCount--;
	for (i = index; i < currentMission->objectiveCount; i++)
		currentMission->objectives[i] =
		    currentMission->objectives[i + 1];
	AdjustInt(&currentMission->objectiveCount, 0, OBJECTIVE_MAX, 0);
}
Exemple #4
0
void DeleteSpecial(int index)
{
	int i;

	currentMission->specialCount--;
	for (i = index; i < currentMission->specialCount; i++)
		currentMission->specials[i] =
		    currentMission->specials[i + 1];
	AdjustInt(&currentMission->specialCount, 0, SPECIAL_MAX, 0);
}
Exemple #5
0
void DeleteCharacter(int index)
{
	int i;

	currentMission->baddieCount--;
	for (i = index; i < currentMission->baddieCount; i++)
		currentMission->baddies[i] =
		    currentMission->baddies[i + 1];
	AdjustInt(&currentMission->baddieCount, 0, BADDIE_MAX, 0);
}
Exemple #6
0
static void AdjustXC(int yc, int *xc)
{
	switch (yc) {
	case YC_APPEARANCE:
		AdjustInt(xc, 0, XC_LEGS, 1);
		break;

	case YC_ATTRIBUTES:
		AdjustInt(xc, 0, XC_DELAY, 1);
		break;

	case YC_FLAGS:
		AdjustInt(xc, 0, XC_SLEEPING, 1);
		break;

	case YC_FLAGS2:
		AdjustInt(xc, 0, XC_AWAKE, 1);
		break;
	}
}
Exemple #7
0
static void DeleteCharacter(TCampaignSetting * setting, int *index)
{
	int i;

	setting->characterCount--;
	for (i = *index; i < setting->characterCount; i++)
		setting->characters[i] = setting->characters[i + 1];
	AdjustInt(&setting->characterCount, 0, 1000, 0);
	if (*index > 0 && *index >= setting->characterCount - 1)
		(*index)--;
}
Exemple #8
0
static void AdjustXC(int yc, int *xc)
{
	switch (yc) {
	case YC_CAMPAIGNTITLE:
		AdjustInt(xc, 0, XC_CAMPAIGNDESC, 1);
		break;

	case YC_MISSIONTITLE:
		AdjustInt(xc, 0, XC_MUSICFILE, 1);
		break;

	case YC_MISSIONPROPS:
		AdjustInt(xc, 0, XC_DENSITY, 1);
		break;

	case YC_MISSIONLOOKS:
		AdjustInt(xc, 0, XC_COLOR4, 1);
		break;

	case YC_CHARACTERS:
		if (currentMission && currentMission->baddieCount)
			AdjustInt(xc, 0, currentMission->baddieCount - 1,
				  1);
		break;

	case YC_SPECIALS:
		if (currentMission && currentMission->specialCount)
			AdjustInt(xc, 0, currentMission->specialCount - 1,
				  1);
		break;

	case YC_ITEMS:
		if (currentMission && currentMission->itemCount)
			AdjustInt(xc, 0, currentMission->itemCount - 1, 1);
		break;

	case YC_WEAPONS:
		AdjustInt(xc, 0, XC_MAXWEAPONS, 1);
		break;

	default:
		if (yc >= YC_OBJECTIVES)
			AdjustInt(xc, 0, XC_FLAGS, 1);
		break;
	}
}
Exemple #9
0
static void AdjustYC(int *yc)
{
	AdjustInt(yc, 0, YC_WEAPON, 1);
}
Exemple #10
0
static void Change(TCampaignSetting * setting, int index, int yc, int xc,
		   int d)
{
	TBadGuy *b;

	if (index < 0 || index >= setting->characterCount)
		return;

	b = &setting->characters[index];
	switch (yc) {
	case YC_APPEARANCE:
		switch (xc) {
		case XC_FACE:
			b->facePic += d;
			AdjustInt(&b->facePic, 0, FACE_COUNT - 1, 1);
			break;

		case XC_SKIN:
			b->skinColor += d;
			AdjustInt(&b->skinColor, 0, SHADE_COUNT - 1, 1);
			break;

		case XC_HAIR:
			b->hairColor += d;
			AdjustInt(&b->hairColor, 0, SHADE_COUNT - 1, 1);
			break;

		case XC_BODY:
			b->bodyColor += d;
			AdjustInt(&b->bodyColor, 0, SHADE_COUNT - 1, 1);
			break;

		case XC_ARMS:
			b->armColor += d;
			AdjustInt(&b->armColor, 0, SHADE_COUNT - 1, 1);
			break;

		case XC_LEGS:
			b->legColor += d;
			AdjustInt(&b->legColor, 0, SHADE_COUNT - 1, 1);
			break;
		}
		break;

	case YC_ATTRIBUTES:
		switch (xc) {
		case XC_SPEED:
			b->speed += d * 64;
			AdjustInt(&b->speed, 128, 512, 0);
			break;

		case XC_HEALTH:
			b->health += d * 10;
			AdjustInt(&b->health, 10, 500, 0);
			break;

		case XC_MOVE:
			b->probabilityToMove += d * 5;
			AdjustInt(&b->probabilityToMove, 0, 100, 0);
			break;

		case XC_TRACK:
			b->probabilityToTrack += d * 5;
			AdjustInt(&b->probabilityToTrack, 0, 100, 0);
			break;

		case XC_SHOOT:
			b->probabilityToShoot += d * 5;
			AdjustInt(&b->probabilityToShoot, 0, 100, 0);
			break;

		case XC_DELAY:
			b->actionDelay += d;
			AdjustInt(&b->actionDelay, 0, 50, 0);
			break;
		}
		break;

	case YC_FLAGS:
		switch (xc) {
		case XC_ASBESTOS:
			b->flags ^= FLAGS_ASBESTOS;
			break;

		case XC_IMMUNITY:
			b->flags ^= FLAGS_IMMUNITY;
			break;

		case XC_SEETHROUGH:
			b->flags ^= FLAGS_SEETHROUGH;
			break;

		case XC_RUNS_AWAY:
			b->flags ^= FLAGS_RUNS_AWAY;
			break;

		case XC_SNEAKY:
			b->flags ^= FLAGS_SNEAKY;
			break;

		case XC_GOOD_GUY:
			b->flags ^= FLAGS_GOOD_GUY;
			break;

		case XC_SLEEPING:
			b->flags ^= FLAGS_SLEEPALWAYS;
			break;
		}
		break;

	case YC_FLAGS2:
		switch (xc) {
		case XC_PRISONER:
			b->flags ^= FLAGS_PRISONER;
			break;

		case XC_INVULNERABLE:
			b->flags ^= FLAGS_INVULNERABLE;
			break;

		case XC_FOLLOWER:
			b->flags ^= FLAGS_FOLLOWER;
			break;

		case XC_PENALTY:
			b->flags ^= FLAGS_PENALTY;
			break;

		case XC_VICTIM:
			b->flags ^= FLAGS_VICTIM;
			break;

		case XC_AWAKE:
			b->flags ^= FLAGS_AWAKEALWAYS;
			break;
		}
		break;

	case YC_WEAPON:
		b->gun += d;
		AdjustInt(&b->gun, 0, GUN_COUNT - 1, 1);
		break;
	}
}
Exemple #11
0
void AddObjective(void)
{
	currentMission->objectiveCount++;
	AdjustInt(&currentMission->objectiveCount, 0, OBJECTIVE_MAX, 0);
}
Exemple #12
0
static int Change(int yc, int xc, int d, int *mission)
{
	struct EditorInfo edInfo;
	int limit;

	if (yc == YC_MISSIONINDEX) {
		*mission += d;
		AdjustInt(mission, 0, campaign.missionCount, 0);
		return 0;
	}

	if (!currentMission)
		return 0;

	GetEditorInfo(&edInfo);

	switch (yc) {
	case YC_MISSIONPROPS:
		switch (xc) {
		case XC_WIDTH:
			currentMission->mapWidth += d;
			AdjustInt(&currentMission->mapWidth, 16, 64, 0);
			break;
		case XC_HEIGHT:
			currentMission->mapHeight += d;
			AdjustInt(&currentMission->mapHeight, 16, 64, 0);
			break;
		case XC_WALLCOUNT:
			currentMission->wallCount += d;
			AdjustInt(&currentMission->wallCount, 0, 200, 0);
			break;
		case XC_WALLLENGTH:
			currentMission->wallLength += d;
			AdjustInt(&currentMission->wallLength, 1, 100, 0);
			break;
		case XC_ROOMCOUNT:
			currentMission->roomCount += d;
			AdjustInt(&currentMission->roomCount, 0, 100, 0);
			break;
		case XC_SQRCOUNT:
			currentMission->squareCount += d;
			AdjustInt(&currentMission->squareCount, 0, 100, 0);
			break;
		case XC_DENSITY:
			currentMission->baddieDensity += d;
			AdjustInt(&currentMission->baddieDensity, 0, 100,
				  0);
			break;
		}
		break;

	case YC_MISSIONLOOKS:
		switch (xc) {
		case XC_WALL:
			currentMission->wallStyle += d;
			AdjustInt(&currentMission->wallStyle, 0,
				  WALL_COUNT - 1, 1);
			break;
		case XC_FLOOR:
			currentMission->floorStyle += d;
			AdjustInt(&currentMission->floorStyle, 0,
				  FLOOR_COUNT - 1, 1);
			break;
		case XC_ROOM:
			currentMission->roomStyle += d;
			AdjustInt(&currentMission->roomStyle, 0,
				  ROOMFLOOR_COUNT - 1, 1);
			break;
		case XC_DOORS:
			currentMission->doorStyle += d;
			AdjustInt(&currentMission->doorStyle, 0,
				  edInfo.doorCount - 1, 1);
			break;
		case XC_KEYS:
			currentMission->keyStyle += d;
			AdjustInt(&currentMission->keyStyle, 0,
				  edInfo.keyCount - 1, 1);
			break;
		case XC_EXIT:
			currentMission->exitStyle += d;
			AdjustInt(&currentMission->exitStyle, 0,
				  edInfo.exitCount - 1, 1);
			break;
		case XC_COLOR1:
			currentMission->wallRange += d;
			AdjustInt(&currentMission->wallRange, 0,
				  edInfo.rangeCount - 1, 1);
			break;
		case XC_COLOR2:
			currentMission->floorRange += d;
			AdjustInt(&currentMission->floorRange, 0,
				  edInfo.rangeCount - 1, 1);
			break;
		case XC_COLOR3:
			currentMission->roomRange += d;
			AdjustInt(&currentMission->roomRange, 0,
				  edInfo.rangeCount - 1, 1);
			break;
		case XC_COLOR4:
			currentMission->altRange += d;
			AdjustInt(&currentMission->altRange, 0,
				  edInfo.rangeCount - 1, 1);
			break;
		}
		break;

	case YC_CHARACTERS:
		currentMission->baddies[xc] += d;
		AdjustInt(&currentMission->baddies[xc], 0,
			  campaign.characterCount - 1, 1);
		break;

	case YC_SPECIALS:
		currentMission->specials[xc] += d;
		AdjustInt(&currentMission->specials[xc], 0,
			  campaign.characterCount - 1, 1);
		break;

	case YC_WEAPONS:
		currentMission->weaponSelection ^= (1 << xc);
		break;

	case YC_ITEMS:
		if (KeyDown(SDLK_LSHIFT) || KeyDown(SDLK_RSHIFT))	// Either shift key down?
		{
			currentMission->itemDensity[xc] += 5 * d;
			AdjustInt(&currentMission->itemDensity[xc], 0, 512,
				  0);
		} else {
			currentMission->items[xc] += d;
			AdjustInt(&currentMission->items[xc], 0,
				  edInfo.itemCount - 1, 1);
		}
		break;

	default:
		if (yc >= YC_OBJECTIVES) {
			switch (xc) {
			case XC_TYPE:
				currentMission->objectives[yc -
							   YC_OBJECTIVES].
				    type += d;
				AdjustInt(&currentMission->
					  objectives[yc -
						     YC_OBJECTIVES].type,
					  0, OBJECTIVE_INVESTIGATE, 1);
				d = 0;

			case XC_INDEX:
				switch (currentMission->
					objectives[yc -
						   YC_OBJECTIVES].type) {
				case OBJECTIVE_COLLECT:
					limit = edInfo.pickupCount - 1;
					break;
				case OBJECTIVE_DESTROY:
					limit = edInfo.itemCount - 1;
					break;
				case OBJECTIVE_KILL:
				case OBJECTIVE_INVESTIGATE:
					limit = 0;
					break;
				case OBJECTIVE_RESCUE:
					limit =
					    campaign.characterCount - 1;
					break;
				}
				currentMission->objectives[yc -
							   YC_OBJECTIVES].
				    index += d;
				AdjustInt(&currentMission->
					  objectives[yc -
						     YC_OBJECTIVES].index,
					  0, limit, 1);
				break;

			case XC_REQUIRED:
				currentMission->objectives[yc -
							   YC_OBJECTIVES].
				    required += d;
				AdjustInt(&currentMission->
					  objectives[yc -
						     YC_OBJECTIVES].
					  required, 0, 100, 1);
				break;

			case XC_TOTAL:
				currentMission->objectives[yc -
							   YC_OBJECTIVES].
				    count += d;
				AdjustInt(&currentMission->
					  objectives[yc -
						     YC_OBJECTIVES].count,
					  0, 100, 1);
				break;

			case XC_FLAGS:
				currentMission->objectives[yc -
							   YC_OBJECTIVES].
				    flags += d;
				AdjustInt(&currentMission->
					  objectives[yc -
						     YC_OBJECTIVES].flags,
					  0, 15, 1);
				break;
			}
		}
		break;
	}
	return 1;
}