/* * Copyright (c) 2005 (Mike) Maurice Kienenberger (mkienenb@gmail.com) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package org.gamenet.application.mm8leveleditor.control; import java.awt.FlowLayout; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Map; import javax.swing.BoxLayout; import javax.swing.JComponent; import javax.swing.JFormattedTextField; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.BevelBorder; import org.gamenet.application.mm8leveleditor.data.CoordinateSet; import org.gamenet.application.mm8leveleditor.data.Event; import org.gamenet.application.mm8leveleditor.data.EventFormat; import org.gamenet.application.mm8leveleditor.data.EventFormat.IndirectValue; import org.gamenet.swing.controls.ByteDataTableControl; import org.gamenet.swing.controls.IntTextField; import org.gamenet.swing.controls.IntValueHolder; import org.gamenet.swing.controls.ObjectValueHolder; import org.gamenet.swing.controls.StringComboBox; import org.gamenet.swing.controls.StringTextField; import org.gamenet.swing.controls.StringValueHolder; import org.gamenet.swing.controls.Vertex3DTextFieldPanel; import org.gamenet.swing.controls.Vertex3DValueHolder; public class EventControl extends JPanel { private static final long serialVersionUID = 1L; private Event event = null; public EventControl(Event anEvent) { super(); this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); this.event = anEvent; JPanel flowLayoutPanel = new JPanel(new FlowLayout(FlowLayout.LEFT)); this.add(flowLayoutPanel); flowLayoutPanel.add(new JLabel("Event#")); JFormattedTextField eventNumberTextField = new JFormattedTextField(new Integer(this.event.getEventNumber())); eventNumberTextField.setColumns(5); eventNumberTextField.addPropertyChangeListener("value", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { event.setEventNumber(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); } }); flowLayoutPanel.add(eventNumberTextField); flowLayoutPanel.add(new JLabel("Seq#")); JFormattedTextField eventSequenceNumberTextField = new JFormattedTextField(new Integer(this.event.getSequenceNumber())); eventSequenceNumberTextField.setColumns(3); eventSequenceNumberTextField.addPropertyChangeListener("value", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { event.setSequenceNumber(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); } }); flowLayoutPanel.add(eventSequenceNumberTextField); flowLayoutPanel.add(new JLabel(event.getEventFormat().getCommandTypeName(event.getCommandType()))); if (event.getEventFormat().isDebugging(event)) { JPanel flowLayoutPanel2 = new JPanel(new FlowLayout(FlowLayout.LEFT)); this.add(flowLayoutPanel2); flowLayoutPanel2.add(new JLabel(event.getEventFormat().eventDescription(event))); JPanel flowLayoutPanelUnderstood = new JPanel(new FlowLayout(FlowLayout.LEFT)); this.add(flowLayoutPanelUnderstood); addEventControls(flowLayoutPanelUnderstood); ByteDataTableControl eventBDTC = new ByteDataTableControl(event.getRawData(), event.getRawData().length, 0); this.add(eventBDTC); this.setBorder(new BevelBorder(BevelBorder.LOWERED)); } else if (event.getEventFormat().isUnderstood(event)) { addEventControls(flowLayoutPanel); } else { JPanel flowLayoutPanel2 = new JPanel(new FlowLayout(FlowLayout.LEFT)); this.add(flowLayoutPanel2); flowLayoutPanel2.add(new JLabel(event.getEventFormat().eventDescription(event))); ByteDataTableControl eventBDTC = new ByteDataTableControl(event.getRawData(), event.getRawData().length, 0); this.add(eventBDTC); this.setBorder(new BevelBorder(BevelBorder.LOWERED)); } } /************ if (EventFormatMM6.TARGET_TYPE__ITEM == targetTypeValueSource.getValue()) { final IndirectValue<Integer,String> itemTxtNameIndirectValue = new IndirectValue<Integer,String>() { public int getDirectArgumentDataType() { return EventFormat.ARGUMENT_DATA_TYPE__STRING; } public Integer getIndirectValueForDirectValue(String directValue) { throw new RuntimeException("Unsupported: indirect modification of items.txt."); } public String getDirectValueForIndirectValue(Integer indirectValue) { if (null == ResourceServer.getInstance().getItemsTxt()) { return "WARNING: **No items.txt resource found**"; } try { return ResourceServer.getInstance().getItemsTxt().getItemNameAtIndex(indirectValue.intValue()); } catch (IndexOutOfBoundsException e) { return "WARNING: **No item value found at index " + indirectValue + " in items.txt resource file**"; } } }; StringTextField indirectTargetNumberTextField = new StringTextField(new StringValueHolder() { public int getMaxLength() { return itemTxtNameIndirectValue.getDirectValueForIndirectValue(targetTypeValueSource.getValue()).length(); } public String getValue() { return itemTxtNameIndirectValue.getDirectValueForIndirectValue(targetTypeValueSource.getValue()); } public void setValue(String value) { throw new RuntimeException("Unsupported modification -- need to create reference in remote lookup table instead"); // currentEvent.setArgumentAtIndex(argumentIndex, ((IndirectValue<Integer,String>)indirectValue).getIndirectValueForDirectValue(value)); } }); indirectTargetNumberTextField.setEnabled(false); panel.add(indirectTargetNumberTextField); } **********/ private void createIndirectControl(JPanel eventControlsPanel, final Event currentEvent, final String prefixLabel, final String suffixLabel, final int dataFieldSize, final int argumentIndex, final IndirectValue<Integer,String> indirectValue) { JComponent inputControl; int directArgumentDataType = indirectValue.getDirectArgumentDataType(); switch (directArgumentDataType) { case EventFormat.ARGUMENT_DATA_TYPE__STRING: inputControl = new StringTextField(new StringValueHolder() { public int getMaxLength() { int argument = ((Number)currentEvent.getArgumentAtIndex(argumentIndex)).intValue(); String directValueForIndirectValue = indirectValue.getDirectValueForIndirectValue(argument); return directValueForIndirectValue.length(); } public String getValue() { return ((IndirectValue<Integer,String>)indirectValue).getDirectValueForIndirectValue(((Number)currentEvent.getArgumentAtIndex(argumentIndex)).intValue()); } public void setValue(String value) { throw new RuntimeException("Unsupported modification -- need to create reference in remote lookup table instead"); // currentEvent.setArgumentAtIndex(argumentIndex, ((IndirectValue<Integer,String>)indirectValue).getIndirectValueForDirectValue(value)); } }); inputControl.setEnabled(false); break; default: throw new RuntimeException("Unsupported indirectArgumentDataType: " + directArgumentDataType); } eventControlsPanel.add(inputControl); } private void createControl(JPanel eventControlsPanel, final Event currentEvent, final String prefixLabel, final String suffixLabel, final int dataFieldSize, final int argumentIndex) { if (null != prefixLabel) { eventControlsPanel.add(new JLabel(prefixLabel)); } JComponent inputControl; int argumentDataType = currentEvent.getArgumentDataTypeAtIndex(argumentIndex); switch (argumentDataType) { case EventFormat.ARGUMENT_DATA_TYPE__UNSIGNED_BYTE: inputControl = new IntTextField(3, new IntValueHolder() { public int getValue() { return ((Number)currentEvent.getArgumentAtIndex(argumentIndex)).intValue(); } public void setValue(int value) { currentEvent.setArgumentAtIndex(argumentIndex, new Integer(value)); } }); break; case EventFormat.ARGUMENT_DATA_TYPE__UNSIGNED_SHORT: inputControl = new IntTextField(5, new IntValueHolder() { public int getValue() { return ((Number)currentEvent.getArgumentAtIndex(argumentIndex)).intValue(); } public void setValue(int value) { currentEvent.setArgumentAtIndex(argumentIndex, new Integer(value)); } }); break; case EventFormat.ARGUMENT_DATA_TYPE__SIGNED_INT: inputControl = new IntTextField(5, new IntValueHolder() { public int getValue() { return ((Number)currentEvent.getArgumentAtIndex(argumentIndex)).intValue(); } public void setValue(int value) { currentEvent.setArgumentAtIndex(argumentIndex, new Integer(value)); } }); break; case EventFormat.ARGUMENT_DATA_TYPE__STRING: inputControl = new StringTextField(new StringValueHolder() { public int getMaxLength() { return currentEvent.getEventFormat().getArgumentTypeDataSize( currentEvent.getEventFormat().getArgumentTypeAtIndexForCommandType( argumentIndex, currentEvent.getCommandType())) - 1; } public String getValue() { return (String)currentEvent.getArgumentAtIndex(argumentIndex); } public void setValue(String value) { currentEvent.setArgumentAtIndex(argumentIndex, value); } }); break; case EventFormat.ARGUMENT_DATA_TYPE__COORDINATE_SET: inputControl = new Vertex3DTextFieldPanel(new Vertex3DValueHolder() { public int getX() { CoordinateSet coordinateSet = (CoordinateSet)currentEvent.getArgumentAtIndex(argumentIndex); return coordinateSet.getX(); } public void setX(int x) { CoordinateSet coordinateSet = (CoordinateSet)currentEvent.getArgumentAtIndex(argumentIndex); coordinateSet.setX(x); } public int getY() { CoordinateSet coordinateSet = (CoordinateSet)currentEvent.getArgumentAtIndex(argumentIndex); return coordinateSet.getY(); } public void setY(int y) { CoordinateSet coordinateSet = (CoordinateSet)currentEvent.getArgumentAtIndex(argumentIndex); coordinateSet.setY(y); } public int getZ() { CoordinateSet coordinateSet = (CoordinateSet)currentEvent.getArgumentAtIndex(argumentIndex); return coordinateSet.getZ(); } public void setZ(int z) { CoordinateSet coordinateSet = (CoordinateSet)currentEvent.getArgumentAtIndex(argumentIndex); coordinateSet.setZ(z); } }); break; case EventFormat.ARGUMENT_DATA_TYPE__CHOICE_PULLDOWN: Map argumentTypeValuesMap = currentEvent.getEventFormat().getArgumentTypeChoicesArray( currentEvent.getEventFormat().getArgumentTypeAtIndexForCommandType( argumentIndex, currentEvent.getCommandType())); inputControl = new StringComboBox(argumentTypeValuesMap, new ObjectValueHolder() { public Object getValue() { return currentEvent.getArgumentAtIndex(argumentIndex); } public void setValue(Object value) { currentEvent.setArgumentAtIndex(argumentIndex, value); } }); break; case EventFormat.ARGUMENT_DATA_TYPE__PLACEHOLDER: inputControl = new JLabel("."); break; default: throw new RuntimeException("Unsupported argumentDataType: " + argumentDataType); } eventControlsPanel.add(inputControl); if (null != suffixLabel) { eventControlsPanel.add(new JLabel(suffixLabel)); } } private void addEventControls(JPanel eventControlsPanel) { final Event currentEvent = this.event; int[] argumentTypeArray = currentEvent.getEventFormat().getArgumentTypeArrayForCommandType(currentEvent.getCommandType()); String[] prefixLabelArray = currentEvent.getEventFormat().getArgumentTypePrefixLabelArrayForCommandType(currentEvent.getCommandType()); String[] suffixLabelArray = currentEvent.getEventFormat().getArgumentTypeSuffixLabelArrayForCommandType(currentEvent.getCommandType()); // IMPLEMENT: sort arguments by ordering for display int[] sortOrderingArray = currentEvent.getEventFormat().getArgumentTypeSortOrderingArrayForCommandType(currentEvent.getCommandType()); int targetTypeHowManyAgo = 0; for (int argumentTypeIndex = 0; argumentTypeIndex < argumentTypeArray.length; argumentTypeIndex++) { String label = null; final int finalArgumentIndex = argumentTypeIndex; final int argumentType = argumentTypeArray[argumentTypeIndex]; boolean isIndirect = currentEvent.getEventFormat().getArgumentTypeIsIndirectFor(currentEvent, argumentTypeIndex); final int dataFieldSize = currentEvent.getEventFormat().getArgumentTypeDataSize(argumentType); targetTypeHowManyAgo--; boolean needsControlCreated = true; switch (argumentType) { case EventFormat.ARGUMENT_TYPE__ZERO_BYTE_PLACEHOLDER: // No need to create a control or display anything for this type needsControlCreated = false; break; // case EventFormat.ARGUMENT_TYPE__TARGET_TYPE: // needsControlCreated = false; // addTargetControlsToPanel( // eventControlsPanel, // new IntValueHolder() { // // IMPLEMENT: ARGUMENT_TYPE__TARGET_TYPE works for mm8 but should be a ByteValueHolder for mm6/7 // public int getValue() { return ((Number)currentEvent.getArgumentAtIndex(finalArgumentIndex)).intValue(); } // public void setValue(int value) { currentEvent.setArgumentAtIndex(finalArgumentIndex, new Integer(value)); } // }, // new IntValueHolder() { // public int getValue() { return ((Number)currentEvent.getArgumentAtIndex(finalArgumentIndex+1)).intValue(); } // public void setValue(int value) { currentEvent.setArgumentAtIndex(finalArgumentIndex+1, new Integer(value)); } // }); // targetTypeHowManyAgo = 2; // break; // IMPLEMENT: replace ARGUMENT_TYPE__FACE_IMAGE_NUMBER with a pulldown combobox case EventFormat.ARGUMENT_TYPE__FACE_IMAGE_NUMBER: label = "FACE_IMAGE_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__UNKNOWN_BYTE: label = "UNKNOWN_BYTE"; break; case EventFormat.ARGUMENT_TYPE__UNKNOWN_SHORT: label = "UNKNOWN_SHORT"; break; case EventFormat.ARGUMENT_TYPE__UNKNOWN_INTEGER: label = "UNKNOWN_INTEGER"; break; case EventFormat.ARGUMENT_TYPE__UNKNOWN_ZERO_BYTE: label = "UNKNOWN_ZERO_BYTE"; break; case EventFormat.ARGUMENT_TYPE__UNKNOWN_ZERO_SHORT: label = "UNKNOWN_ZERO_SHORT"; break; case EventFormat.ARGUMENT_TYPE__UNKNOWN_ZERO_INTEGER: label = "UNKNOWN_ZERO_INTEGER"; break; case EventFormat.ARGUMENT_TYPE__SEQUENCE: label = "SEQUENCE"; break; case EventFormat.ARGUMENT_TYPE__2DEVENT_NUMBER: label = "2dEvent#"; break; case EventFormat.ARGUMENT_TYPE__LOCAL_EVENT_STRING_NUMBER: label = "LOCAL_EVENT_STRING_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__DIALOG_NUMBER: label = "DIALOG_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__MINI_ICON_NUMBER: label = "MINI_ICON_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__CHEST_NUMBER: label = "CHEST_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__PARTY_MEMBER: label = "PARTY_MEMBER"; break; case EventFormat.ARGUMENT_TYPE__3DOBJECT_NUMBER: label = "3DOBJECT_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__FACET_NUMBER: label = "FACET_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__SPRITE_NUMBER: label = "SPRITE_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__BOOLEAN: label = "BOOLEAN"; break; case EventFormat.ARGUMENT_TYPE__SPECIES_TYPE: label = "SPECIES_TYPE"; break; case EventFormat.ARGUMENT_TYPE__SUBSPECIES_TYPE: label = "SUBSPECIES_TYPE"; break; case EventFormat.ARGUMENT_TYPE__MONSTER_CREATION_COUNT: label = "MONSTER_CREATION_COUNT"; break; case EventFormat.ARGUMENT_TYPE__SPELL_NUMBER: label = "SPELL_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__SPELL_SKILL_EXPERTISE: label = "SPELL_SKILL_EXPERTISE"; break; case EventFormat.ARGUMENT_TYPE__SPELL_SKILL_LEVEL: label = "SPELL_SKILL_LEVEL"; break; case EventFormat.ARGUMENT_TYPE__NPCTEXT_NUMBER: label = "NPCTEXT_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__NPCDATA_NUMBER: label = "NPCDATA_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__NPC_MENU_INDEX: label = "NPC_MENU_INDEX"; break; case EventFormat.ARGUMENT_TYPE__GLOBAL_EVENT_NUMBER: label = "GLOBAL_EVENT_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__COORDINATE_SET: label = "COORDINATE"; break; case EventFormat.ARGUMENT_TYPE__FILENAME_12: label = "file"; break; case EventFormat.ARGUMENT_TYPE__FILENAME_13: label = "file"; break; case EventFormat.ARGUMENT_TYPE__TARGET_TYPE: label = "TARGET_TYPE"; break; case EventFormat.ARGUMENT_TYPE__TARGET_NUMBER: label = "TARGET_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__FACET_ATTRIBUTE_TYPE: label = "FACET_ATTRIBUTE_TYPE"; break; case EventFormat.ARGUMENT_TYPE__SOUND_NUMBER: label = "SOUND_NUMBER"; break; case EventFormat.ARGUMENT_TYPE__UNKNOWN: default: throw new RuntimeException("Unsupported argument type: " + argumentType); } if (needsControlCreated) { if (null == label) { throw new RuntimeException("null label for argument type: " + argumentType); } createControl(eventControlsPanel, currentEvent, prefixLabelArray[finalArgumentIndex], suffixLabelArray[finalArgumentIndex], dataFieldSize, finalArgumentIndex); if (isIndirect) { IndirectValue indirectValue = currentEvent.getEventFormat().getArgumentTypeIndirectValueFor(currentEvent, argumentTypeIndex); createIndirectControl(eventControlsPanel, currentEvent, prefixLabelArray[finalArgumentIndex], suffixLabelArray[finalArgumentIndex], dataFieldSize, finalArgumentIndex, indirectValue); } } // case EventFormatMM6.EVENT_COMMAND__TELEPORT: // int dialogValue = ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET]); // int iconValue = ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET]); // // JCheckBox immediateCheckBox = new JCheckBox("Immediately"); // eventControlsPanel.add(immediateCheckBox); // // final JLabel dialogLabel = new JLabel("or via Dialog#"); // eventControlsPanel.add(dialogLabel); // final JFormattedTextField dialogTextField = new JFormattedTextField(new Integer(dialogValue)); // dialogTextField.setColumns(3); // dialogTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(dialogTextField); // // final JLabel iconLabel = new JLabel("icon#"); // eventControlsPanel.add(iconLabel); // final JComboBox miniIconList = new JComboBox(EventFormatMM6.getMiniIconNames()); // miniIconList.setSelectedIndex(iconValue); // miniIconList.addActionListener(new ActionListener() // { // public void actionPerformed(ActionEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET] = ByteConversions.convertIntToByte(((JComboBox)e.getSource()).getSelectedIndex()); // } // } // ); // eventControlsPanel.add(miniIconList); // // boolean immediately = ((0 == dialogValue) && (0 == iconValue)); // if (immediately) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET] = ByteConversions.convertIntToByte(0); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET] = ByteConversions.convertIntToByte(0); // dialogLabel.setEnabled(false); // dialogTextField.setEnabled(false); // iconLabel.setEnabled(false); // miniIconList.setEnabled(false); // } // else // { // dialogLabel.setEnabled(true); // dialogTextField.setEnabled(true); // iconLabel.setEnabled(true); // miniIconList.setEnabled(true); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET] = ByteConversions.convertIntToByte(((Number)dialogTextField.getValue()).intValue()); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET] = ByteConversions.convertIntToByte(miniIconList.getSelectedIndex()); // } // // immediateCheckBox.setSelected(immediately); // immediateCheckBox.addItemListener(new ItemListener() // { // public void itemStateChanged(ItemEvent e) // { // if (e.getStateChange() == ItemEvent.DESELECTED) // { // dialogLabel.setEnabled(true); // dialogTextField.setEnabled(true); // iconLabel.setEnabled(true); // miniIconList.setEnabled(true); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET] = ByteConversions.convertIntToByte(((Number)dialogTextField.getValue()).intValue()); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET] = ByteConversions.convertIntToByte(miniIconList.getSelectedIndex()); // } // else if (e.getStateChange() == ItemEvent.SELECTED) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET] = ByteConversions.convertIntToByte(0); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET] = ByteConversions.convertIntToByte(0); // dialogLabel.setEnabled(false); // dialogTextField.setEnabled(false); // iconLabel.setEnabled(false); // miniIconList.setEnabled(false); // } // } // } // ); } } // private void addEventControls(JPanel eventControlsPanel) // { // JFormattedTextField targetTypeTextField = null; // JFormattedTextField targetNumberTextField = null; // JFormattedTextField affectedTextField = null; // JFormattedTextField stringIDTextField = null; // // switch(this.event.getEventCommandNumber()) // { // case EventFormatMM6.EVENT_COMMAND__STOP_PROCESSING: // return; // case EventFormatMM6.EVENT_COMMAND__IDENTITY: // eventControlsPanel.add(new JLabel("2dEvent#")); // JFormattedTextField identityTextField = new JFormattedTextField(new Integer(ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.IDENTITY_ARGS_2DEVENT_ID_OFFSET))); // identityTextField.setColumns(5); // identityTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // ByteConversions.setIntegerInByteArrayAtPosition(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue(), event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.IDENTITY_ARGS_2DEVENT_ID_OFFSET); // } // }); // eventControlsPanel.add(identityTextField); // return; // case EventFormatMM6.EVENT_COMMAND__MOUSEOVER: // eventControlsPanel.add(new JLabel("2dEvent#")); // JFormattedTextField eventStrTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.MOUSEOVER_ARGS_EVENT_STR_ID_OFFSET]))); // eventStrTextField.setColumns(3); // eventStrTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.MOUSEOVER_ARGS_EVENT_STR_ID_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(eventStrTextField); // return; // case EventFormatMM6.EVENT_COMMAND__TELEPORT: // eventControlsPanel.add(new JLabel("destination:")); // JFormattedTextField levelNameTextField = new JFormattedTextField(event.getCommandTeleportArgumentLevelName()); // levelNameTextField.setColumns(10); // levelNameTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.setCommandTeleportArgumentLevelName((String)((JFormattedTextField)e.getSource()).getValue()); // } // }); // eventControlsPanel.add(levelNameTextField); // // // coordinates // eventControlsPanel.add(new JLabel("coordinates:")); // eventControlsPanel.add(new Vertex3DTextFieldPanel(new Vertex3DValueHolder() // { // public int getX() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_X_COORD_OFFSET); // } // // public void setX(int x) // { // ByteConversions.setIntegerInByteArrayAtPosition(x, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_X_COORD_OFFSET); // } // // public int getY() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_Y_COORD_OFFSET); // } // // public void setY(int y) // { // ByteConversions.setIntegerInByteArrayAtPosition(y, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_Y_COORD_OFFSET); // } // // public int getZ() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_Z_COORD_OFFSET); // } // // public void setZ(int z) // { // ByteConversions.setIntegerInByteArrayAtPosition(z, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_Z_COORD_OFFSET); // } // })); // // eventControlsPanel.add(new JLabel("facing:")); // eventControlsPanel.add(new Vertex2DTextFieldPanel(new Vertex2DValueHolder() // { // public int getX() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_HORIZONTAL_ORIENTATION_OFFSET); // } // // public void setX(int x) // { // ByteConversions.setIntegerInByteArrayAtPosition(x, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_HORIZONTAL_ORIENTATION_OFFSET); // } // // public int getY() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_VERTICAL_ORIENTATION_OFFSET); // } // // public void setY(int y) // { // ByteConversions.setIntegerInByteArrayAtPosition(y, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_VERTICAL_ORIENTATION_OFFSET); // } // })); // // int dialogValue = ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET]); // int iconValue = ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET]); // // JCheckBox immediateCheckBox = new JCheckBox("Immediately"); // eventControlsPanel.add(immediateCheckBox); // // final JLabel dialogLabel = new JLabel("or via Dialog#"); // eventControlsPanel.add(dialogLabel); // final JFormattedTextField dialogTextField = new JFormattedTextField(new Integer(dialogValue)); // dialogTextField.setColumns(3); // dialogTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(dialogTextField); // // final JLabel iconLabel = new JLabel("icon#"); // eventControlsPanel.add(iconLabel); // final JComboBox miniIconList = new JComboBox(EventFormatMM6.getMiniIconNames()); // miniIconList.setSelectedIndex(iconValue); // miniIconList.addActionListener(new ActionListener() // { // public void actionPerformed(ActionEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET] = ByteConversions.convertIntToByte(((JComboBox)e.getSource()).getSelectedIndex()); // } // } // ); // eventControlsPanel.add(miniIconList); // // boolean immediately = ((0 == dialogValue) && (0 == iconValue)); // if (immediately) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET] = ByteConversions.convertIntToByte(0); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET] = ByteConversions.convertIntToByte(0); // dialogLabel.setEnabled(false); // dialogTextField.setEnabled(false); // iconLabel.setEnabled(false); // miniIconList.setEnabled(false); // } // else // { // dialogLabel.setEnabled(true); // dialogTextField.setEnabled(true); // iconLabel.setEnabled(true); // miniIconList.setEnabled(true); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET] = ByteConversions.convertIntToByte(((Number)dialogTextField.getValue()).intValue()); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET] = ByteConversions.convertIntToByte(miniIconList.getSelectedIndex()); // } // // immediateCheckBox.setSelected(immediately); // immediateCheckBox.addItemListener(new ItemListener() // { // public void itemStateChanged(ItemEvent e) // { // if (e.getStateChange() == ItemEvent.DESELECTED) // { // dialogLabel.setEnabled(true); // dialogTextField.setEnabled(true); // iconLabel.setEnabled(true); // miniIconList.setEnabled(true); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET] = ByteConversions.convertIntToByte(((Number)dialogTextField.getValue()).intValue()); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET] = ByteConversions.convertIntToByte(miniIconList.getSelectedIndex()); // } // else if (e.getStateChange() == ItemEvent.SELECTED) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_DESTINATION_DIALOG_NUMBER_OFFSET] = ByteConversions.convertIntToByte(0); // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.TELEPORT_ARGS_MINIICON_OFFSET] = ByteConversions.convertIntToByte(0); // dialogLabel.setEnabled(false); // dialogTextField.setEnabled(false); // iconLabel.setEnabled(false); // miniIconList.setEnabled(false); // } // } // } // ); // // return; // case EventFormatMM6.EVENT_COMMAND__OPEN_CHEST: // eventControlsPanel.add(new JLabel("#")); // JFormattedTextField chestIDTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.OPEN_CHEST_ARGS_CHEST_NUMBER_OFFSET]))); // chestIDTextField.setColumns(3); // chestIDTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.OPEN_CHEST_ARGS_CHEST_NUMBER_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(chestIDTextField); // return; // case EventFormatMM6.EVENT_COMMAND__SHOW_FACIAL_EXPRESSION: // eventControlsPanel.add(new JLabel("#")); // JFormattedTextField imageIDTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SHOW_FACIAL_EXPRESSION_ARGS_IMAGE_ID_OFFSET]))); // imageIDTextField.setColumns(3); // imageIDTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SHOW_FACIAL_EXPRESSION_ARGS_IMAGE_ID_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(imageIDTextField); // eventControlsPanel.add(new JLabel("for")); // // IMPLEMENT: replace this with a pulldown combobox // affectedTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SHOW_FACIAL_EXPRESSION_ARGS_AFFECTED_OFFSET]))); // affectedTextField.setColumns(3); // affectedTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SHOW_FACIAL_EXPRESSION_ARGS_AFFECTED_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(affectedTextField); // return; // case EventFormatMM6.EVENT_COMMAND__CHANGE_3DOBJECT_FACE_BITMAP: // eventControlsPanel.add(new JLabel("object #")); // JFormattedTextField d3ObjectTextField = new JFormattedTextField(new Integer(ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_3DOBJECT_FACE_BITMAP_ARGS_3D_OBJECT_NUMBER_OFFSET))); // d3ObjectTextField.setColumns(5); // d3ObjectTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // ByteConversions.setIntegerInByteArrayAtPosition(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue(), event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_3DOBJECT_FACE_BITMAP_ARGS_3D_OBJECT_NUMBER_OFFSET); // } // }); // eventControlsPanel.add(d3ObjectTextField); // eventControlsPanel.add(new JLabel("face #")); // JFormattedTextField faceTextField = new JFormattedTextField(new Integer(ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_3DOBJECT_FACE_BITMAP_ARGS_FACE_OFFSET))); // faceTextField.setColumns(5); // faceTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // ByteConversions.setIntegerInByteArrayAtPosition(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue(), event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_3DOBJECT_FACE_BITMAP_ARGS_FACE_OFFSET); // } // }); // eventControlsPanel.add(faceTextField); // eventControlsPanel.add(new JLabel("to")); // JFormattedTextField newBitmapNameTextField = new JFormattedTextField(event.getCommandChangeFaceBitmapArgumentNewBitmapName()); // newBitmapNameTextField.setColumns(10); // newBitmapNameTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.setCommandChangeFaceBitmapArgumentNewBitmapName((String)((JFormattedTextField)e.getSource()).getValue()); // } // }); // eventControlsPanel.add(newBitmapNameTextField); // return; // case EventFormatMM6.EVENT_COMMAND__CHANGE_SPRITE: // eventControlsPanel.add(new JLabel("#")); // JFormattedTextField spriteNumberTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_SPRITE_ARGS_SPRITE_NUMBER]))); // spriteNumberTextField.setColumns(3); // spriteNumberTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_SPRITE_ARGS_SPRITE_NUMBER] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(spriteNumberTextField); // eventControlsPanel.add(new JLabel("to")); // JFormattedTextField newSpriteNameTextField = new JFormattedTextField(event.getCommandChangeSpriteArgumentNewSpriteName()); // newSpriteNameTextField.setColumns(10); // newSpriteNameTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.setCommandChangeSpriteArgumentNewSpriteName((String)((JFormattedTextField)e.getSource()).getValue()); // } // }); // eventControlsPanel.add(newSpriteNameTextField); // return; // case EventFormatMM6.EVENT_COMMAND__BRANCH_ON_CONDITION_TRUE: // eventControlsPanel.add(new JLabel("if (")); // addTargetControlsToPanel(eventControlsPanel, new IntValueHolder() // { // public int getValue() // { // return ByteConversions.convertByteToInt(event.getData()[ // EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET // + event.getBranchOnConditionTrueArgsTargetTypeOffset()]); // } // // public void setValue(int value) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET // + event.getBranchOnConditionTrueArgsTargetTypeOffset()] // = ByteConversions.convertIntToByte(value); // } // }, // new IntValueHolder() // { // public int getValue() // { // return ByteConversions.getUnsignedShortInByteArrayAtPosition(event.getData(), // EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET // + event.getBranchOnConditionTrueArgsTargetNumberOffset()); // } // // public void setValue(int value) // { // ByteConversions.setShortInByteArrayAtPosition((short)value, event.getData(), // EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET // + event.getBranchOnConditionTrueArgsTargetNumberOffset()); // } // }); // // eventControlsPanel.add(new JLabel(") goto seq#")); // JFormattedTextField targetSequenceNumberTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET // + event.getBranchOnConditionTrueArgsGotoSequenceNumberOffset()]))); // targetSequenceNumberTextField.setColumns(3); // targetSequenceNumberTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET // + event.getBranchOnConditionTrueArgsGotoSequenceNumberOffset()] // = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(targetSequenceNumberTextField); // return; // case EventFormatMM6.EVENT_COMMAND__ADD_TARGET: // addTargetControlsToPanel(eventControlsPanel, new IntValueHolder() // { // public int getValue() // { // return ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.ADD_TARGET_ARGS_TARGET_TYPE_OFFSET]); // } // // public void setValue(int value) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.ADD_TARGET_ARGS_TARGET_TYPE_OFFSET] = ByteConversions.convertIntToByte(value); // } // }, // new IntValueHolder() // { // public int getValue() // { // return ByteConversions.getUnsignedShortInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.ADD_TARGET_ARGS_TARGET_NUMBER_OFFSET); // } // // public void setValue(int value) // { // ByteConversions.setShortInByteArrayAtPosition((short)value, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.ADD_TARGET_ARGS_TARGET_NUMBER_OFFSET); // } // }); // return; // case EventFormatMM6.EVENT_COMMAND__DELETE_TARGET: // addTargetControlsToPanel(eventControlsPanel, new IntValueHolder() // { // public int getValue() // { // return ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.DELETE_TARGET_ARGS_TARGET_TYPE_OFFSET]); // } // // public void setValue(int value) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.DELETE_TARGET_ARGS_TARGET_TYPE_OFFSET] = ByteConversions.convertIntToByte(value); // } // }, // new IntValueHolder() // { // public int getValue() // { // return ByteConversions.getUnsignedShortInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.DELETE_TARGET_ARGS_TARGET_NUMBER_OFFSET); // } // // public void setValue(int value) // { // ByteConversions.setShortInByteArrayAtPosition((short)value, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.DELETE_TARGET_ARGS_TARGET_NUMBER_OFFSET); // } // }); // return; // case EventFormatMM6.EVENT_COMMAND__SET_TARGET: // addTargetControlsToPanel(eventControlsPanel, new IntValueHolder() // { // public int getValue() // { // return ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SET_TARGET_ARGS_TARGET_TYPE_OFFSET]); // } // // public void setValue(int value) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SET_TARGET_ARGS_TARGET_TYPE_OFFSET] = ByteConversions.convertIntToByte(value); // } // }, // new IntValueHolder() // { // public int getValue() // { // return ByteConversions.getUnsignedShortInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SET_TARGET_ARGS_TARGET_NUMBER_OFFSET); // } // // public void setValue(int value) // { // ByteConversions.setShortInByteArrayAtPosition((short)value, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SET_TARGET_ARGS_TARGET_NUMBER_OFFSET); // } // }); // return; // case EventFormatMM6.EVENT_COMMAND__CREATE_LOCAL_MONSTER: // eventControlsPanel.add(new JLabel("count")); // JFormattedTextField numberToCreateTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_COUNT_OFFSET]))); // numberToCreateTextField.setColumns(3); // numberToCreateTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_COUNT_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(numberToCreateTextField); // // eventControlsPanel.add(new JLabel("species #")); // JFormattedTextField speciesTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_MONSTER_SPECIES_OFFSET]))); // speciesTextField.setColumns(3); // speciesTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_MONSTER_SPECIES_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(speciesTextField); // eventControlsPanel.add(new JLabel("-")); // JFormattedTextField subspeciesTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_MONSTER_SUBSPECIES__OFFSET]))); // subspeciesTextField.setColumns(3); // subspeciesTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_MONSTER_SUBSPECIES__OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(subspeciesTextField); // // // coordinates // eventControlsPanel.add(new JLabel("at")); // eventControlsPanel.add(new Vertex3DTextFieldPanel(new Vertex3DValueHolder() // { // public int getX() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_X_OFFSET); // } // // public void setX(int x) // { // ByteConversions.setIntegerInByteArrayAtPosition(x, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_X_OFFSET); // } // // public int getY() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_Y_OFFSET); // } // // public void setY(int y) // { // ByteConversions.setIntegerInByteArrayAtPosition(y, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_Y_OFFSET); // } // // public int getZ() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_Z_OFFSET); // } // // public void setZ(int z) // { // ByteConversions.setIntegerInByteArrayAtPosition(z, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CREATE_LOCAL_MONSTER_ARGS_Z_OFFSET); // } // })); // return; // case EventFormatMM6.EVENT_COMMAND__CAST_SPELL_FROM_LOCATION: // eventControlsPanel.add(new JLabel("Spell #")); // JFormattedTextField spellNumberTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_SPELL_NUMBER_OFFSET]))); // spellNumberTextField.setColumns(3); // spellNumberTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_SPELL_NUMBER_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(spellNumberTextField); // eventControlsPanel.add(new JLabel("at ranking")); // JFormattedTextField spellRankingTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_RANKING_OFFSET]))); // spellRankingTextField.setColumns(3); // spellRankingTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_RANKING_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(spellRankingTextField); // eventControlsPanel.add(new JLabel("level")); // JFormattedTextField spellLevelTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_LEVEL_OFFSET]))); // spellRankingTextField.setColumns(3); // spellRankingTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_LEVEL_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(spellLevelTextField); // // coordinates // eventControlsPanel.add(new JLabel("from")); // eventControlsPanel.add(new Vertex3DTextFieldPanel(new Vertex3DValueHolder() // { // public int getX() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_SOURCE_X_OFFSET); // } // // public void setX(int x) // { // ByteConversions.setIntegerInByteArrayAtPosition(x, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_SOURCE_X_OFFSET); // } // // public int getY() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_SOURCE_Y_OFFSET); // } // // public void setY(int y) // { // ByteConversions.setIntegerInByteArrayAtPosition(y, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_SOURCE_Y_OFFSET); // } // // public int getZ() // { // return ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_SOURCE_Z_OFFSET); // } // // public void setZ(int z) // { // ByteConversions.setIntegerInByteArrayAtPosition(z, event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CAST_SPELL_FROM_LOCATION_ARGS_SOURCE_Z_OFFSET); // } // })); // return; // case EventFormatMM6.EVENT_COMMAND__SHOW_LOCAL_EVENT_STRING: // eventControlsPanel.add(new JLabel("#")); // stringIDTextField = new JFormattedTextField(new Integer(ByteConversions.getUnsignedShortInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SHOW_LOCAL_EVENT_STRING_ARGS_STR_ID_OFFSET))); // stringIDTextField.setColumns(5); // stringIDTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // ByteConversions.setShortInByteArrayAtPosition(((Number)((JFormattedTextField)e.getSource()).getValue()).shortValue(), event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SHOW_LOCAL_EVENT_STRING_ARGS_STR_ID_OFFSET); // } // }); // eventControlsPanel.add(stringIDTextField); // return; // case EventFormatMM6.EVENT_COMMAND__SHOW_NPCTEXT_STRING: // eventControlsPanel.add(new JLabel("#")); // stringIDTextField = new JFormattedTextField(new Integer(ByteConversions.getUnsignedShortInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SHOW_NPCTEXT_STRING_ARGS_STR_ID_OFFSET))); // stringIDTextField.setColumns(5); // stringIDTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // ByteConversions.setShortInByteArrayAtPosition(((Number)((JFormattedTextField)e.getSource()).getValue()).shortValue(), event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.SHOW_NPCTEXT_STRING_ARGS_STR_ID_OFFSET); // } // }); // eventControlsPanel.add(stringIDTextField); // return; // case EventFormatMM6.EVENT_COMMAND__MODIFY_NEXT_COMMAND_BY_PARTY_MEMBER: // eventControlsPanel.add(new JLabel("#")); // // IMPLEMENT: replace this with a pulldown combobox // affectedTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.MODIFY_NEXT_COMMAND_BY_PARTY_MEMBER_ARGS_AFFECTED_OFFSET]))); // affectedTextField.setColumns(3); // affectedTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.MODIFY_NEXT_COMMAND_BY_PARTY_MEMBER_ARGS_AFFECTED_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(affectedTextField); // return; // case EventFormatMM6.EVENT_COMMAND__GOTO: // eventControlsPanel.add(new JLabel("seq#")); // JFormattedTextField sequenceNumberTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.GOTO_ARGS_SEQUENCE_NUMBER_OFFSET]))); // sequenceNumberTextField.setColumns(3); // sequenceNumberTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.GOTO_ARGS_SEQUENCE_NUMBER_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // eventControlsPanel.add(sequenceNumberTextField); // return; // case EventFormatMM6.EVENT_COMMAND__ON_LEVEL_RELOAD_EXECUTE: // return; // case EventFormatMM6.EVENT_COMMAND__CHANGE_DIALOG_EVENT: // eventControlsPanel.add(new JLabel("NPC#")); // JFormattedTextField npcTextField = new JFormattedTextField(new Integer(ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_DIALOG_EVENT_ARGS_NPCDATA_OFFSET))); // npcTextField.setColumns(5); // npcTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // ByteConversions.setIntegerInByteArrayAtPosition(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue(), event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_DIALOG_EVENT_ARGS_NPCDATA_OFFSET); // } // }); // eventControlsPanel.add(npcTextField); // // eventControlsPanel.add(new JLabel("index")); // JFormattedTextField menuIndexTextField = new JFormattedTextField(new Integer(ByteConversions.convertByteToInt(event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_DIALOG_EVENT_ARGS_NPC_MENU_INDEX_OFFSET]))); // menuIndexTextField.setColumns(3); // menuIndexTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // event.getData()[EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_DIALOG_EVENT_ARGS_NPC_MENU_INDEX_OFFSET] = ByteConversions.convertIntToByte(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // // eventControlsPanel.add(menuIndexTextField); // eventControlsPanel.add(new JLabel("global Event#")); // JFormattedTextField globalEventTextField = new JFormattedTextField(new Integer(ByteConversions.getIntegerInByteArrayAtPosition(event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_DIALOG_EVENT_ARGS_NEW_GLOBAL_EVENT_NUMBER_OFFSET))); // globalEventTextField.setColumns(5); // globalEventTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // ByteConversions.setIntegerInByteArrayAtPosition(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue(), event.getData(), EventFormatMM6.EVENT_COMMAND_ARGS_OFFSET + EventFormatMM6.CHANGE_DIALOG_EVENT_ARGS_NEW_GLOBAL_EVENT_NUMBER_OFFSET); // } // }); // eventControlsPanel.add(globalEventTextField); // return; // default: // throw new RuntimeException("Should never reach this."); // } // } // // private void addTargetControlsToPanel(JPanel panel, final IntValueHolder targetTypeValueSource, final IntValueHolder targetNumberValueSource) // { // Integer validTargetTypes[] = this.event.getEventFormat().getTargetTypes(); // Integer targetTypes[] = new Integer[validTargetTypes.length + 1]; // targetTypes[0] = new Integer(Integer.MIN_VALUE); // for (int index = 0; index < validTargetTypes.length; ++index) // { // targetTypes[1 + index] = validTargetTypes[index]; // } // // final JComboBox targetTypeList = new JComboBox(targetTypes); // targetTypeList.setSelectedItem(new Integer(targetTypeValueSource.getValue())); // final JFormattedTextField targetTypeTextField = new JFormattedTextField(new Integer(targetTypeValueSource.getValue())); // targetTypeTextField.setColumns(3); // // if (0 == targetTypeList.getSelectedIndex()) // { // targetTypeTextField.setEnabled(true); // } // else // { // targetTypeTextField.setEnabled(false); // } // // ListCellRenderer targetTypeRenderer = new AbstractStringListCellRenderer() // { // protected String getStringForValue(Object value) // { // Integer valueNumber = (Integer)value; // if ((null == valueNumber) || (Integer.MIN_VALUE == valueNumber.intValue())) // return "UNKNOWN"; // return event.getEventFormat().getTargetTypeName(valueNumber.intValue()); // } // }; // targetTypeList.setRenderer(targetTypeRenderer); // // targetTypeList.addActionListener(new ActionListener() // { // public void actionPerformed(ActionEvent e) // { // Object selectedItem = ((JComboBox)e.getSource()).getSelectedItem(); // int value; // if (null == selectedItem) // value = Integer.MIN_VALUE; // else value = ((Number)selectedItem).intValue(); // // if (Integer.MIN_VALUE == value) // { // targetTypeTextField.setEnabled(true); // targetTypeValueSource.setValue(((Number)targetTypeTextField.getValue()).intValue()); // return; // } // targetTypeTextField.setEnabled(false); // targetTypeValueSource.setValue(value); // targetTypeTextField.setValue(new Integer(targetTypeValueSource.getValue())); // } // } // ); // // targetTypeTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // targetTypeValueSource.setValue(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // targetTypeList.setSelectedItem(null); // targetTypeList.setSelectedItem(new Integer(targetTypeValueSource.getValue())); // } // }); // // JFormattedTextField targetNumberTextField = new JFormattedTextField(new Integer(targetNumberValueSource.getValue())); // targetNumberTextField.setColumns(5); // targetNumberTextField.addPropertyChangeListener("value", new PropertyChangeListener() // { // public void propertyChange(PropertyChangeEvent e) // { // targetNumberValueSource.setValue(((Number)((JFormattedTextField)e.getSource()).getValue()).intValue()); // } // }); // // panel.add(targetTypeList); // panel.add(targetTypeTextField); // panel.add(targetNumberTextField); // } }