Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
26.04.2004, 14:58
Kriz



Besteht Interesse an einem Win-basierten, erweiterten Texturenripper? Mir is nämlich gerade so danach :D

Meiner Idee nach soll er MAP-Dateien öffnen, einladen und die darin per -nowadtextures eingebundenen Texturen rippen (eben wie Textract). Entweder rippt er sich als BMP, JPEG, PNG, TGA (falls ich ne passende OpSo-Lib für TGA finde) oder gleich als neues WAD-Archiv.

Zum anderen soll er gewisse Filtering-Funktionen haben, u.a. ab welcher Minimalgröße bis zu welcher Maximalgröße in Pixeln er Texturen rippen soll (so könnte man übergroße Texturen skippen) bzw. einen Name-Filter mit Wildcard-Support. Filtern nach nichtteilbare Längen durch 16 kann ich mir dagegen sparen, weil die sowieso gleich in Wally abgeblockt werden.

Wie gesagt popel ich das Ganze bequem (*huuust*) per D&D Assistent zusammen und verleihe dem Rest den letzen, inneren Schliff.

Sonst noch jemand Ideen? Aber bitte nichts á la "Texturenanzeigen wie in Wally", das geht mit dem Assistenten nicht, da müsste ich alles per Hand coden und mir erstmal einiges Wissen aneignen. Für's Texturenanzeigen ist Wally da :)

Das Ganze dann als OpSo und wer dann Lust hat, kann das Teil ja meinetwegen nach GTK oso portieren (falls es denn mal was werden sollte).

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
001
26.04.2004, 15:13
Radiant



Das finde ich eine gute Idee :D

Lib's für die Dateitypen kannst du ja ggf. von Irfan abgucken ;D

ein Feature zum Batch extrahieren der Texes aus mehreren Maps bzw. Verzeichnisen und / oder zum auflösen von .wad-Files zu einzelnen Texturen wären noch recht nützlich (*hust* Wallys Batch-Conversation funzt bei mir warum auch immer nicht :/ und für IrfanView fehlt das .wad File Plugin ;P).

Filtering, wie du es bereits erwähnt hast, wäre auch eine gute Sache (ggf. Größe, Name bzw. Bezeichnung (Wildcard) etc. )

Ahh was mir gerade noch einfällt :D bitte mit GUI ^^

--

But I think you have not been virgin before practising such kung-fu!
Otherwise, I couldn't have defeated you.
- San Fung Chang
Kleinmütige und Schwächlinge suchen den sicheren Weg. Über Gipfel geht der Held. - Lucius A. Seneca
g_bClipNazi = DEFAULT_CLIPNAZI;
Gratis Augenoberation!

zum Seitenanfang zum Seitenende Profil || Suche
002
26.04.2004, 15:21
Kriz



Ähm, wenn ich vorschlage das Ding später nach GTK zu portieren, dann KANN es ja nur eine GUI Anwendung sein :D

Und ob ich WADs auflösen möchte, weiß ich noch nicht. Schließlich soll das Teil ja in erster Linie (habe ich da oben MAP geschrieben?) BSPs auseinanderpflücken. Für WAD-Auflösungen würde ich auch eher Wally präferieren. Obwohl mal sehen... Knüppel alle Texturen aus der WAD nach Verzeichnis XYZ... Mal gucken...

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
003
26.04.2004, 15:35
Radiant



ROFL ehrlichgesgat hab ich keine Ahnung was GTK ist :D

--

But I think you have not been virgin before practising such kung-fu!
Otherwise, I couldn't have defeated you.
- San Fung Chang
Kleinmütige und Schwächlinge suchen den sicheren Weg. Über Gipfel geht der Held. - Lucius A. Seneca
g_bClipNazi = DEFAULT_CLIPNAZI;
Gratis Augenoberation!

zum Seitenanfang zum Seitenende Profil || Suche
004
26.04.2004, 15:48
Tubgirl



Mach mal.

--

zum Seitenanfang zum Seitenende Profil || Suche
005
26.04.2004, 18:14
Kriz



Hm, einer der schwierigsten Algorithmen ist schonmal gesichert. Ich habe eine gute Wildcard-Implementierung gefunden: OpSo, GPL-2 und *NIX Style Like. Also wer sowas von Linux & Co. her kennt, der wird keinerlei Probleme haben die Wildcard Schemata einzusetzen.

Daher: Das Wildcard-System ist *NIX-Style. Beispiele:

