jo ich hoffe ihr verzeiht mir meine rechtschreib fehler gleich ^^ war einfach mal Brainstorming
ich hab mir mal ein konzept zurecht gelegt und das würde auch mit unicode gehen:

Quote:


gegeben ist ein roher string array
ausgelesen von einer text datei.
beispiel der text datei:
"
Dialogue_000_3;
ich bin die erste Zeile von dialogue 0;
ich bin die zweite Zeile von dialogue 0;
ich bin die drite und letzte Zeile von dialogue 0;
Dialogue_001_2;
ich bin die erste Zeile von dialogue 1;
ich bin die zweite und letzte Zeile von dialogue 1;
Dialogue_002_3;
ich bin die erste Zeile von dialogue 2;
ich bin die zweite Zeile von dialogue 2;
ich bin die drite und letzte Zeile von dialogue 2;
"



in dem unteren code würde im text dann sowas stehen:

"
Dialogue_000_3;
ich bin die erste Zeile von dialogue 0 und zum weiterschalten in der dialogbox muss ich #1 drücken;
"

// Dialogue_000_3 bedeutet das es der dialog 000 ist und 3 zeilen beinhaltet evtl kann man das auch gleich nutzen


///////////////// PHASE 1 ////////////////////////////// roher string vorbereiten fürs struct

0 man findet im ersten string ein #1 und nun passiert:
1 in einem temporären string wird alles bis hierher gespeichert dieser string wird mit str_width geguckt wieviel pixel
das resulatat wird in einen var array gespeichert
2 ich zähle alle zeichen in diesem string in ein varaiblen array. dieser sagt mir dann bei welcher nummer ich das icon

einblenden werde
3 ich leere den temporären sting wieder
4 ich schreibe die zahl, in dem falle "1" von "#1" in einen weiteren array
5 ich lösche das "#1" und setze an der stelle ein paar leerschläge die platz machen für das icon bzw die icon pixel

breite
6 ich schreibe i in eine variable
7 ich wiederhole schrit 1, solange bis kein # mehr gefunden wird / break


8 else/ kein # gefunden. weiter in PHASE 2


0 bis 7 ist also eine for schleife
und "var i" bestimmt welcher array benutzt wird.
"i" sagt auserdem auch noch wieviel # bzw icons gefunden wurden

///////////////// PHASE 2 ////////////////////////////// struct eigenschaften füllen

nun habe ich die daten:

(1) variable wieviel pixel ein icon vom lesestart aus gesetzt werden muss
(2) variable wieviel buchstaben/ziffern ein icon vom lese start entfernt ist
(4) variable welche icon nummer ich benötige. 1,2,3,4,5 usw
(5) den fertigen string für die dialogbox ohne # und mit leerschlägen
(6) variable wieviel icons in einer zeile sind

diese daten könnte ich eigentlich in ein struct verwandeln. damit ich dann mit dem struct weiter arbeiten kann

weitere struct daten:
var "zu welchem dialog es gehört 0001, 0002 oder 0003 usw "
var "welche zeile es ist. 1,2,3,4 usw"
var "wieviele zeilen es hat"
var "welche array nummer es hat //ähnlich wie bei beim roh string einteilen"

fazit:
ich wandle die rohen strings aus dem alloziier prozess um in ein struct
diese sind fix und können beim initialisieren des games gesetzt werden
und sind dann zugänglicher für das dialog box system

// das roh string file kann man nun löschen


///////////////// PHASE 3 ////////////////////////////// das struct im dialog system benutzen

mit dem neuen daten typ / struct füttere ich nun das dialog system

die strings werden buchstabe für buchstabe mit str_trunc (String, Zahl)
abgeschnitten und beim erreichen des uchstabenzahl eines icons wird dann ein icon eingeblendet





///////////////// PHASE ? ////////////////////////////// der text debugger
dialog_tester.c
in dieser datei werden alle strings geladen
und getestet ob sie zu lang sind
dazu werden alle strings ausgelesen, die #key_?" entfernt, die nötigen pixel dazugerechnet, das font berücksichtigt
und in einer text datei werden alle strings reingeschrieben die fehlerhaft sind mit den dazugehörigen dialog nummern
dann kann man mit dieser text datei die dialog.txt korigieren
desweiteren kann man die grösse angeben die man benutzt. also die dialog box pixel breite
und auch die icon pixel breite

dies macht man zwar manuel aber immerhin besser als garnichts


///////////////// PHASE X ////////////////////////////// das colorieren via shader

ich rendere die TEXT in ein kleines renderbild
mit unzähligen skill1 ... skill41 parameter kann ich nun colorier positionen und colorierungs felder (x1 x2 y1 y2)

basteln und mehrere einfärbungen auch via vecskill. falls nötig und erwünscht
dann das renderbild in das dialogbox panel rendern
man müsste also ein 4 kanal bmap rendern
da diese aber nur ein ausschnit ist und somit klein und vom shader schnell verarbeitbar sollte das easy gehen
ich könnte sogar noch weiter gehen und zum string struct 4 oder 6 positionen für eine collorierung angeben indem ich

eine funktion schreibe die bei lesen (phase 1) schlüsselwörter durchkämmt wie etwa "Schwert", "Schild" oder "Bogen" und

an dort die startposition in pixel sucht und auch die länge des wortes ausliest in pixel und diese dann weiter gebe an

den shader. ich könnte auchnoch colorierungen rein machen wie etwa "@255,0,0@Schwert" was soviel heisst wie das dass

nöchste wort nach @255,0,0@ so eingefärbt werden soll
somit wäre im struct für diesen string dann noch eine anzahl an gefundenen @ markierungen und in einem vector dessen

oder ich nutze im shader ein HLS converter damit ich nurnoch eine zahl zwischen 0 und 360 reingeben muss fürs colorieren ^^


farbe. und die jeweiligen positionen bzw pixel entfernung von start zu wortbeginn
und pixel länge des wortes.
das alles wird an den shader gegeben und so gibt es dann colorierte texte






Last edited by tagimbul; 06/13/17 09:24.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos