Author Topic: Progress of the SciStudio  (Read 2829 times)

0 Members and 1 Guest are viewing this topic.

Offline Brian Provinciano

Re:Progress of the SciStudio
« Reply #15 on: October 25, 2003, 11:44:58 AM »
realy? can you give some examples of such differences between the sci-studio syntax and the original sci syntax?

Funny you should ask. I just started writing this a couple days ago while working on the decompiler:


Sierra's SCI Language vs. SCI Studio Language

Temporary and Param Variables
=============================

In SCI Studio's Language, the parameter variables are specified at the top of the function declaration, and the function's temporary variables are declared within the function block. In Sierra's SCI Language, both variables were declared in the function declaration, with the temporary variable separated and declared with a "&tmp" keyword.

SCI Studio:
   (method (changeState newState)
      (var whichSkill, oldGold)
      ...
   )

Sierra's SCI:
   (method (changeState newState &tmp whichSkill oldGold)
      ...
   )

Procedures
==========

Sends
=====

SCI Studio:
   (StatusLine:
      code(endStatus)
      enable()
   )
   (send cSound:stop())

Sierra's SCI:
   (StatusLine
      code: endStatus,
      enable:
   )
   (cSound stop:)


Object Names
============

Simple immediate name declaration even if the name is non alphanumeric.

SCI Studio:
   (instance {glory1.sav} of File
      (properties)
   )

Sierra's SCI:
   (instance heroinfo of File
      (properties
         name   {glory1.sav})
   )


Switch Statements
=================

SCI Studio's switch statements use clearer case definitions and allow an unlimited amount of calculations in a case comparison.

      (switch (= state newState)
         (case (1)
            ...
         )
         (case (2)
            ...
         )
      )

      (switch (= state newState)
         (1
            ...
         )
         (2
            ...
         )
      )


The &rest Opcode
================

The rest opcode is a very versatile feature that was underutilized in Sierra's SCI language. In SCI Studio, you can "rest" from any parameter you like at any time.

SCI Studio:
   (method (init params)
      (super:init(rest params)
      ...
   )

Sierra's SCI:
   (method (init)
      (super init: &rest)
      ...
   )

Strings
=======

SCI Studio encloses all strings in quotes (ie. "string"). External strings in text resources are manually specified by text resource number and index. In Sierra's SCI Language, if a string was specified in quotes, it was automatically placed in the text file, otherwise, embedded strings used curly braces (ie. {string}), and spaces needed to be specified as "_".

SCI Studio:
   Print(
      "Do you want to try importing your character again?" // (or '805 123' for text.805)
      #button "Yes" 1
      #button " No " 0
   )

Sierra's SCI:
   (Print
      "Do you want to try importing your character again?"
      #button: {Yes} 1
      #button: {_No_} 0
   )




Notes
=====

Sierra generally places any game strings/text such as dialog text in the text resource files, and any UI text, such as button names, window titles and menu item text embedded in the script resources.

Offline robingravel

Re:Progress of the SciStudio
« Reply #16 on: October 25, 2003, 01:16:29 PM »
Brian. Please.

Don't change Sci Studio more like c++. I like the way it works now.

Robin Gravel

Offline Chris Cromer

Re:Progress of the SciStudio
« Reply #17 on: October 25, 2003, 03:01:15 PM »
Robin, read Brian's post above:

Code: [Select]
I won't get rid of the SCI language and switch it to C. For one, I have the whole templates in SCI, plus I want it to use the language from SCI0 to SCI32. However, I may make a C compiler in addition. The SCI Studio language is similar to Sierra's SCI, but not exact, so real scripts couldn't be compiled with it. I didn't do it exactly because there were some syntaxes of it that just seemed like poor decisions, and I felt I had to change them.
Chris Cromer

It's all fun and games until someone get's hurt then it's just fun. ;)

Offline robingravel

Re:Progress of the SciStudio
« Reply #18 on: October 25, 2003, 04:08:52 PM »
Oops. Missed that.


Robin Gravel

Sideshow

  • Guest
Re:Progress of the SciStudio
« Reply #19 on: November 04, 2003, 03:13:47 AM »
So will the release of SCI Studio VGA allow us to, say, go through and perform bug fixes on the old games (i.e. the ridiculous timer errors in SQ4 and virtually every game from that era)? Will the release of the new SCI Studio finally end the plight of Error 52?

If this is so, I'd propose volunteers (and I'm sure there'd be many) to create patches for these games up for free download from here or various other sites so people who aren't as code savvy as others can enjoy playing their old games without the woes of Error 52 or having .000001 seconds to get from one side of the screen to the other. Will all this be possible with the new SCI Studio????

-Sideshow

Offline Chris Cromer

Re:Progress of the SciStudio
« Reply #20 on: November 04, 2003, 03:48:28 AM »
So will the release of SCI Studio VGA allow us to, say, go through and perform bug fixes on the old games (i.e. the ridiculous timer errors in SQ4 and virtually every game from that era)? Will the release of the new SCI Studio finally end the plight of Error 52?

If this is so, I'd propose volunteers (and I'm sure there'd be many) to create patches for these games up for free download from here or various other sites so people who aren't as code savvy as others can enjoy playing their old games without the woes of Error 52 or having .000001 seconds to get from one side of the screen to the other. Will all this be possible with the new SCI Studio????

-Sideshow
Please read this topic:
http://www.mega-tokyo.com/forum/index.php?board=5;action=display;threadid=4831
Chris Cromer

It's all fun and games until someone get's hurt then it's just fun. ;)


SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.033 seconds with 22 queries.