Quellcode:// Implementation of the UN*X wildcards
// Supported wild-characters: '*', '?'; sets: [a-z], '!' negation
// Examples:
//       '[a-g]l*i?n' matches 'florian'
//       '[!abc]*e' matches 'smile'
//       '[-z] matches 'a'

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)


Dieser Beitrag wurde am 26.04.2004 um 18:14 von Kriz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
26.04.2004, 18:31
tommydanger



hmm, funktioniert es auch, texturen auszutauschen, die per -nowadtextures in der .bsp sind.

zb: in der .bsp ist eine "wall01.jpg" und diese soll mit der neuen "wall01.jpg"ausgetauscht werden.

--

IDF - a HL2 TC
Source Compile Analyzer v1.2b
too much is never enough -> happyhardcore.com

zum Seitenanfang zum Seitenende Profil || Suche
007
26.04.2004, 18:36
Kriz



Soweit sind wir noch nicht ;)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
008
26.04.2004, 19:00
Radiant



das mit den embedded Texturen austauschen wäre genial :P

Wäre es auch möglich einfach gezielt bestimmte Texturpfade innerhalb von BSPs zu ändern?
Angenommen ich habe in meiner Map auf XY.000 faces die textur bla01 aus blubb.wad und möchte alle Vorkommenisse dieser Textur durch die Textur blabla05 aus wtf.wad ersetzen.

Das wären auch mal echt innovative features für HL mapping :D

--

But I think you have not been virgin before practising such kung-fu!
Otherwise, I couldn't have defeated you.
- San Fung Chang
Kleinmütige und Schwächlinge suchen den sicheren Weg. Über Gipfel geht der Held. - Lucius A. Seneca
g_bClipNazi = DEFAULT_CLIPNAZI;
Gratis Augenoberation!

zum Seitenanfang zum Seitenende Profil || Suche
009
26.04.2004, 21:23
Kriz



Tjaja, die Möglichkeiten sind derer viele ;)

So, das Wildcard-System funzt einwandfrei. Ich kann nun beim Eingabedialog für den Filterausdruck in der Übersicht der gefilterten Texturnamen bequem switchen zwischen den gefilterten Namen und den geskippten Namen (also die, die nicht dem Filter entsprechen). Das ganze habe ich per STL vector Template gelöst, welcher sowohl vorher vom Hauptdialog gesetzt als auch später wieder ausgelesen werden kann. Dabei enthält der Vektor nach dem Filtern nur noch die gefilterten Texturnamen. Eine Kopie (der Mastervektor) des Vektors ist dabei stets im Hauptdialog vorhanden, falls man seine Filterwünsche nochmals überdenken möchte. Er ersetzt dann beim erneuten Aufruf des Filterdialogs dessen eigenen Vektor (bla blubb).

Hier noch ein 2 Shots vom Filterdialog (is noch WIP):

Hier seht ihr das Resultat bei Eingabe des Filters *en*. Alle Namen, die irgendwo am Anfang, mittendrin oder am Ende 'en' haben, werden gefiltert und erscheinen in der Übersicht. Diese werden nicht gerippt.

Alle anderen dagegen landen in der Skipped Übersicht, werden also später aus der BSP gerippt.

Man verzeihe mir die rohen Worte, aber das ist Caedes' schlechter Einfluß, hrhr >:)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)


Dieser Beitrag wurde am 26.04.2004 um 21:40 von Kriz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
26.04.2004, 21:53
tommydanger



Nenn mich dumm, aber wie machst du das, bzw. was für eine Programmiersprache verwendest du: irgend ne Scriptsprache, C++, VB,... ?

e: bin schon auf den source gespannt, wie du das gemacht hast *darauslernenwill*
da kommt mir grad ich könnt für Ripents einen Editor schreiben, wenn dann aber nur für Win32 Konsole, just for fun ;)

--

IDF - a HL2 TC
Source Compile Analyzer v1.2b
too much is never enough -> happyhardcore.com


Dieser Beitrag wurde am 26.04.2004 um 21:56 von tommydanger bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
011
26.04.2004, 22:10
Kriz



Das ist C++ (MFC und Win32 API). Die Wildcard-Klasse habe ich aus einem GPL-2 Sourcecode entnommen und an die Windows-Gegebenheiten angepaßt. Kostprobe (noch unkommentiert und unoptimiert)?

