Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Proposal: Relocatable Rows #6

Open
Crazycolorz5 opened this issue Jul 26, 2018 · 1 comment
Open

Feature Proposal: Relocatable Rows #6

Crazycolorz5 opened this issue Jul 26, 2018 · 1 comment
Assignees

Comments

@Crazycolorz5
Copy link
Member

Crazycolorz5 commented Jul 26, 2018

One advantage of the FE:Destiny method over C2EA is that,

          //Enemies
          //Prologue Enemies
          setCharacterBases(PrologueGeneric1, 3, negateByte(1), 0, 2, 2, 5, 0, 0)
          setCharacterBaseLevel(PrologueGeneric1, 2)
          setCharacterName(PrologueGeneric1, PrologueGeneric_Name)
          setCharacterDescription(PrologueGeneric1, PrologueGeneric_Description)

It's easier to redefine which row gets changed by redefining, in this example, PrologueGeneric1.

In C2EA, to relocate a definition, one must not only change it in their definitions, but also their row in the CSV. This usually involves copying back the row from a previous version as as well overwriting a different row with your changes.

I'd like C2EA to be able to operate in a mode where one specifies the rows to change rather than inserting the table wholesale as it currently does. Then, the rows specified to change can be controlled via definitions.

As an example output, currently a table may look like (Taken from VBA2's Boss Quote Editor):

#define csvmacro023(arg000,arg001,arg002,arg003,arg004,arg005,arg006,arg007,arg008,arg009) "BYTE arg000 arg001 arg002 arg003 arg004 arg005 arg006 arg007 ;SHORT arg008 ;BYTE arg009 "

PUSH
ORG 0x9ec6bc
csvmacro023(0x45,0x0,0x2,0x0,0x40,0x0,0x0,0x0,0x90a,0x0 0x0 0x0 0x0 0x0 0x0)
csvmacro023(0x0,0x0,0x68,0x0,0x0,0x0,0x1,0x0,0x916,0x0 0x0 0x0 0x0 0x0 0x0)
csvmacro023(0x68,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x916,0x0 0x0 0x0 0x0 0x0 0x0)
csvmacro023(0x0,0x0,0x46,0x0,0x1,0x0,0x1,0x0,0x935,0x0 0x0 0x0 0x0 0x0 0x0)
csvmacro023(0x46,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x935,0x0 0x0 0x0 0x0 0x0 0x0)
csvmacro023(0x0,0x0,0x47,0x0,0x2,0x0,0x1,0x0,0x960,0x0 0x0 0x0 0x0 0x0 0x0)
. . . (continues)

Under this proposal, one would be able to define specific rows to edit rather than writing the whole table. So if the CSV could look instead look like (if we only wanted to change one of the quotes):

ROWS 0x9ec6bc,Initiator,##UNKNOWN##,Receiver,##UNKNOWN##,Chapter/Map,##UNKNOWN##,Trigger ID,##UNKNOWN##,Text ID,##UNKNOWN##
MyBossQuote,0x68,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x916,0x0

And the generated output would be

#define csvmacro023(row, arg000,arg001,arg002,arg003,arg004,arg005,arg006,arg007,arg008,arg009) "ORG TableStart +  0x10 * row; BYTE arg000 arg001 arg002 arg003 arg004 arg005 arg006 arg007 ;SHORT arg008 ;BYTE arg009 "

PUSH
{
ORG 0x9ec6bc
TableStart:
csvmacro023(MyBossQuote,0x68,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x916,0x0 0x0 0x0 0x0 0x0 0x0)
}
POP

And MyBossQuote could be defined elsewhere.
Of course, keeping 0x2 as the entry in the first column would also be valid.

@Crazycolorz5 Crazycolorz5 self-assigned this Jul 26, 2018
@Crazycolorz5
Copy link
Member Author

I expect this to be most useful in

  • Character Tables in fully custom hacks
  • Skill installation tables and the like, where everything to be added has a definition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant