SetObjectBlitMode

Kategorie: Objekte / Darstellung
Ab Engineversion: 4.9.5.0 CE (erweitert ab 4.9.6.0 CR)

Beschreibung

Ändert den Zeichenmodus für eine Objekts. 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, object pObj, int iOverlayID);

Parameter

dwNewBlitMod:
[opt] Neuer Zeichenmodus (mögliche Werte siehe unten) - bei 0 wird das Objekt auf seinen Definitions-Blitmodus zurückgesetzt. Ansonsten wird Bit 8 (benutzerdefinierter Farbwert) implizit gesetzt.
pObj:
[opt] Objekt, dessen Zeichenstil geändert werden soll. 0 bei lokalem Aufruf.
iOverlayID:
[opt] Wenn angegeben, wird stattdessen der Blitmodus dieses Grafikoverlays gesetzt. Das Overlay muss vorher mit SetGraphics erstellt worden sein. Ab CR.

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 SetColorDw())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.
5-7 16, 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. Ab CR.

Beispiel

static g_pCursor, g_dwPrevBlitMode, g_dwPrevMod;

protected func Script100()
  {
  // Ausgewählten Clonk des ersten Spielers ermitteln
  g_pCursor = GetCursor();
  // Vorherige Werte speichern
  g_dwPrevBlitMode = GetObjectBlitMode(g_pCursor);
  g_dwPrevMod = GetClrModulation(g_pCursor);
  // Nicht-ColorByOwner-Teile des Clonks leuchtend grün färben
  SetObjectBlitMode(6, g_pCursor);
  SetClrModulation(RGB(100, 255, 110), g_pCursor);
  // Nachricht
  Message("Schau her, ich kann leuchten!", g_pCursor);
  return(1);
  }

protected func Script200()
  {
  // Farbe zurücksetzen
  SetObjectBlitMode(g_dwPrevBlitMode, g_pCursor);
  SetClrModulation(g_dwPrevMod, g_pCursor);
  // Nachricht
  Message("Schon vorbei :\", g_pCursor);
  "return(1);
  }
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, März 2004