Пример #1
0
int main(int argc, char *argv[], char *env[])
{
	// Setup basic variables
	int isRunning = 1;

	findHomeDirectory(env);

	while (isRunning)
	{
		char *cmd, *arg;
		// reset line
		memset(line, 0, sizeof(line));

		// get input
		printf("Command? ");
		scanf(" %[^\n]", line);

		commandProcessor(env);
	}

	return 0;
}
Пример #2
0
void specKeyPressed(DWORD key, bool pressed)
{
	switch (key)
	{
		case VK_F6:
		{
			chatWrite = !chatWrite;
			PLAYER::SET_PLAYER_CONTROL(PLAYER::PLAYER_ID(), !chatWrite, 0);
			break;
		}
		case VK_F7:
		{
			chatEnabled = !chatEnabled;
			break;
		}
		case VK_BACK:
		{
			if (!chatWrite) break;
			if (cursorPos > 0)
			{
				curChatText.erase(curChatText.begin() + (cursorPos - 1), curChatText.begin() + cursorPos);
				cursorPos--;
			}
			break;
		}
		case VK_DELETE:
		{
			if (!chatWrite) break;
			if (cursorPos < curChatText.size())
			{
				curChatText.erase(curChatText.begin() + cursorPos, curChatText.begin() + cursorPos + 1);
			}
			break;
		}
		case VK_RETURN:
		{
			if (!chatWrite) break;
			if (curChatText.size())
			{
				if (curChatText[0] == '/')
				{
					if (!commandProcessor(curChatText))
						sendPlayerMessage("Unknown command", 125, 0, 0);
				}
				else
					sendPlayerMessage(SOCIALCLUB::_SC_GET_NICKNAME() + string(": ") + curChatText, 255, 255, 255);
				chatHistory.push_back(curChatText);
				historyPos = -1;
				curChatText = string("");
				cursorPos = 0;
			}
			chatWrite = false;
			PLAYER::SET_PLAYER_CONTROL(PLAYER::PLAYER_ID(), !chatWrite, 0);
			break;
		}
		case 0x57:
		{
			if (objectEditor)
			{
				lil::Object::RotateCam(lil::CAM_PARAM::LATITUDE, (float)1.0);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case 0x53:
		{
			if (objectEditor)
			{
				lil::Object::RotateCam(lil::CAM_PARAM::LATITUDE, (float)-1.0);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case 0x41:
		{
			if (objectEditor)
			{
				lil::Object::RotateCam(lil::CAM_PARAM::LONGTITUDE, (float)-1.0);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case 0x44:
		{
			if (objectEditor)
			{
				lil::Object::RotateCam(lil::CAM_PARAM::LONGTITUDE, (float)1.0);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case VK_LEFT:
		{
			if (chatWrite && cursorPos > 0) cursorPos--;
			else if (objectEditor)
			{
				lil::Object::RotateCam(lil::CAM_PARAM::LONGTITUDE, (float)-1.0);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case VK_RIGHT:
		{
			if (chatWrite && cursorPos < curChatText.size())
			{
				cursorPos++;
			}
			else if (objectEditor)
			{
				lil::Object::RotateCam(lil::CAM_PARAM::LONGTITUDE, (float)1.0);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case VK_UP:
		{
			if (chatWrite && chatHistory.size())
			{
				if (historyPos < (chatHistory.size() - 1) || historyPos == -1)
				{
					historyPos++;
					curChatText = chatHistory[chatHistory.size() - historyPos - 1];
					cursorPos = (int)curChatText.size();
				}
			}
			else if (objectEditor)
			{
				lil::Object::RotateCam(lil::CAM_PARAM::LATITUDE, (float)1.0);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case VK_DOWN:
		{
			if (chatWrite && chatHistory.size())
			{
				if (historyPos > 0)
				{
					historyPos--;
					curChatText = chatHistory[chatHistory.size() - historyPos - 1];
					cursorPos = (int)curChatText.size();
				}
				else if (historyPos == 0)
				{
					historyPos = -1;
					curChatText = "";
					cursorPos = 0;
				}
			}
			else if (objectEditor)
			{
				lil::Object::RotateCam(lil::CAM_PARAM::LATITUDE, (float)-1.0);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case VK_PRIOR:
		{
			if (!objectEditor) break;
			if ((lil::Object::distance - ((controlPressed) ? 1.0f : .01f)) < 0)
				lil::Object::distance = 0.0;
			else 
				lil::Object::distance -= ((controlPressed) ? 1.0f : .01f);
			playerObject->PointCam(playerCam);
			break;
		}
		case VK_NEXT:
		{
			if (!objectEditor) break;
			lil::Object::distance += ((controlPressed) ? 1.0f : .01f);
			playerObject->PointCam(playerCam);
			break;
		}
		case VK_ADD:
		{
			if (!objectEditor) break;
			playerObject->ChangeOneParam(lil::POSITION_Z, ((controlPressed) ? 1.0f : .01f));
			playerObject->PointCam(playerCam);
			break;
		}
		case VK_SUBTRACT:
		{
			if (!objectEditor) break;
			playerObject->ChangeOneParam(lil::POSITION_Z, -((controlPressed) ? 1.0f : .01f));
			playerObject->PointCam(playerCam);
			break;
		}
		case VK_NUMPAD2:
		{
			if (objectEditor)
			{
				Vector3 pos = playerObject->GetPosition();
				pos.x -= ((controlPressed) ? 1.0f : .01f) * cos(lil::Object::longtitude*PI / 180.0);
				pos.y -= ((controlPressed) ? 1.0f : .01f) * sin(lil::Object::longtitude*PI / 180.0);
				playerObject->SetPosition(pos);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case VK_NUMPAD8:
		{
			if (objectEditor)
			{
				Vector3 pos = playerObject->GetPosition();
				pos.x += ((controlPressed) ? 1.0f : .01f) * cos(lil::Object::longtitude*PI / 180.0);
				pos.y += ((controlPressed) ? 1.0f : .01f) * sin(lil::Object::longtitude*PI / 180.0);
				playerObject->SetPosition(pos);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case VK_NUMPAD4:
		{
			if (objectEditor)
			{
				Vector3 pos = playerObject->GetPosition();
				pos.x += ((controlPressed) ? 1.0f : .01f) * cos((lil::Object::longtitude + 90.0)*PI / 180.0);
				pos.y += ((controlPressed) ? 1.0f : .01f) * sin((lil::Object::longtitude + 90.0)*PI / 180.0);
				playerObject->SetPosition(pos);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case VK_NUMPAD6:
		{
			if (objectEditor)
			{
				Vector3 pos = playerObject->GetPosition();
				pos.x -= ((controlPressed) ? 1.0f : .01f) * cos((lil::Object::longtitude + 90.0)*PI / 180.0);
				pos.y -= ((controlPressed) ? 1.0f : .01f) * sin((lil::Object::longtitude + 90.0)*PI / 180.0);
				playerObject->SetPosition(pos);
				playerObject->PointCam(playerCam);
			}
			break;
		}
		case VK_NUMPAD1:
		{
			playerObject->ChangeOneParam(lil::OBJECT_PARAM::ROTATION_Z, ((controlPressed) ? 5.0f : .1f));
			break;
		}
		case VK_NUMPAD3:
		{
			playerObject->ChangeOneParam(lil::OBJECT_PARAM::ROTATION_Z, -((controlPressed) ? 5.0f : .1f));
			break;
		}
		case VK_NUMPAD7:
		{
			playerObject->ChangeOneParam(lil::OBJECT_PARAM::ROTATION_X, ((controlPressed) ? 5.0f : .1f));
			break;
		}
		case VK_NUMPAD9:
		{
			playerObject->ChangeOneParam(lil::OBJECT_PARAM::ROTATION_X, -((controlPressed) ? 5.0f : .1f));
			break;
		}
		case VK_DIVIDE:
		{
			playerObject->ChangeOneParam(lil::OBJECT_PARAM::ROTATION_Y, ((controlPressed) ? 5.0f : .1f));
			break;
		}
		case VK_MULTIPLY:
		{
			playerObject->ChangeOneParam(lil::OBJECT_PARAM::ROTATION_Y, -((controlPressed) ? 5.0f : .1f));
			break;
		}
		case VK_CONTROL:
		{
			controlPressed = !controlPressed;
			break;
		}
	}
}