Quellcode:void CFilterDlg::OnButNamePatternReset()
{
    // UPDATE, not Reset!!!

    UpdateData();

    if(m_strNamePattern.GetLength()==1 && m_strNamePattern.GetAt(0)==TCHAR('*'))
    {
        MessageBox(_T("You can't use the wildcard symbol alone as a pattern,")
        _T("\nbecause this would force Riptex to filter all textures!")
        _T("\nPlease use the wildcard symbol at least with one single")
        _T("\nASCII character.")
        _T("\n\nExamples:")
        _T("\n\n!* = Filter all water textures")
        _T("\n*abc = Filter all textures ending on 'abc'"),
        _T("Riptex 1.0 - Wildcard symbol abuse O_o"),
        MB_ICONSTOP | MB_OK);

        m_strNamePattern = _T("");

        GetDlgItem(IDC_EDIT_NAME_PATTERN)->SetFocus();
    }
    else
    {
        m_strResult.Empty();
        CString strIndex;
        int iCounter = 0,
            iIndex = 1;

        do
        {
            if(m_iFilterMode == 0)
            {
                if(CWildcard::FitWildcard(static_cast<LPCTSTR>(m_strNamePattern),
                static_cast<LPCTSTR>(m_vecFilteredTextures.at(iCounter))))
                {
                    strIndex.Format(_T("%d: "), iIndex);
                    m_strResult += strIndex;
                    m_strResult += static_cast<CString>(m_vecFilteredTextures.at(iCounter));
                    if(iCounter+1 < m_vecFilteredTextures.size()) m_strResult += _T("\r\n");
                    ++iIndex;
                }
            }
            else if(m_iFilterMode == 1)
            {
                if(!CWildcard::FitWildcard(static_cast<LPCTSTR>(m_strNamePattern),
                static_cast<LPCTSTR>(m_vecFilteredTextures.at(iCounter))))
                {
                    strIndex.Format(_T("%d: "), iIndex);
                    m_strResult += strIndex;
                    m_strResult += static_cast<CString>(m_vecFilteredTextures.at(iCounter));
                    if(iCounter+1 < m_vecFilteredTextures.size()) m_strResult += _T("\r\n");
                    ++iIndex;
                }
            }
        }while(++iCounter < m_vecFilteredTextures.size());
    }

    UpdateData(FALSE);
}

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
012
27.04.2004, 14:59
Kriz



Bin ab heute abend bis Sonntag weg im Urlaub, also Delay :D

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
013
27.04.2004, 22:57
[RMen]OneStone



Warum wird Vögeln bei *en* geskippt? Meines Wissens ist * doch 0 oder mehr bel. Zeichen und nicht 1 oder mehr Zeichen.

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
014
27.04.2004, 23:23
Exec



siehst du bei vögeln nen zusammenhängendes "en"? ich nich ... soweit ich das verstanden hab müssen die aber zusammenhängen ... das is ja bei jeder suche dann so, oder so o_O

--

"selbermachen rockt am meisten :D" - -LeJean-

zum Seitenanfang zum Seitenende Profil || Suche
015
27.04.2004, 23:32
KhanRKerensky



Einstein, das sind simple Wildcards und keine Regular Expressions. Sonst würde das * am Anfang doch wohl auch kein Sinn machen.

/edit
Wobei RegExps schon cool wären.

--

"[...] you're going to burn in a very special level of Hell. A level they reserve for child molesters and people who talk at the theater." - Book


Dieser Beitrag wurde am 27.04.2004 um 23:33 von KhanRKerensky bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
016
02.05.2004, 16:30
Kriz



So, zurück im Leben...

Dachte mir gerade, daß ich anstatt eines schreibeschützten Textfelds zur Darstellung einer Liste doch lieber ne Liste selber nehmen sollte. Da kann man dann noch andere Selektionen direkt in der Liste vornehmen.

Wie KhanRKerensky bereits bemerkt hat: Das ist ein ganz simples Wildcard-System und kein PERL-RegEx :). Ich könnte zwar aus dem PHP Quellcode deren RegEx übernehmen, aber ich will ja nur einen einfachen Filtermechanismus haben und keinen lexikalischen Scanner. Das System genügt den Anforderungen (zumindest muß ich wohl in dem Manual eine Abhandlung über das (noch relativ simple) UNIX-Wildcardssystem verfassen, damit es auch jeder rafft).

Cu

---EDIT---

Nun gut, der Filter Dialog ist erstmal soweit fertig:

Bla bla bla Features (für die, die es interessiert):

- UNIX Wildcard Filtering
- Anzeige zwischen gefilterten und ungefilterten Texturen in der BSP
- Name Pattern Textfeld aktualisiert Texturenliste nun beim Verlust des Fokus
- Bei Doppelklick auf einen Listeneintrag wird die Textur identifiziert
- Reset Button ist hinzugekommen

