Example #1
0
void CNewStatusBar::Reset()
{
	m_stHealth.value = 100;
	m_stArmor.value = 0;
	m_stAmmo.value = 0;
	m_stAltAmmo.value = 0;

	m_nOldHealth = -1;
	m_nOldArmor = -1;
	m_nOldAmmo = -1;
	m_nOldAltAmmo = -1;

	m_nInvLevel = 0;
	m_nWeapLevel = 0;
	m_nObjLevel = 0;
	m_nObjIcon = 0;
	m_nPowerBar = 0;

	for(int i = 0; i < 10; i++)
		UpdateWeap(0, 0, i);

	UpdateInv(DFALSE, 0, 0, 0, 0, 0, 0, 0, 0);

	DisplayFlag(MULTIFLAG_NONE);
}
Example #2
0
static void MissionDrawDoorEnabled(
	UIObject *o, GraphicsDevice *g, struct vec2i pos, void *data)
{
	UNUSED(o);
	UNUSED(g);
	CampaignOptions *co = data;
	if (!CampaignGetCurrentMission(co)) return;
	DisplayFlag(
		svec2i_add(pos, o->Pos), "Doors",
		CampaignGetCurrentMission(co)->u.Cave.DoorsEnabled,
		UIObjectIsHighlighted(o));
}
Example #3
0
static void MissionDrawRoomsOverlap(
	UIObject *o, GraphicsDevice *g, struct vec2i pos, void *data)
{
	UNUSED(o);
	UNUSED(g);
	UNUSED(pos);
	CampaignOptions *co = data;
	if (!CampaignGetCurrentMission(co)) return;
	DisplayFlag(
		svec2i_add(pos, o->Pos), "Room overlap",
		CampaignGetCurrentMission(co)->u.Cave.Rooms.Overlap,
		UIObjectIsHighlighted(o));
}
Example #4
0
void cSkeleton<_DataType>::ConnectingFlaggedVoxels()
{
	int				i, j, k, loc[3], NextPos_i[3], NumContinuousVoxels;
	unsigned char	VoxelFlag_uc;


	printf ("Connecting Flagged Voxels ... \n");
	fflush(stdout);


#ifdef	DEBUG_CONNECTING
//	int		MaxNumContinuousVoxels = 0;
#endif

	for (k=1; k<Depth_mi-1; k++) {
		for (j=1; j<Height_mi-1; j++) {
			for (i=1; i<Width_mi-1; i++) {
	
				loc[0] = Index(i, j, k);
				if (VoxelFlags_muc[loc[0]]==FLAG_NONUNIFORM) {


#ifdef	DEBUG_CONNECTING
					printf ("Start (%d %d %d)\n", i, j, k);
#endif
					NextPos_i[0] = i;
					NextPos_i[1] = j;
					NextPos_i[2] = k;

					NumContinuousVoxels = 0;
					do {

						NextPos_i[0] = (int)((float)NextPos_i[0] + GVFDistance_mf[loc[0]*3 + 0] + 0.5);
						NextPos_i[1] = (int)((float)NextPos_i[1] + GVFDistance_mf[loc[0]*3 + 1] + 0.5);
						NextPos_i[2] = (int)((float)NextPos_i[2] + GVFDistance_mf[loc[0]*3 + 2] + 0.5);

						loc[0] = Index (NextPos_i[0], NextPos_i[1], NextPos_i[2]);
						NumContinuousVoxels++;
						
#ifdef	DEBUG_CONNECTING
						printf ("(%d %d %d)", NextPos_i[0], NextPos_i[1], NextPos_i[2]);
						DisplayFlag(VoxelFlags_muc[loc[0]]);
						printf (",  ");
#endif
						
						VoxelFlag_uc = VoxelFlags_muc[loc[0]];
						if (VoxelFlag_uc == FLAG_CONNECTED || 
							VoxelFlag_uc == FLAG_NONUNIFORM || 
							VoxelFlag_uc == FLAG_EMPTY) break;
						
						VoxelFlags_muc[loc[0]] = FLAG_CONNECTED;
						
					} while (VoxelFlag_uc != FLAG_NONUNIFORM);

				}
			}
		}
	}

	for (i=0; i<WHD_mi; i++) {
		if (VoxelFlags_muc[i]==FLAG_NONUNIFORM) VoxelFlags_muc[i] = FLAG_CONNECTED;
	}

	int NumConnectedVoxels = 0;
	for (i=0; i<WHD_mi; i++) {
		if (VoxelFlags_muc[i]==FLAG_CONNECTED) NumConnectedVoxels++;
	}
	printf ("Num. Connected Voxels = %d\n", NumConnectedVoxels);
	printf ("Num. Connected / NumSegmented = %f %%\n", (float)NumConnectedVoxels/NumSegmentedVoxels_mi*100.0);
	printf ("Num. Connected / Total Num. Voxels = %f %%\n", (double)NumConnectedVoxels/WHD_mi*100.0);
	fflush (stdout);
	
}
Example #5
0
static void Display(TCampaignSetting * setting, int index, int xc, int yc)
{
	int x, y = 10;
	char s[50];
	const TBadGuy *b;
	int i;

	memset(GetDstScreen(), 74, SCREEN_MEMSIZE);

	sprintf(s, "%d/%d", setting->characterCount, MAX_CHARACTERS);
	TextStringAt(10, 190, s);

	if (index >= 0 && index < setting->characterCount) {
		b = &setting->characters[index];
		DisplayText(30, y, "Face", yc == YC_APPEARANCE && xc == XC_FACE);
		DisplayText(60, y, "Skin", yc == YC_APPEARANCE && xc == XC_SKIN);
		DisplayText(90, y, "Hair", yc == YC_APPEARANCE && xc == XC_HAIR);
		DisplayText(120, y, "Body", yc == YC_APPEARANCE && xc == XC_BODY);
		DisplayText(150, y, "Arms", yc == YC_APPEARANCE && xc == XC_ARMS);
		DisplayText(180, y, "Legs", yc == YC_APPEARANCE && xc == XC_LEGS);
		y += TextHeight();

		sprintf(s, "Speed: %d%%", (100 * b->speed) / 256);
		DisplayText(20, y, s, yc == YC_ATTRIBUTES && xc == XC_SPEED);
		sprintf(s, "Hp: %d", b->health);
		DisplayText(70, y, s, yc == YC_ATTRIBUTES && xc == XC_HEALTH);
		sprintf(s, "Move: %d%%", b->probabilityToMove);
		DisplayText(120, y, s, yc == YC_ATTRIBUTES && xc == XC_MOVE);
		sprintf(s, "Track: %d%%", b->probabilityToTrack);
		DisplayText(170, y, s, yc == YC_ATTRIBUTES && xc == XC_TRACK);
		sprintf(s, "Shoot: %d%%", b->probabilityToShoot);
		DisplayText(220, y, s, yc == YC_ATTRIBUTES && xc == XC_SHOOT);
		sprintf(s, "Delay: %d", b->actionDelay);
		DisplayText(270, y, s, yc == YC_ATTRIBUTES && xc == XC_DELAY);
		y += TextHeight();

		DisplayFlag(5, y, "Asbestos",
			    (b->flags & FLAGS_ASBESTOS) != 0,
			    yc == YC_FLAGS && xc == XC_ASBESTOS);
		DisplayFlag(50, y, "Immunity",
			    (b->flags & FLAGS_IMMUNITY) != 0,
			    yc == YC_FLAGS && xc == XC_IMMUNITY);
		DisplayFlag(95, y, "C-thru",
			    (b->flags & FLAGS_SEETHROUGH) != 0,
			    yc == YC_FLAGS && xc == XC_SEETHROUGH);
		DisplayFlag(140, y, "Run-away",
			    (b->flags & FLAGS_RUNS_AWAY) != 0,
			    yc == YC_FLAGS && xc == XC_RUNS_AWAY);
		DisplayFlag(185, y, "Sneaky",
			    (b->flags & FLAGS_SNEAKY) != 0, yc == YC_FLAGS
			    && xc == XC_SNEAKY);
		DisplayFlag(230, y, "Good guy",
			    (b->flags & FLAGS_GOOD_GUY) != 0,
			    yc == YC_FLAGS && xc == XC_GOOD_GUY);
		DisplayFlag(275, y, "Asleep",
			    (b->flags & FLAGS_SLEEPALWAYS) != 0,
			    yc == YC_FLAGS && xc == XC_SLEEPING);
		y += TextHeight();

		DisplayFlag(5, y, "Prisoner",
			    (b->flags & FLAGS_PRISONER) != 0,
			    yc == YC_FLAGS2 && xc == XC_PRISONER);
		DisplayFlag(50, y, "Invuln.",
			    (b->flags & FLAGS_INVULNERABLE) != 0,
			    yc == YC_FLAGS2 && xc == XC_INVULNERABLE);
		DisplayFlag(95, y, "Follower",
			    (b->flags & FLAGS_FOLLOWER) != 0,
			    yc == YC_FLAGS2 && xc == XC_FOLLOWER);
		DisplayFlag(140, y, "Penalty",
			    (b->flags & FLAGS_PENALTY) != 0,
			    yc == YC_FLAGS2 && xc == XC_PENALTY);
		DisplayFlag(185, y, "Victim",
			    (b->flags & FLAGS_VICTIM) != 0, yc == YC_FLAGS2
			    && xc == XC_VICTIM);
		DisplayFlag(230, y, "Awake",
			    (b->flags & FLAGS_AWAKEALWAYS) != 0,
			    yc == YC_FLAGS2 && xc == XC_AWAKE);
		y += TextHeight();

		DisplayText(50, y, gunDesc[b->gun].gunName,
			    yc == YC_WEAPON);
		y += TextHeight() + 5;

		x = 10;
		for (i = 0; i < setting->characterCount; i++) {
			DisplayCharacter(x, y + 20,
					 &setting->characters[i],
					 index == i);
			x += 20;
			if (x > SCREEN_WIDTH) {
				x = 10;
				y += 30;
			}
		}
	}

	CopyToScreen();
}
Example #6
0
static void ShowWeaponStatus(int x, int y, int weapon, int xc)
{
	DisplayFlag(x, y, gunDesc[weapon].gunName,
		    (currentMission->weaponSelection & (1 << weapon)) != 0,
		    xc == weapon);
}
Example #7
0
static void Display(CampaignSettingNew *setting, int idx, int xc, int yc)
{
	int x, y = 10;
	char s[50];
	const Character *b;
	int i;
	int tag;

	for (i = 0; i < GraphicsGetScreenSize(&gGraphicsDevice.cachedConfig); i++)
	{
		gGraphicsDevice.buf[i] = LookupPalette(74);
	}

	sprintf(s, "%d", setting->characters.otherCount);
	CDogsTextStringAt(10, 190, s);

	if (idx >= 0 && idx < setting->characters.otherCount)
	{
		b = &setting->characters.others[idx];
		DisplayCDogsText(30, y, "Face", yc == YC_APPEARANCE && xc == XC_FACE);
		DisplayCDogsText(60, y, "Skin", yc == YC_APPEARANCE && xc == XC_SKIN);
		DisplayCDogsText(90, y, "Hair", yc == YC_APPEARANCE && xc == XC_HAIR);
		DisplayCDogsText(120, y, "Body", yc == YC_APPEARANCE && xc == XC_BODY);
		DisplayCDogsText(150, y, "Arms", yc == YC_APPEARANCE && xc == XC_ARMS);
		DisplayCDogsText(180, y, "Legs", yc == YC_APPEARANCE && xc == XC_LEGS);
		y += CDogsTextHeight();

		sprintf(s, "Speed: %d%%", (100 * b->speed) / 256);
		DisplayCDogsText(20, y, s, yc == YC_ATTRIBUTES && xc == XC_SPEED);
		sprintf(s, "Hp: %d", b->maxHealth);
		DisplayCDogsText(70, y, s, yc == YC_ATTRIBUTES && xc == XC_HEALTH);
		sprintf(s, "Move: %d%%", b->bot.probabilityToMove);
		DisplayCDogsText(120, y, s, yc == YC_ATTRIBUTES && xc == XC_MOVE);
		sprintf(s, "Track: %d%%", b->bot.probabilityToTrack);
		DisplayCDogsText(170, y, s, yc == YC_ATTRIBUTES && xc == XC_TRACK);
		sprintf(s, "Shoot: %d%%", b->bot.probabilityToShoot);
		DisplayCDogsText(220, y, s, yc == YC_ATTRIBUTES && xc == XC_SHOOT);
		sprintf(s, "Delay: %d", b->bot.actionDelay);
		DisplayCDogsText(270, y, s, yc == YC_ATTRIBUTES && xc == XC_DELAY);
		y += CDogsTextHeight();

		DisplayFlag(5, y, "Asbestos",
			    (b->flags & FLAGS_ASBESTOS) != 0,
			    yc == YC_FLAGS && xc == XC_ASBESTOS);
		DisplayFlag(50, y, "Immunity",
			    (b->flags & FLAGS_IMMUNITY) != 0,
			    yc == YC_FLAGS && xc == XC_IMMUNITY);
		DisplayFlag(95, y, "C-thru",
			    (b->flags & FLAGS_SEETHROUGH) != 0,
			    yc == YC_FLAGS && xc == XC_SEETHROUGH);
		DisplayFlag(140, y, "Run-away",
			    (b->flags & FLAGS_RUNS_AWAY) != 0,
			    yc == YC_FLAGS && xc == XC_RUNS_AWAY);
		DisplayFlag(185, y, "Sneaky",
			    (b->flags & FLAGS_SNEAKY) != 0, yc == YC_FLAGS
			    && xc == XC_SNEAKY);
		DisplayFlag(230, y, "Good guy",
			    (b->flags & FLAGS_GOOD_GUY) != 0,
			    yc == YC_FLAGS && xc == XC_GOOD_GUY);
		DisplayFlag(275, y, "Asleep",
			    (b->flags & FLAGS_SLEEPALWAYS) != 0,
			    yc == YC_FLAGS && xc == XC_SLEEPING);
		y += CDogsTextHeight();

		DisplayFlag(5, y, "Prisoner",
			    (b->flags & FLAGS_PRISONER) != 0,
			    yc == YC_FLAGS2 && xc == XC_PRISONER);
		DisplayFlag(50, y, "Invuln.",
			    (b->flags & FLAGS_INVULNERABLE) != 0,
			    yc == YC_FLAGS2 && xc == XC_INVULNERABLE);
		DisplayFlag(95, y, "Follower",
			    (b->flags & FLAGS_FOLLOWER) != 0,
			    yc == YC_FLAGS2 && xc == XC_FOLLOWER);
		DisplayFlag(140, y, "Penalty",
			    (b->flags & FLAGS_PENALTY) != 0,
			    yc == YC_FLAGS2 && xc == XC_PENALTY);
		DisplayFlag(185, y, "Victim",
			    (b->flags & FLAGS_VICTIM) != 0, yc == YC_FLAGS2
			    && xc == XC_VICTIM);
		DisplayFlag(230, y, "Awake",
			    (b->flags & FLAGS_AWAKEALWAYS) != 0,
			    yc == YC_FLAGS2 && xc == XC_AWAKE);
		y += CDogsTextHeight();

		DisplayCDogsText(50, y, GunGetName(b->gun), yc == YC_WEAPON);
		y += CDogsTextHeight() + 5;

		x = 10;
		for (i = 0; i < setting->characters.otherCount; i++)
		{
			DisplayCharacter(
				x, y + 20, &setting->characters.others[i], idx == i, 0);
			x += 20;
			if (x > gGraphicsDevice.cachedConfig.ResolutionWidth)
			{
				x = 10;
				y += 30;
			}
		}
	}

	if (MouseTryGetRectTag(&gInputDevices.mouse, &tag))
	{
		int mouseYc = tag & 0xFF;
		int mouseXc = (tag & 0xFF00) >> 8;
		Vec2i tooltipPos = Vec2iAdd(
			gInputDevices.mouse.currentPos, Vec2iNew(10, 10));
		DrawTooltips(&gGraphicsDevice, tooltipPos, yc, xc, mouseYc, mouseXc);
	}