Hey!! aqui va el codigo con algunas correcciones de ultima hora
Código PHP:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TPoint mouse_pos;
TPoint mouse_pos2;
int current_route = 0;
int current_object = 0;
struct mapp {
AnsiString Nombre_Sector;
int objetos[30];
int coordX_objeto[30];
int coordY_objeto[30];
int total_objetos;
int rutas_inicio_X[30];
int rutas_fin_X[30];
int rutas_inicio_Y[30];
int rutas_fin_Y[30];
int total_rutas;
} mapita;
int cont_redraw = 0;
bool SALIR = false;
bool rejilla = false;
bool muestra_rutas = false;
bool muestra_objetos = true;
int ini_rutaX = 0; int ini_rutaY = 0;
int fin_rutaX = 0; int fin_rutaY = 0;
void SECTOR_VEGA(void);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Form1->DoubleBuffered = true;
}
//---------------------------------------------------------------------------
void Muestra_Mapa(void)
{
SECTOR_VEGA();
if(rejilla) Muestra_Rejilla();
Form1->tablero->Repaint();
Application->ProcessMessages();
}
//---------------------------------------------------------------------------
void SECTOR_VEGA(void)
{
Form1->g2 = 0;
Form1->g2 = Form2->Image12->Picture->Graphic;
Form1->tablero->Canvas->Draw(0, 0, Form1->g2);
for(int cont=0; cont<=current_route; cont++)
{
if(muestra_rutas)
{
Form1->tablero->Canvas->MoveTo(mapita.rutas_inicio_X[cont],mapita.rutas_inicio_Y[cont]);
Form1->tablero->Canvas->Pen->Color = clLime;
if(mapita.rutas_fin_X[cont] != 0 && mapita.rutas_fin_Y[cont] != 0)
Form1->tablero->Canvas->LineTo(mapita.rutas_fin_X[cont], mapita.rutas_fin_Y[cont]);
}
}
for(int cont=0; cont<=current_object; cont++)
{
if(muestra_objetos)
{
if(mapita.objetos[cont] != 0)
{
Form1->g2 = 0;
switch(mapita.objetos[cont])
{
case 1:
Form1->g2 = Form2->Image9->Picture->Graphic;
Form1->tablero->Canvas->Draw(mapita.coordX_objeto[cont], mapita.coordY_objeto[cont], Form1->g2); break;
case 2:
Form1->g2 = Form2->Image3->Picture->Graphic;
Form1->tablero->Canvas->Draw(mapita.coordX_objeto[cont], mapita.coordY_objeto[cont], Form1->g2); break;
case 3:
Form1->g2 = Form2->Image_jupiter->Picture->Graphic;
Form1->tablero->Canvas->Draw(mapita.coordX_objeto[cont], mapita.coordY_objeto[cont], Form1->g2); break;
}
}
}
}
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
mouse_pos = Mouse->CursorPos;
mouse_pos.X = mouse_pos.X - Form1->Top;
mouse_pos.Y = mouse_pos.Y - Form1->Left;
if(mouse_pos.X <= 4) mouse_pos.X = 1;
if(mouse_pos.Y <= 42) mouse_pos.Y = 1;
Label_X->Caption = mouse_pos.X; Label_X->Refresh();
Label_Y->Caption = mouse_pos.Y;Label_Y->Refresh();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::InsertarInicioRuta1Click(TObject *Sender)
{
ini_rutaX = mouse_pos2.X - 4;
ini_rutaY = mouse_pos2.Y - 42;
if(current_route <= 14)
{
mapita.rutas_inicio_X[current_route] = ini_rutaX;
mapita.rutas_inicio_Y[current_route] = ini_rutaY;
}
else ShowMessage("You reach MAX routes Allowed");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::InsertarFinRuta1Click(TObject *Sender)
{
fin_rutaX = mouse_pos2.X - 4;
fin_rutaY = mouse_pos2.Y - 42;
if(current_route <= 30)
{
mapita.rutas_fin_X[current_route] = fin_rutaX;
mapita.rutas_fin_Y[current_route] = fin_rutaY;
if(Application->MessageBox(L"Do you want to SAVE this ROUTE (Keep on map):",
L"Look", MB_OKCANCEL) == ID_OK)
{ //save the current route line
ShowMessage("You Choose SAVE the Route");
current_route++;
}
else {
ShowMessage("Canceled: Route Deleted");
mapita.rutas_fin_X[current_route] = 0;
mapita.rutas_fin_Y[current_route] = 0;
}
}
else ShowMessage("You reach MAX routes Allowed");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::InsertObjectPlanet1Click(TObject *Sender)
{
if(current_object > 30) {
ShowMessage("MAX Objects reached!! Can't add more on this map.");
return;
}
if(RadioButton3->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 1;
current_object++;
}
if(RadioButton4->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 2;
current_object++;
}
if(RadioButton5->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 3;
current_object++;
}
if(RadioButton6->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 4;
current_object++;
}
if(RadioButton7->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 5;
current_object++;
}
if(RadioButton8->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 6;
current_object++;
}
if(RadioButton9->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 7;
current_object++;
}
if(RadioButton10->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 8;
current_object++;
}
if(RadioButton11->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 9;
current_object++;
}
if(RadioButton12->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 10;
current_object++;
}
if(RadioButton13->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 11;
current_object++;
}
if(RadioButton14->Checked == true)
{
mapita.coordX_objeto[current_object] = mouse_pos2.X-4;
mapita.coordY_objeto[current_object] = mouse_pos2.Y-42;
mapita.objetos[current_object] = 12;
current_object++;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
if(CheckBox1->Checked == true) muestra_rutas = true;
else muestra_rutas = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox2Click(TObject *Sender)
{
if(CheckBox2->Checked == true) muestra_objetos = true;
else muestra_objetos = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::EstoesunCaosquieroempezardenuevo1Click(TObject *Sender)
{
// Inicializamos todo a cero.
int contador = 0;
current_route = 0;
current_object = 0;
for(contador = 0; contador <= 14; contador++)
{
mapita.coordX_objeto[contador] = 0;
mapita.coordY_objeto[contador] = 0;
mapita.rutas_fin_X[contador] = 0;
mapita.rutas_fin_Y[contador] = 0;
mapita.rutas_inicio_X[contador] = 0;
mapita.rutas_inicio_Y[contador] = 0;
mapita.objetos[contador] = 0;
}
mapita.total_objetos = 0;
mapita.total_rutas = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PopupMenu1Popup(TObject *Sender)
{
mouse_pos2 = Mouse->CursorPos;
mouse_pos2.X = mouse_pos.X - Form1->Top;
mouse_pos2.Y = mouse_pos.Y - Form1->Left;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
Label1->Caption = cont_redraw;
Label1->Refresh();
cont_redraw = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::sButton1Click(TObject *Sender)
{
SALIR = false;
for(;;)
{
cont_redraw++;
Muestra_Mapa();
if(SALIR == true) break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::sButton2Click(TObject *Sender)
{
SALIR = true;
}
//---------------------------------------------------------------------------