Staredit Network > Forums > SC1 Mapping Tools > Topic: scmdraft - 0.9.0 info + nightly download (Post small feature req
scmdraft - 0.9.0 info + nightly download (Post small feature req
Apr 9 2017, 9:27 am
By: Suicidal Insanity
Pages: < 1 49 50 51 52 5354 >
 

Aug 10 2019, 5:07 pm Suicidal Insanity Post #1001

I see you !

You could write a batch script that copies the mpqs and launches scmdraft with a specified profile to cover the first two steps.




Aug 10 2019, 7:34 pm T-warp Post #1002



You could write a batch script that copies the mpqs and launches scmdraft with a specified profile to cover the first two steps.
Do we have a command line arguments? Like directly open a map or such.




Aug 10 2019, 9:38 pm Wormer Post #1003



When there are unnamed locations text trigedit assigns them names like "Unnamed Location (N)". If there happens to be a named location with the same name "Unnamed Location (N)" then the truly unnamed location is being compiled into this faked location. Faked location overrides special name. I found a way to enhance this to exclude the very possibility of corrupting behavior that can be used by various map obfuscators and the like to spoil our lives.

Make behavior opposite, i.e. make any location with id N accessible via that special name "Unnamed Location (N)" no matter what. This special meaning shouldn't be covered with the fake location name "Unnamed Location (N)" even if that location exists. If faked location with name "Unnamed Location (N)" has ID K then it is still available through it's own special name "Unnamed Location (K)".

Finally, before generating text triggers check map for unnamed locations. If there are unnamed locations then use special names for all locations in generated text, if there isn't it's safe to use locations natural names as it is now.

Optionally: rename this special name for unnamed locations to "Int:N" to better match what we have for units. In classic trigedit unnamed locations might display as "LocID:N" for consistency as well.

There is the same issue with forces that is being approached in the way opposite to locations current behavior. When there are unnamed forces their names in text triggers have special meaning, i.e. those names are not covered with faked names of the same kind. Let's say force 2 has name "Force 1", then "Force 1" in text triggers still references force 1.

Escape from this situation is the same: detect at least 1 unnamed force, and use text "Int:N" in place of all forces names in this case, otherwise natural forces names are safe and good to use. In classic trigedit display "PlayerID:N".

There is the other unpleasant situation when two entities (forces or locations) have same names. Detect that situation as well and fall back to special names of kind "Int:N" in this case too.

Summarize
My proposal is as follows:
1. Accept special names of kind "Int:N" in text trigedit as players and locations parameters at any time.
2. Those special names are never overriden by the same names of the corresponding entities, i.e. always work in a predictable way.
3. When there is a slick situation (presence of unnamed entities or entities with equal names) fall back to usage of these special names for all entities of this kind.
4. When there is an entity with user-provided name "Int:N" we have to fall back to special names for those entities too.
5. Accept special names of kind "LocID:N" in classic trigedit for consistency with what we have for players and units.
6. If there is a location with (malformed) name "LocID:N" then choose this malformed location in classic trigedit like you already do for units in deaths with malformed names "UnitID:N".

Comment on the last point, I agree that for classic trigedit this is a good behavior for people who aren't aware about this feature. In that case people at least get what they expect.

As a useful side effect, this will allow trigger generators to prepare SCMD text triggers that reference forces and locations without knowing or caring about their proper names in the map.

Post has been edited 23 time(s), last time on Aug 10 2019, 10:40 pm by Wormer.



Some.

Aug 10 2019, 10:49 pm jjf28 Post #1004

Cartography Artisan

Quote from Wormer
2. Those special names are never overriden by the same names of the corresponding entities, i.e. always work in a predictable way.

I took a different approach...
User Assigned Name > Default Name > Plain Number

But that was because I had to retain reverse compatibility.

But we could make a separate compile mode, e.g. classic, version X, version Y and make whatever we want from there.



Rs_yes-im4real - Clan Aura - jjf28.net84.net

Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

Aug 10 2019, 10:54 pm Wormer Post #1005



Quote from jjf28
I took a different approach...
User Assigned Name > Default Name > Plain Number
How plain numbers interfere with that? It would be best of the two worlds to accept plain numbers in those fields as well and keep everything as it is for backward compatibility. But I don't know how hard is it to implement different type of argument when "Int:N" functionality is already there for units.

Post has been edited 2 time(s), last time on Aug 11 2019, 12:55 am by Wormer.



Some.

Aug 11 2019, 12:49 am jjf28 Post #1006

Cartography Artisan

accepting plain numbers as the priority over the dynamic strings is where reverse compatibility is lost vs the old which was only the dynamic string if it existed



Rs_yes-im4real - Clan Aura - jjf28.net84.net

Reached the top of StarCraft theory crafting 2:12 AM CST, August 2nd, 2014.

Aug 11 2019, 1:00 am Wormer Post #1007



Quote from jjf28
accepting plain numbers as the priority over the dynamic strings is where reverse compatibility is lost vs the old which was only the dynamic string if it existed
Does it mean that your restriction was: ill-formed texts have to be ill-formed in the new version? Then yes... to me 'backwards compatible' means all well-formed texts are well-formed in the new version with the same semantics. Some texts ill-formed before can become well-formed in the new version though, that usually not a problem. I think I'm misunderstanding something :wtfage:

Anyway, in case SI is not very far from implementing integers as alternative arguments to players, locations, units, my modified proposal with those looks like this:
1. Accept integer numbers in text trigedit as arguments to players, locations, or units at any time.
2. When there are unnamed entities or entities with same names use integers for those entries only when generating text for trigedit.
3. Keep everything else as is for backward compatibility.
+ 5. and 6. from above unchanged for classic trigedit

My main concern is to avoid (let artificial, but still) cases when just a recompilation on text trigedit generates different result. Also provide a better interface for text trigger generators is of importance.

Post has been edited 4 time(s), last time on Aug 11 2019, 1:14 am by Wormer.



Some.

Aug 11 2019, 7:17 am T-warp Post #1008



Quote from jjf28
[quote=name:Wormer]
User Assigned Name > Default Name > Plain Number

But that was because I had to retain reverse compatibility.

Imagine all location names are nulled and text triggers are exported. It cannot be imported back, therefore preserving compatibility is pointless.


Quote from Wormer
When there are unnamed locations text trigedit assigns them names like "Unnamed Location (N)". If there happens to be a named location with the same name "Unnamed Location (N)" then the
6. If there is a location with (malformed) name "LocID:N" then choose this malformed location in classic trigedit like you already do for units in deaths with malformed names "UnitID:N".

Same effect goes for units, imagine someone renaming units to "UnitID:N" in the triggers. Exported data would be useless as well. My approach was to separate user define strings and IDs by parser ("Unit name" vs ID:0, qouteless).

Since exported triggers with ambiguous names could not be imported back correctly, it would make sense to add (or replace original with) some additional distinguishable parser token to each such ambiguity (replace quoted location names with unquoted location IDs, same with unit names and switches)




Aug 11 2019, 11:15 am Wormer Post #1009



Okay, I forgot switches, switches in the basket too!

Quote from T-warp
Same effect goes for units, imagine someone renaming units to "UnitID:N" in the triggers. Exported data would be useless as well. My approach was to separate user define strings and IDs by parser ("Unit name" vs ID:0, qouteless).
SCMD is tricky at places. This problem doesn't exist for units, because they are always referred with original names in exported text, i.e. marine is always 'Terran Marine' no matter the custom name you give.

But you got the point, basically how much different ID:# from just #? This is a cleaner solution to accept integers as arguments. If this is too much work, ambiguous names still can be exported when there is an unambigous naming scheme (like original names for units) to fall back in case of trouble.

It is possible to accept custom units names too. Fall back to original naming scheme in case when 1) someone gives zergling a name 'Terran Marine', 2) blanks out it's custom name to null string, 3) gives a name 'Brothers Twins' for both zergling and marine. Custom units names reference scheme is just less useful, because usually custom units names contain color codes and change more frequently, who wants to bother with color codes in triggers?

