Commit Graph

191 Commits

Author SHA1 Message Date
Glenn Maynard b113467c20 Mark the directory of actor definition XNodes in the nodes themselves.
Use ActorUtil::GetAttrPath to look up a path, with automatic
handling of relative paths.  This way, we don't need to do it
in every place we look up paths.

(For Lua nodes, this will be set by Lua.)
2006-10-09 06:54:52 +00:00
Glenn Maynard 7d795e5703 first-pass: actor descriptions in Lua 2006-10-09 05:51:12 +00:00
Glenn Maynard 206f731d79 simplify 2006-10-09 05:18:17 +00:00
Glenn Maynard 612e2fa1df simplify 2006-10-09 05:16:35 +00:00
Glenn Maynard c54bdfc412 AppendAttrFrom 2006-10-09 05:14:23 +00:00
Glenn Maynard d7776aba60 evaluate enums directly 2006-10-09 01:34:16 +00:00
Glenn Maynard e0b788de16 unneeded LuaHelpers::RunAtExpressionS 2006-10-09 01:22:17 +00:00
Glenn Maynard 3cae60d6fd Currently, expression handling in XML is spotting and inconsistent.
Each actor type needs to evaluate attributes; only a few do.  Strings
are handled with the "@foo()" notation.

Instead, after loading an XML file for loading as an actor,
precompile all XML attributes as Lua expressions.

The primary difference to code is:
 - previously, Attr="string" would act as a string if it was being
   read as one.  Now, specify Attr='"string"'.  Attr="@string" is
   a shorthand.  (note that @strings will not be parsed as Lua
   strings, so can not use Lua escape characters)
 - previously, Attr="@func()" would evaluate func(), and the value
   of the attribute would be the return value of the function.  This
   was only supported for a few attributes.  Now, say Attr="func()",
   and this will work for all fields.
 - Attributes of other types are unchanged, except that all attributes
   may be Lua expressions, eg. Width="SCREEN_WIDTH".
 - Attributes names ending with "Command" are special, like metrics.
   Prefix "%" to disable this.

This brings XML handling in line with metric handling.  (This is an intermediary
step; I have another idea that follows from this that should eliminate the annoying
"'foo'"/"@foo".)
2006-10-09 00:49:30 +00:00
Glenn Maynard 6322ded0dc move command parsing into LuaHelpers. It's not Actor-specific other
than a few compatibility hacks.
2006-10-08 22:24:15 +00:00
Glenn Maynard 6808723b85 XNodeValue base class, Copy() 2006-10-06 06:26:53 +00:00
Glenn Maynard 430a794b31 fix copy 2006-10-04 23:42:08 +00:00
Glenn Maynard 1a89ddfccd pointer to attributes 2006-10-03 00:07:01 +00:00
Glenn Maynard 83defce27b XML update 2006-10-02 22:52:57 +00:00
Glenn Maynard d188c2fd12 use GetName, GetValue 2006-10-02 06:12:42 +00:00
Glenn Maynard 85eb3e0a05 more useful error messages 2006-09-29 07:24:40 +00:00
Glenn Maynard 02a4b35d51 bound alignment constants 2006-09-26 20:00:27 +00:00
Glenn Maynard 46b2444705 remove special cases 2006-09-26 09:08:36 +00:00
Glenn Maynard f567a0fd28 cleanup arg order 2006-09-26 08:54:54 +00:00
Glenn Maynard 3eddfac7fc nil already pushed 2006-09-23 02:48:12 +00:00
Glenn Maynard c9045a920c use RunExpression 2006-09-23 02:25:36 +00:00
Glenn Maynard 0ad4fcf6e2 ParseActorCommands( Lua *, sCommands ) -> onto stack 2006-09-22 18:59:26 +00:00
Glenn Maynard 6da267ae30 make compile errors for commands less fatal 2006-09-22 18:58:00 +00:00
Glenn Maynard 8cb1c66023 remove SetName 2006-09-22 09:43:12 +00:00
Glenn Maynard f8c1675309 allocate later
don't set name for binary chunks
2006-09-22 04:56:35 +00:00
Glenn Maynard 6f1dbf32d5 don't specify a dummy name for the expression, so RunScript
shows useful error messages
2006-09-22 04:25:38 +00:00
Glenn Maynard 355fdd7264 ActorCommands -> ActorUtil::ParseActorCommands 2006-09-21 02:36:40 +00:00
Glenn Maynard 3a57dca6c4 ActorCommands -> ActorUtil::ParseActorCommands 2006-09-21 02:24:22 +00:00
Steve Checkoway 6ea2a41b00 Cleanup RageException::Throw(). Do not use ssprintf() inside of Throw() and do not pass it bare error messages. Use RageException::Throw( "%s", sError.c_str() ); instead. Be consistent with quoting file names "%s" and theme metrics as "%s : %s". Try to make them complete English sentences when possible. 2006-09-17 01:19:19 +00:00
Steve Checkoway 6051deb2a8 Comment. 2006-09-16 03:59:02 +00:00
Jason Felds 43bc8400a0 Tab cleanup. 2006-08-18 03:09:42 +00:00
Glenn Maynard 30963ab843 all dialogs are warnings 2006-08-16 01:58:44 +00:00
Glenn Maynard bf3d73fcef unwrap 2006-08-16 01:56:54 +00:00
Glenn Maynard 4ab47c8f0c Throw -> Dialog 2006-08-16 01:56:16 +00:00
Glenn Maynard 8af826fc3f set parent before calling LoadFromNode 2006-08-15 19:25:45 +00:00
Glenn Maynard 832679370b remove unused params 2006-08-15 19:19:59 +00:00
Glenn Maynard 52eccf2a8f copy in Sprite's diagnostic: show the possible matches
(always do it; useful in release too)
2006-07-27 22:56:43 +00:00
Glenn Maynard 796b10f90f old comment 2006-07-27 22:49:21 +00:00
Glenn Maynard dc15096294 language filtering for XML-referenced files 2006-03-02 04:59:37 +00:00
Chris Danford 220e204485 cleanup 2006-01-29 22:13:16 +00:00
Glenn Maynard cc952be781 fix ActorParam::Release 2006-01-24 04:56:29 +00:00
Chris Danford 7f821e8cfc CString -> RString 2006-01-22 01:00:06 +00:00
Glenn Maynard 6b7b6f5cd7 fix restoring params 2006-01-18 06:14:58 +00:00
Glenn Maynard 87b25c0752 fix crash 2006-01-14 06:02:59 +00:00
Glenn Maynard 6344476389 add ActorUtil::ActorParam helper 2006-01-14 05:27:29 +00:00
Glenn Maynard b734b602d2 force TypeName arrays for XToString to be an array of const char*, not CString 2006-01-04 22:30:51 +00:00
Steve Checkoway ada5f4f00f Use ASSERT like a function. 2005-12-30 13:19:40 +00:00
Chris Danford 353e0c5b6e break up arch stuff into smaller .cpp files to fix smpackage build and not pull in unnecessary stuff 2005-12-16 04:16:09 +00:00
Chris Danford 37f82b43f7 remove CStringArray #define 2005-12-09 21:36:22 +00:00
Chris Danford 047e5eda8a add comments 2005-12-05 19:12:49 +00:00
Glenn Maynard 9f210adf3e don't THEME->EvaluateString here; it's unnecessary and actually using it is slow 2005-10-29 03:30:16 +00:00