DialogNPCEdit::DialogNPCEdit(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::DialogNPCEdit)
{
	std::cout << "DialogNPCEdit::DialogNPCEdit::START" << std::endl;

    ui->setupUi(this);

    for (int i=0; i<AI_ACTION_NAMES.size(); i++) {
        std::string temp = AI_ACTION_NAMES[i];
        QString temp_str = QString("[") + QString::number(i) + QString("] - ") + QString(temp.c_str());
        ui->comboBoxIA->addItem(temp_str);
	}
	ui->comboBoxIA->update();

	fillNPCGraphicsList();
	//printf("%%%% DialogNPCEdit::DialogNPCEdit - dataExchanger->selectedNPC: %d, editMode: %d\n", dataExchanger->selectedNPC, dataExchanger->editModeNPC);
    if (dataExchanger->editModeNPC == 1) {
		loadNPCData(dataExchanger->selectedNPC);
		std::cout << "DialogObjectEdit::DialogObjectEdit - editing npc, id: " << dataExchanger->selectedNPC << std::endl;
	} else {
		std::cout << "DialogObjectEdit::DialogObjectEdit - adding new npc, id: " << dataExchanger->selectedNPC << std::endl;
	}


    QObject::connect(ui->npcPreviewAreaWidget, SIGNAL(clickedIn()), this, SLOT(setNPCFrame()));
	std::cout << "DialogNPCEdit::DialogNPCEdit::END" << std::endl;
}
DialogNPCEdit::DialogNPCEdit(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::DialogNPCEdit)
{
	std::cout << "DialogNPCEdit::DialogNPCEdit::START" << std::endl;
	char* IA_TYPE_NAMES[IA_TYPES_COUNT] = { "IA_STAND", "IA_WAIT", "IA_FOLLOW", "IA_ZIGZAG", "IA_SIDETOSIDE", "IA_BAT", "IA_ROOF_SHOOTER", "IA_GROUND_SHOOTER", "IA_SHOOT_AND_GO", "IA_FLY_ZIG_ZAG", "IA_BUTTERFLY", "IA_GO_LEFT", "IA_GO_RIGHT", "IA_FIXED_JUMPER", "IA_SIDE_SHOOTER", "IA_GHOST", "IA_FISH", "IA_DOLPHIN" };

    ui->setupUi(this);

	for (int i=0; i<IA_TYPES_COUNT; i++) {
		ui->comboBoxIA->addItem(QString(IA_TYPE_NAMES[i]));
	}
	ui->comboBoxIA->update();

	fillNPCGraphicsList();
	//printf("%%%% DialogNPCEdit::DialogNPCEdit - dataExchanger->selectedNPC: %d, editMode: %d\n", dataExchanger->selectedNPC, dataExchanger->editModeNPC);
    if (dataExchanger->editModeNPC == 1) {
		loadNPCData(dataExchanger->selectedNPC);
		std::cout << "DialogObjectEdit::DialogObjectEdit - editing npc, id: " << dataExchanger->selectedNPC << std::endl;
	} else {
		std::cout << "DialogObjectEdit::DialogObjectEdit - adding new npc, id: " << dataExchanger->selectedNPC << std::endl;
	}


    QObject::connect(ui->npcPreviewAreaWidget, SIGNAL(clickedIn()), this, SLOT(setNPCFrame()));
	std::cout << "DialogNPCEdit::DialogNPCEdit::END" << std::endl;
}
int DialogNPCEdit::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QDialog::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: finishedNPCEditor(); break;
        case 1: on_spinBox_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 2: on_buttonBox_accepted(); break;
        case 3: on_frameTypeCombo_currentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 4: on_npcListCombobox_currentIndexChanged((*reinterpret_cast< QString(*)>(_a[1]))); break;
        case 5: on_npcGraphicSizeSpin_h_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 6: on_npcGraphicSizeSpin_w_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 7: setNPCFrame(); break;
        default: ;
        }
        _id -= 8;
    }
    return _id;
}