SetObjectBlitMode

Kategorie: Objekte / Darstellung
Ab Engineversion: 1.0 OC

Beschreibung

Ändert den Zeichenmodus für das aufrufende Objekt. Die möglichen Werte entsprechen denen des DefCore-Flags BlitMode (siehe Anmerkung). Die Funktion gibt jeweils den vorher gesetzten Blitmodus zurück.

Syntax

int SetObjectBlitMode(int dwNewBlitMod, int overlay_id);

Parameter

dwNewBlitMod:
[opt] Neuer Zeichenmodus (mögliche Werte siehe unten) - bei 0 oder nicht angegeben wird das Objekt auf seinen Definitions-Blitmodus zurückgesetzt. Ansonsten wird Bit 8 (benutzerdefinierter Farbwert) implizit gesetzt.
overlay_id:
[opt] Wenn angegeben, wird stattdessen der Blitmodus dieses Grafikoverlays gesetzt. Das Overlay muss vorher mit SetGraphics erstellt worden sein.

Anmerkungen

Der Blitmodus beeinflusst keine zusätzlichen Overlay-Grafiken. Die Blitmodi dieser müssen jeweils in SetGraphics gesetzt werden.
Konstante Wert Bedeutung
GFX_BLIT_Additive 1 Additiv (Immer Basissurface und Overlay)
GFX_BLIT_Mod2 2 Additive Modulation: Die Farbe des Modulationswertes wird zur jeweiligen Objektfarbe hinzuaddiert, und anschließend RGB(128,128,128) abgezogen. Nur Basisgrafik.
GFX_BLIT_ClrSfc_OwnClr 4 Die über SetClrModulation() gesetzte Farbmodulation gilt nur für die Basisgrafik, und das Overlay wird weiterhin nach Besitzerfarbe (siehe SetColor())gefärbt.
GFX_BLIT_ClrSfc_Mod2 8 Die Besitzergrafik (Overlay) wird mit additiver Modulation gezeichnet. Dieses Flag muss gegebenenfalls unabhängig von Bit 2 gesetzt werden.
GFX_BLIT_Wireframe 16 Zeichnet das Modell als Drahtgitter. Funktioniert nur mit Modellen!
5-7 32, 64 reserviert
GFX_BLIT_Custom 128 Benutzerdefinierter Farbwert. Dieser Wert kann angegeben werden, wenn kein spezieller Farbmodus gewünscht ist, und damit eine DefCore-Einstellung überschrieben werden soll. Außerdem ist dieses Bit im Rückgabewert dieser Funktion und von GetObjectBlitMode() gesetzt, wenn der Blitmodus des Objekts nicht dem Definitionswert entspricht.
GFX_BLIT_Parent 256 Nur für Overlays: Es wird der Blitmodus verwendet, den auch das Basisobjekt benutzt, auf das dieses Overlay gezeichnet wird.

Beispiel

static g_cursor, g_prev_blit_mode, g_prev_mod;

func Script100()
{
  g_cursor = GetCursor();
  // save previous values
  g_prev_blit_mode = g_cursor->GetObjectBlitMode();
  g_prev_mod = g_cursor->GetClrModulation();
  // color the no-ColorByOwner-parts of the clonk in a glowing green
  g_cursor->SetObjectBlitMode(6);
  g_cursor->SetClrModulation(RGB(100, 255, 110));
  // message
  g_cursor->Message("Look, I can glow!");
}

func Script200()
{
  // reset color
  g_cursor->SetObjectBlitMode(g_prev_blit_mode);
  g_cursor->SetClrModulation(g_prev_mod);
  // Nachricht
  g_cursor->Message("Over already!");
}
Teil eines Szenarioscripts: Färbt den ausgewählten Clonk des ersten Spielers für eine Weile teilweise leuchtend grün.
Für einen solchen Effekt in aufwändigeren Szenarien oder in allgemein verwendbaren Objekten sollte an solcher Stelle natürlich ein Effekt verwendet werden, um beispielsweise Komplikationen mit verfärbenden Zaubern zu vermeiden.
Siehe auch: GetObjectBlitMode, SetClrModulation
Sven2, 2004-03