Wie gesagt analysiert das Programm auf die Schnelle beim Doppelklick auf einen Listeneintrag die Textur. Soll heißen, daß einfach nur mal schnell geguckt wird, um welchen Texturentyp es sich dabei handelt:

Ansonsten geht's fröhlich weiter...

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)


Dieser Beitrag wurde am 02.05.2004 um 19:52 von Kriz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
017
02.05.2004, 20:44
WareWolf



ich frag mich immer noch nach dem Sinn dieses Tools =)
ähhm, wenn ich aus einer (fremden?) bsp Texturen rippen will und gleich irgendwelche Namensfilter gebrauchen will, sollte ich doch zuerst die Texturen kennen, also habe ich bereits mit textract eine .wad gerippt und mir diese in wally angeguckt. Warum schmeiss ich dann nicht direkt in wally die nicht gewünschten Texturen sofort raus?
Außerdem solltest Du mal wieder unter die Leute gehen..die Namensbeispiele sprechen Bände ;=)

--

Sig as a brick ┴┬┴┬┴┬┴┬┴┬┴┬┴
WW

zum Seitenanfang zum Seitenende Profil || Suche
018
02.05.2004, 21:47
tommydanger



Kann man angeben in welche Wad man die Texturen schreiben will oder wird eine mapname.wad gemacht ?
wenn ja -> Kann man in eine bestehende Wad die zu rippenden Texturen anhängen?
Falls du das mit den Texture replacen hinbekommst ->

--

IDF - a HL2 TC
Source Compile Analyzer v1.2b
too much is never enough -> happyhardcore.com

zum Seitenanfang zum Seitenende Profil || Suche
019
02.05.2004, 22:03
Kriz



@WareWolf: Der Filter Dialog ist ein Subdialog des Hauptfensters und in diesem Hauptfenster werden alle in einer BSP gefundenen Texturen aufgelistet, also keine Bange. Wer den Filter nicht benutzen möchte, brauch ihn ja auch nicht zu benutzen :)

Hm, die Wortwahl geht auf Caedes zurück (wie erwähnt). Hrhr

@tommdydanger: Das ist der Weg:

- Standard-WAD (riptex.wad), wird bei jedem neuen Rippen überschrieben
- Eigener Name-WAD
- Direkt in Fremd-WAD importieren (mit Namenvergleich bei doppelten Namen)

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
020
23.07.2004, 23:03
WareWolf



*push* ein Vierteljahr ist mal wieder um und die deutsche Mappingszene lechzt nach frischen Tools =)

--

Sig as a brick ┴┬┴┬┴┬┴┬┴┬┴┬┴
WW

zum Seitenanfang zum Seitenende Profil || Suche
021
25.07.2004, 20:37
Kriz



Gemach, das RipTex Urkonzept habe ich über den Haufen geworfen, weil mir das Interface nicht so zugesagt hat. Ich wollte so ein Interface machen wie WinZip, stieß dann aber auf ein paar 'gleine Bropleme'...

Unter anderem sieht es so aus, als ob WinZip zwar äußerlich einem Dialog ähnelt, innerlich aber wohl ein SDI ist, d.h. die Ansichtsklasse ist bei WinZip von CListView abgeleitet anstatt direkt von CFrameWnd. Daher bastel ich Riptex nochmals komplett um.

--

K:R-I)Z++
"CSS ist cascading style sheets. Und nicht so'n Ranzspiel." - dp
In memory of Voice († 2005/03/30)

zum Seitenanfang zum Seitenende Profil || Suche
022
04.08.2004, 20:27
Tubgirl



Das ist schön. *bump*

--

zum Seitenanfang zum Seitenende Profil || Suche
023
07.08.2004, 21:02
LeJean



hups, nicht gesehen wie alt das schon ist ^^

--


Dieser Beitrag wurde am 07.08.2004 um 21:05 von LeJean bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
024
10.09.2004, 23:21
FSnaker_LOL



Echt? Klasse du bester Programmier, Kriz!!
Ich bin schwer beeindrückt.
Achtung das ist ein kleines Problem! Manchmal Dateitype automatisch anderes z.B. "wad in dups" In Thewall Forum "Huch Das ist wad Dateien nicht mehr anzeigen... "

Das ist komisch schau mal ihr Explorer z.B. x:\sierra\half-life\valve\filename.dups. Aber gibt es dort vorher normalerweise "..\filename.wad"
Woher kommt dieser Dateityp in HL Textures??
Ich habe ein Beispiel beweissen:

;-( Fsnaker_lol

--

Soon Fsnaker_lol uses Apple MacOS X
I eat an apple now!

zum Seitenanfang zum Seitenende Profil || Suche