Post has been edited 1 time(s), last time on Aug 11 2019, 11:25 am by Wormer.



Some.

Aug 11 2019, 3:30 pm T-warp Post #1010



Quote from Wormer
Okay, I forgot switches, switches in the basket too!
But you got the point, basically how much different ID:# from just #?
What I meant was to differ on token type (in any way, either integer or keyworded integer, doesn't really matter), not the value. "Terran Marine" == 0, etc.




Aug 11 2019, 9:00 pm Suicidal Insanity Post #1011

I see you !

Aren't you worrying about a problem that the user is only causing himself? I mean what is the real world use case for the user naming his locations or switches to default names for other indices?




Aug 11 2019, 9:20 pm T-warp Post #1012



Aren't you worrying about a problem that the user is only causing himself? I mean what is the real world use case for the user naming his locations or switches to default names for other indices?
Users are stupid if they do that. The only real (valid) use case would be defense mechanism against map editing. Copying/pasting data from/to trigedit would corrupt them.




Aug 11 2019, 10:47 pm Wormer Post #1013



Aren't you worrying about a problem that the user is only causing himself? I mean what is the real world use case for the user naming his locations or switches to default names for other indices?

Quote from T-warp
The only real (valid) use case would be defense mechanism against map editing. Copying/pasting data from/to trigedit would corrupt them.

Quote from Wormer
I found a way to enhance this to exclude the very possibility of corrupting behavior that can be used by various map obfuscators and the like to spoil our lives.

There are two reasons besides unifying behavior and polishing stuff:
1. It's a backdoor for various obfuscation techniques.
2. Better interface for text trigger generators.

Shouldn't the now official SC editor be error-prone to corruption scenarios? :rolleyes:

Post has been edited 1 time(s), last time on Aug 11 2019, 10:55 pm by Wormer.



Some.

Aug 11 2019, 11:02 pm Suicidal Insanity Post #1014

I see you !

I'd honestly rather try to work on 4K support and ome other future features than some niche potential obfuscation technique, which in practice is unlikely as map protectos would strip out the location name and switch name strings anyhow. The new text engine already is a large step forward as before all invalid locations were just called "invalid location" etc.


E: Or possibly CurrentPlayer support. Or my 9.2TB backlog of photos.




Aug 11 2019, 11:46 pm Wormer Post #1015



Alright, I thought to catch on those in hot pursuit. Important things and personal priorities (like kittens :P) go first of course! Thank you for keeping the development, and CP-trick is probably more needed indeed.

There been a question about command line arguments, I forgot if it's documented anywhere as well?
Quote from T-warp
You could write a batch script that copies the mpqs and launches scmdraft with a specified profile to cover the first two steps.
Do we have a command line arguments? Like directly open a map or such.




Some.

Aug 12 2019, 12:01 am Suicidal Insanity Post #1016

I see you !

I thought I had em documented, but I couldn't find the list.

-map=[filename]

-profile=[xyz]


And will be removed in the next release:
-charEncoding=[codepage]


Also some legacy ones from the days when scmdraft generated the images for the staredit map DB, I do not know if those three still work.
-image and -minimapimage and -imageonly




Aug 12 2019, 7:21 am IlyaSnopchenko Post #1017

The Curious

Oh my lord, 9.2 TB! *bows* My entire archive is 750 GB.



Who am I, and why should I care?

Aug 12 2019, 7:52 am Suicidal Insanity Post #1018

I see you !

If I ever managed to get rid of the redundant and bad shots it would probably be less than half that size.




Aug 12 2019, 8:01 am IlyaSnopchenko Post #1019

The Curious

A few years back I spent 2,5 years re-sorting, re-culling and re-attributing all of my archive. Though I was only doing this as time allowed, mostly during the evenings after work. It's a biatch of a job. :)

OTT, why are you removing the codepage command line parameter?



Who am I, and why should I care?

Aug 12 2019, 8:35 am Suicidal Insanity Post #1020

I see you !

Because it is in the settings UI now. (Although the official release is failing to store/load that setting, so its good that the command line still exists)




Options
Pages: < 1 49 50 51 52 5354 >
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[05:07 am]
NudeRaider -- Ultraviolet
Ultraviolet shouted: NudeRaider <3
even though I clearly put no effort into those arrows? :P
[05:06 am]
NudeRaider -- http://i.snipboard.io/k3C9O2.jpg ... because all the main characters suffocated during this scene
[03:41 am]
Ultraviolet -- NudeRaider
NudeRaider shouted: Ultraviolet http://i.snipboard.io/UcMhWZ.jpg
<3
[02:13 am]
NudeRaider -- actually without special measures "only" 2GB
[01:24 am]
NudeRaider -- The changes are all "under the hood" main reason for 64 bit is access to more than ~3.5GB RAM. Probably not relevant to Starcraft though.
[09:28 pm]
Zoan -- Does that change much?
[07:31 pm]
NudeRaider -- Ultraviolet
Ultraviolet shouted: how do? Just open the 32bit exe from program files? Or is there something I need to change in the launcher app?
http://i.snipboard.io/UcMhWZ.jpg
[05:49 pm]
Ultraviolet -- how do? Just open the 32bit exe from program files? Or is there something I need to change in the launcher app?
[05:47 pm]
Ultraviolet -- will do
[12:20 pm]
Suicidal Insanity -- try 32bit?
Please log in to shout.


Members Online: Roy, Zichse80, KrayZee